{
  "openapi": "3.0.1",
  "info": {
    "title": "Account Information API",
    "description": "Spare account information API documentation",
    "termsOfService": "https://terms.tryspare.com/en",
    "contact": {
      "name": "Spare Arabian Financial Co.",
      "email": "hello@tryspare.com"
    },
    "license": {
      "name": "Spare Arabian Financial Co."
    },
    "version": "1.0"
  },
  "paths": {
    "/api/v1.0/ais/Account/Get": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "Get an account by id",
        "description": "**Unique resource name :** ais.v1.account.get\r\n            \r\n**Important!:**\r\n            \r\nThe permissions bellow are required on the consent:\r\n- `ReadAccountsBasic`\r\n- `ReadAccountsDetail`",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Account id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankAccountResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If account id is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If an account does not exist",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Account/List": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "List accounts",
        "description": "**Unique resource name :** ais.v1.account.list\r\n            \r\n**Important!:**\r\n            \r\nThe permissions bellow are required on the consent:\r\n- `ReadAccountsBasic`\r\n- `ReadAccountsDetail`",
        "parameters": [
          {
            "name": "consentId",
            "in": "query",
            "description": "Consent id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": "1"
            }
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Number of items per page maximum allow is 200 per page",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": "20"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankAccountResponsePagedApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If consent id is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If consent does not exists",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/AccountInformationReport/Create": {
      "post": {
        "tags": [
          "AccountInformationReport"
        ],
        "summary": "Create an account information job report.",
        "description": "**Unique resource name :** ais.v1.account_information_report.create",
        "requestBody": {
          "description": "Account information report model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountInformationReport"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInformationReportJobResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If the model is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If a bank account not found\r\n- If customer not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/AccountInformationReport/Get": {
      "get": {
        "tags": [
          "AccountInformationReport"
        ],
        "summary": "Get account information job report by id.",
        "description": "**Unique resource name :** ais.v1.account_information_report.get",
        "parameters": [
          {
            "name": "jobId",
            "in": "query",
            "description": "Account information report job id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "description": "Customer id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInformationReportJobDetailsResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If job id is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- - If a customer is not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/AccountInformationReport/File": {
      "get": {
        "tags": [
          "AccountInformationReport"
        ],
        "summary": "Download account information job report.",
        "description": "**Unique resource name :** ais.v1.account_information_report.file",
        "parameters": [
          {
            "name": "jobId",
            "in": "query",
            "description": "Account information report job id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "description": "Customer id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/pdf": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInformationReportJobDetailsResponseApiResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInformationReportJobDetailsResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If job id is not valid.",
            "content": {
              "application/pdf": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/pdf": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/pdf": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/pdf": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- - If a customer is not found",
            "content": {
              "application/pdf": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/AccountInformationReport/List": {
      "post": {
        "tags": [
          "AccountInformationReport"
        ],
        "summary": "List account information reports.",
        "description": "**Unique resource name :** ais.v1.account_information_report.list",
        "parameters": [
          {
            "name": "customerId",
            "in": "query",
            "description": "Customer id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": "1"
            }
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Number of items per page maximum allow is 10 per page",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": "10"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInformationReportJobResponsePagedApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If pagination is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If a customer is not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/AccountInformationReport/Status": {
      "get": {
        "tags": [
          "AccountInformationReport"
        ],
        "summary": "Get account information report job status.",
        "description": "**Unique resource name :** ais.v1.account_information_report.status",
        "parameters": [
          {
            "name": "jobId",
            "in": "query",
            "description": "Job id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "description": "Customer id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInformationReportJobResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If the job is null or not a valid UUID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If the job does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Balance/Get": {
      "get": {
        "tags": [
          "Balance"
        ],
        "summary": "Get account balance",
        "description": "**Unique resource name :** ais.v1.balance.get\r\n            \r\n**Important!:**\r\n            \r\nThe permissions below are required on the consent:\r\n- `ReadAccountsBasic`\r\n- `ReadAccountsDetail`\r\n- `ReadBalances`",
        "parameters": [
          {
            "name": "accountId",
            "in": "query",
            "description": "Account id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountBalanceApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If account id is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If an account does not exist",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Balance/History": {
      "get": {
        "tags": [
          "Balance"
        ],
        "summary": "Get account balance history",
        "description": "**Unique resource name :** ais.v1.balance.history\r\n            \r\n**Important!:**\r\n            \r\n- The maximum allowed date range period is one year.\r\n- `toDate` need to be greater than `fromDate`\r\n            \r\nThe permissions bellow are required on the consent:\r\n- `ReadAccountsBasic`\r\n- `ReadAccountsDetail`\r\n- `ReadBalances`\r\n- `ReadTransactionsBasic`\r\n- `ReadTransactionsDetail`\r\n- `ReadTransactionsDebits`\r\n- `ReadTransactionsCredits`",
        "parameters": [
          {
            "name": "accountId",
            "in": "query",
            "description": "Account id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "fromBookingDateTime",
            "in": "query",
            "description": "From booking date time",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toBookingDateTime",
            "in": "query",
            "description": "To booking date time",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountBalanceHistoryApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If account id is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If an account does not exist",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Beneficiary/Get": {
      "get": {
        "tags": [
          "Beneficiary"
        ],
        "summary": "Get account beneficiary",
        "description": "**Unique resource name :** ais.v1.beneficiary.get\r\n            \r\n**Important!:**\r\n            \r\nThe permissions bellow are required on the consent:\r\n- `ReadBeneficiariesBasic`\r\n- `ReadBeneficiariesDetail`",
        "parameters": [
          {
            "name": "accountId",
            "in": "query",
            "description": "Account id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BeneficiaryResponseListApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If account id is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If account does not exists",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Connection/Create": {
      "post": {
        "tags": [
          "Connection"
        ],
        "summary": "Create connection",
        "description": "**Unique resource name :** ais.v1.connection.create",
        "parameters": [
          {
            "name": "providerId",
            "in": "query",
            "description": "Provider id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInformationConnectionResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If provider id is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If provider does not exists",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Connection/Get": {
      "get": {
        "tags": [
          "Connection"
        ],
        "summary": "Get connection by id",
        "description": "**Unique resource name :** ais.v1.connection.get",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Connection id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInformationConnectionResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If connection id is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If connection does not exists",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Connection/List": {
      "get": {
        "tags": [
          "Connection"
        ],
        "summary": "List connections",
        "description": "**Unique resource name :** ais.v1.connection.list",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": "1"
            }
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Number of items per page maximum allow is 500 per page",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": "100"
            }
          },
          {
            "name": "providerId",
            "in": "query",
            "description": "Provider id (optional)",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInformationConnectionResponsePagedApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If page is not valid\r\n- If perPage is not valid\r\n- If provider id is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Connection/Delete": {
      "delete": {
        "tags": [
          "Connection"
        ],
        "summary": "Delete connection by id",
        "description": "**Unique resource name :** ais.v1.connection.delete",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": ""
          },
          "400": {
            "description": "If connection id is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Consent/CreateShortLivedConsent": {
      "post": {
        "tags": [
          "Consent"
        ],
        "summary": "Create short-lived consent",
        "description": "**Unique resource name :** ais.v1.consent.create_short_lived_consent\r\n            \r\n**Consent lifetime :** 1 Day",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConsentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInformationConsentResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If provider id is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If provider does not exist\r\n- If connection does not exist",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Consent/CreateLongLivedConsent": {
      "post": {
        "tags": [
          "Consent"
        ],
        "summary": "Create long-lived consent",
        "description": "**Unique resource name :** ais.v1.consent.create_long_lived_consent\r\n            \r\n**Consent lifetime :** expiry date input",
        "requestBody": {
          "description": "Long-lived consent request model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LongLivedConsentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInformationConsentResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If provider id is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If provider does not exist\r\n- If connection does not exist",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Consent/List": {
      "get": {
        "tags": [
          "Consent"
        ],
        "summary": "List consent",
        "description": "**Unique resource name :** ais.v1.consent.list",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": "1"
            }
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Number of items per page maximum allow is 500 per page",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": "20"
            }
          },
          {
            "name": "providerId",
            "in": "query",
            "description": "Provider id (Optional)",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "connectionId",
            "in": "query",
            "description": "Connection id (Optional)",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "description": "Customer id (Optional)",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInformationConsentResponsePagedApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If connection id is not valid"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Consent/Get": {
      "get": {
        "tags": [
          "Consent"
        ],
        "summary": "Get consent by id",
        "description": "**Unique resource name :** ais.v1.consent.get",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Consent id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInformationConsentResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If id is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If consent does not exist",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Consent/Revoke": {
      "patch": {
        "tags": [
          "Consent"
        ],
        "summary": "Revoke consent",
        "description": "**Unique resource name :** ais.v1.consent.revoke",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Consent id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": ""
          },
          "400": {
            "description": "- If id is not valid\r\n- If consent revocation fails",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Customer/Create": {
      "post": {
        "tags": [
          "Customer"
        ],
        "summary": "Create customer",
        "description": "**Unique resource name :** ais.v1.customer.create\r\n            \r\n**Important!:**\r\n            \r\n- `type` is required and need to be \"Retail\" or \"Business\".\r\n            \r\n- `nationalId` is required if `type` is \"Retail\".",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDetailsResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "If model is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "409": {
            "description": "If customer already exists",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Customer/List": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "List customers",
        "description": "**Unique resource name :** ais.v1.customer.list",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": "1"
            }
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Number of items per page maximum allow is 500 per page",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": "20"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponsePagedApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Customer/Get": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Get customer by id",
        "description": "**Unique resource name :** ais.v1.customer.get",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Customer id",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "externalId",
            "in": "query",
            "description": "Customer external id",
            "schema": {
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDetailsResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If id is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If customer does not exist",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Customer/Update": {
      "patch": {
        "tags": [
          "Customer"
        ],
        "summary": "Update customer",
        "description": "**Unique resource name :** ais.v1.customer.update",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Customer id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Customer model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDetailsResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If id is not valid\r\n- If model is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If customer does not exist",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "409": {
            "description": "If customer already exists",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Customer/Delete": {
      "delete": {
        "tags": [
          "Customer"
        ],
        "summary": "Delete customer",
        "description": "**Unique resource name :** ais.v1.customer.delete",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Customer id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": ""
          },
          "400": {
            "description": "- If id is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/DirectDebit/Get": {
      "get": {
        "tags": [
          "DirectDebit"
        ],
        "summary": "Get account direct debits",
        "description": "**Unique resource name :** ais.v1.direct_debit.get\r\n            \r\n**Important!:**\r\n            \r\nThe permissions bellow are required on the consent:\r\n- `ReadDirectDebits`",
        "parameters": [
          {
            "name": "accountId",
            "in": "query",
            "description": "Account id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DirectDebitsResponseListApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If account id is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If account does not exist",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Parties/Get": {
      "get": {
        "tags": [
          "Parties"
        ],
        "summary": "Get account parties",
        "description": "**Unique resource name :** ais.v1.parties.get\r\n            \r\n**Important!:**\r\n            \r\nThe permissions bellow are required on the consent:\r\n- `ReadParty`",
        "parameters": [
          {
            "name": "accountId",
            "in": "query",
            "description": "Account id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartiesResponseListApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If account id is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If account does not exists",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Provider/List": {
      "get": {
        "tags": [
          "Provider"
        ],
        "summary": "List open banking providers",
        "description": "**Unique resource name :** ais.v1.provider.list",
        "parameters": [
          {
            "name": "countryCode",
            "in": "query",
            "description": "Country ISO 3166 alpha-2 code",
            "required": true,
            "schema": {
              "pattern": "^[A-Za-z]{2}",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInformationProviderListApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If country code is not a valid ISO 3166 alpha-2 code.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Request/CreateShortLivedRequest": {
      "post": {
        "tags": [
          "Request"
        ],
        "summary": "Create account information access request for short-lived consent",
        "description": "**Unique resource name :** ais.v1.request.create_short_lived_request\r\n            \r\n**Consent lifetime :** 1 Day",
        "requestBody": {
          "description": "Account information access request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AisRequestAccess"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInformationRequestAccessResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If model is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Request/CreateLongLivedRequest": {
      "post": {
        "tags": [
          "Request"
        ],
        "summary": "Create account information access request for long-lived consent",
        "description": "**Unique resource name :** ais.v1.request.create_long_lived_request\r\n            \r\n**Consent lifetime :** consent expiry date input",
        "requestBody": {
          "description": "Account information access request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LongLivedRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInformationRequestAccessResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If model is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Request/List": {
      "get": {
        "tags": [
          "Request"
        ],
        "summary": "List account information access requests",
        "description": "**Unique resource name :** ais.v1.request.list",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": "1"
            }
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Number of items per page maximum allow is 500 per page",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": "20"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInformationRequestAccessResponsePagedApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If page is not valid\r\n- If perPage is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Request/Get": {
      "get": {
        "tags": [
          "Request"
        ],
        "summary": "Get account information access request by id",
        "description": "**Unique resource name :** ais.v1.request.get",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Account information access request id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInformationRequestAccessResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If id is null or an invalid UUID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If request does not exists",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Request/Update": {
      "put": {
        "tags": [
          "Request"
        ],
        "summary": "Update account information access request",
        "description": "**Unique resource name :** ais.v1.request.update",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Account information access request id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Account information access request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAccountInformationRequestAccess"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInformationRequestAccessResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If id is null or an invalid UUID.\r\n- If model is not valid.\r\n- If request is already approved or rejected",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If request does not exists",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Request/Delete": {
      "delete": {
        "tags": [
          "Request"
        ],
        "summary": "Delete account information access request",
        "description": "**Unique resource name :** ais.v1.request.delete",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Account information access request id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": ""
          },
          "400": {
            "description": "- If id is null or an invalid UUID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Statement/File": {
      "get": {
        "tags": [
          "Statement"
        ],
        "summary": "Download account statement",
        "description": "**Unique resource name :** ais.v1.statement.file\r\n            \r\n**Important!:**\r\n            \r\n- The permissions bellow are required on the consent:\r\n- `ReadBalances`\r\n- `ReadTransactionsBasic`\r\n- `ReadTransactionsDetail`\r\n- `ReadTransactionsDebits`\r\n- `ReadTransactionsCredits`",
        "parameters": [
          {
            "name": "accountId",
            "in": "query",
            "description": "Account id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/pdf": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "204": {
            "description": "- If transaction list empty"
          },
          "400": {
            "description": "- If accountId is null or invalid UUID\r\n- if fromBookingDateTime is null\r\n- if toBookingDateTime is null",
            "content": {
              "application/pdf": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/pdf": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/pdf": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/pdf": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If account not exist",
            "content": {
              "application/pdf": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Transaction/Get": {
      "get": {
        "tags": [
          "Transaction"
        ],
        "summary": "Get transaction details",
        "description": "**Unique resource name :** ais.v1.transaction.get\r\n            \r\n**Important!:**\r\n            \r\nThe permissions bellow are required on the consent:\r\n- `ReadTransactionsBasic`\r\n- `ReadTransactionsDetail`\r\n- `ReadTransactionsDebits`\r\n- `ReadTransactionsCredits`",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Transaction id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionDetailsResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If transaction id is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If transaction does not exists",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Transaction/List": {
      "post": {
        "tags": [
          "Transaction"
        ],
        "summary": "List transactions",
        "description": "**Unique resource name :** ais.v1.transaction.list\r\n            \r\n**Important!:**\r\n            \r\nThe permissions bellow are required on the consent:\r\n- ReadTransactionsBasic\r\n- ReadTransactionsDetail\r\n- ReadTransactionsDebits\r\n- ReadTransactionsCredits",
        "parameters": [
          {
            "name": "consentId",
            "in": "query",
            "description": "Consent id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": "1"
            }
          },
          {
            "name": "perPage",
            "in": "query",
            "description": "Number of items per page maximum allow is 200 per page",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": "20"
            }
          },
          {
            "name": "accountId",
            "in": "query",
            "description": "Bank account id",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Filter model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransactionFilter"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionResponsePagedApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If consent id is not valid\r\n- If filter model is not valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If consent does not exists",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1.0/ais/Transaction/Salaries": {
      "get": {
        "tags": [
          "Transaction"
        ],
        "summary": "Get account salary",
        "description": "**Unique resource name :** ais.v1.transaction.salaries",
        "parameters": [
          {
            "name": "accountId",
            "in": "query",
            "description": "Account id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "fromBookingDateTime",
            "in": "query",
            "description": "From booking date time",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toBookingDateTime",
            "in": "query",
            "description": "To booking date time",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryListApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "- If accountId is null or invalid UUID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "- If account not exist",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AccountBalanceHistory": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "history": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BalanceHistory"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AccountBalanceHistoryApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/AccountBalanceHistory"
          }
        },
        "additionalProperties": false
      },
      "AccountBalance": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "format": "uuid",
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "externalAccountId": {
            "type": "string",
            "nullable": true
          },
          "balances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Balance"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AccountBalanceApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/AccountBalance"
          }
        },
        "additionalProperties": false
      },
      "AccountInformationConnectionResponse": {
        "type": "object",
        "properties": {
          "provider": {
            "$ref": "#/components/schemas/AccountInformationProvider"
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "status": {
            "$ref": "#/components/schemas/ConnectionStatus"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          }
        },
        "additionalProperties": false
      },
      "AccountInformationConnectionResponseApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/AccountInformationConnectionResponse"
          }
        },
        "additionalProperties": false
      },
      "AccountInformationConnectionResponsePagedApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccountInformationConnectionResponse"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/Pages"
          }
        },
        "additionalProperties": false
      },
      "AccountInformationConsentResponse": {
        "type": "object",
        "properties": {
          "expiryDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Expiry date (ISO 8601).",
            "example": "2025-01-01T00:00:00Z"
          },
          "transactionsFromDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Start date of the transaction range (ISO 8601).",
            "example": "2025-01-01T00:00:00Z"
          },
          "transactionsToDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "End date of the transaction range (ISO 8601).",
            "example": "2025-01-01T00:00:00Z"
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "description": "Data permissions granted or requested."
          },
          "statusHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsentStatusHistory"
            },
            "nullable": true
          },
          "connection": {
            "$ref": "#/components/schemas/AccountInformationConnectionResponse"
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "customerId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Identifier of the customer. Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "scope": {
            "$ref": "#/components/schemas/ConsentScope"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "status": {
            "$ref": "#/components/schemas/ObConsentsStatus"
          },
          "authorizationLink": {
            "type": "string",
            "nullable": true
          },
          "successRedirectUrl": {
            "type": "string",
            "nullable": true,
            "description": "URL to redirect the customer to after a successful authorization."
          },
          "failureRedirectUrl": {
            "type": "string",
            "nullable": true,
            "description": "URL to redirect the customer to after a failed or cancelled authorization."
          }
        },
        "additionalProperties": false
      },
      "AccountInformationConsentResponseApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/AccountInformationConsentResponse"
          }
        },
        "additionalProperties": false
      },
      "AccountInformationConsentResponsePagedApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccountInformationConsentResponse"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/Pages"
          }
        },
        "additionalProperties": false
      },
      "AccountInformationPermission": {
        "enum": [
          "ReadAccountsBasic",
          "ReadAccountsDetail",
          "ReadBalances",
          "ReadBeneficiariesBasic",
          "ReadBeneficiariesDetail",
          "ReadDirectDebits",
          "ReadTransactionsBasic",
          "ReadTransactionsDetail",
          "ReadTransactionsCredits",
          "ReadTransactionsDebits",
          "ReadStatementsBasic",
          "ReadStatementsDetail",
          "ReadSupplementaryAccountInfo",
          "ReadOffers",
          "ReadParty",
          "ReadPartyCustomer",
          "ReadFutureDatedPaymentsBasic",
          "ReadFutureDatedPaymentsDetail",
          "ReadPAN",
          "ReadPartyPSU",
          "ReadPartyPSUIdentity",
          "ReadScheduledPaymentsBasic",
          "ReadScheduledPaymentsDetail",
          "ReadStandingOrdersBasic",
          "ReadStandingOrdersDetail"
        ],
        "type": "string"
      },
      "AccountInformationProvider": {
        "required": [
          "englishName",
          "isEnable"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "country": {
            "$ref": "#/components/schemas/CountryResponse"
          },
          "allowedPermissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccountInformationPermission"
            },
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true,
            "description": "Phone number."
          },
          "arabicName": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "englishName": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/ProviderStatus"
          },
          "isEnable": {
            "type": "boolean"
          },
          "logo": {
            "maxLength": 255,
            "type": "string",
            "format": "uri",
            "nullable": true,
            "description": "Format: URL.",
            "example": "https://example.com"
          }
        },
        "additionalProperties": false
      },
      "AccountInformationProviderListApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccountInformationProvider"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AccountInformationReportBankAccountResponse": {
        "type": "object",
        "properties": {
          "provider": {
            "$ref": "#/components/schemas/AccountInformationProvider"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "externalId": {
            "type": "string",
            "nullable": true,
            "description": "Your external identifier for the resource."
          },
          "currency": {
            "$ref": "#/components/schemas/CurrencyResponse",
            "description": "ISO 4217 currency code (e.g. AED, SAR, BHD)."
          },
          "servicer": {
            "$ref": "#/components/schemas/ServicerResponse"
          },
          "accounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubAccountsResponse"
            },
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "statusUpdatedDateTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "subType": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Free-text description."
          },
          "openingDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "maturityDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          }
        },
        "additionalProperties": false
      },
      "AccountInformationReportJobAffordability": {
        "type": "object",
        "properties": {
          "month": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "averageIncomeAffordability": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "averageNetAffordability": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "income": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "expenses": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "incomeAffordability": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "netAffordability": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currency": {
            "$ref": "#/components/schemas/CurrencyResponse",
            "description": "ISO 4217 currency code (e.g. AED, SAR, BHD)."
          }
        },
        "additionalProperties": false
      },
      "AccountInformationReportJobDetailsResponse": {
        "type": "object",
        "properties": {
          "accountHolderName": {
            "type": "string",
            "nullable": true
          },
          "cashFlowTrend": {
            "$ref": "#/components/schemas/CashFlowTrend"
          },
          "affordability": {
            "$ref": "#/components/schemas/AccountInformationReportJobAffordability"
          },
          "accounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccountInformationReportBankAccountResponse"
            },
            "nullable": true
          },
          "transactionsCategories": {
            "$ref": "#/components/schemas/TransactionCategorizationResponse"
          },
          "balanceSummary": {
            "$ref": "#/components/schemas/BalanceSummary"
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "jobId": {
            "type": "string",
            "nullable": true
          },
          "customerId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Identifier of the customer. Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "endDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "accountsCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "totalBalance": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Free-text description."
          },
          "currency": {
            "$ref": "#/components/schemas/CurrencyResponse",
            "description": "ISO 4217 currency code (e.g. AED, SAR, BHD)."
          },
          "status": {
            "$ref": "#/components/schemas/AccountInformationReportJobStatus"
          }
        },
        "additionalProperties": false
      },
      "AccountInformationReportJobDetailsResponseApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/AccountInformationReportJobDetailsResponse"
          }
        },
        "additionalProperties": false
      },
      "AccountInformationReportJobResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "jobId": {
            "type": "string",
            "nullable": true
          },
          "customerId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Identifier of the customer. Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "endDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "accountsCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "totalBalance": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Free-text description."
          },
          "currency": {
            "$ref": "#/components/schemas/CurrencyResponse",
            "description": "ISO 4217 currency code (e.g. AED, SAR, BHD)."
          },
          "status": {
            "$ref": "#/components/schemas/AccountInformationReportJobStatus"
          }
        },
        "additionalProperties": false
      },
      "AccountInformationReportJobResponseApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/AccountInformationReportJobResponse"
          }
        },
        "additionalProperties": false
      },
      "AccountInformationReportJobResponsePagedApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccountInformationReportJobResponse"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/Pages"
          }
        },
        "additionalProperties": false
      },
      "AccountInformationReportJobStatus": {
        "enum": [
          "Awaiting",
          "Deleted",
          "Enqueued",
          "Failed",
          "Processing",
          "Scheduled",
          "Succeeded"
        ],
        "type": "string"
      },
      "AccountInformationReport": {
        "type": "object",
        "properties": {
          "accountIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true,
            "description": "Identifiers of the accounts to include."
          },
          "customerId": {
            "type": "string",
            "format": "uuid",
            "description": "Identifier of the customer. Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          }
        },
        "additionalProperties": false
      },
      "AccountInformationRequestAccessResponse": {
        "required": [
          "countryCode",
          "customerId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "status": {
            "$ref": "#/components/schemas/RequestStatus"
          },
          "source": {
            "$ref": "#/components/schemas/ConsentSource"
          },
          "consentExpiryDate": {
            "type": "string",
            "format": "date-time",
            "description": "Date the consent expires (ISO 8601).",
            "example": "2025-01-01T00:00:00Z"
          },
          "consent": {
            "$ref": "#/components/schemas/AccountInformationConsentResponse"
          },
          "country": {
            "$ref": "#/components/schemas/CountryResponse"
          },
          "requestPermissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "description": "Data permissions requested for the consent."
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "requestLink": {
            "type": "string",
            "nullable": true
          },
          "customerId": {
            "type": "string",
            "format": "uuid",
            "description": "Identifier of the customer. Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "consentTransactionsFromDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Start date of the transaction history the consent covers (ISO 8601).",
            "example": "2025-01-01T00:00:00Z"
          },
          "consentTransactionsToDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "End date of the transaction history the consent covers (ISO 8601).",
            "example": "2025-01-01T00:00:00Z"
          },
          "countryCode": {
            "minLength": 1,
            "pattern": "^[A-Z]{2}",
            "type": "string",
            "description": "ISO 3166 alpha-2 country code (e.g. AE, SA, BH).",
            "example": "SA"
          },
          "redirectionFlow": {
            "$ref": "#/components/schemas/RedirectionFlow"
          },
          "successRedirectUrl": {
            "maxLength": 255,
            "type": "string",
            "format": "uri",
            "nullable": true,
            "description": "URL to redirect the customer to after a successful authorization.",
            "example": "https://example.com"
          },
          "failureRedirectUrl": {
            "maxLength": 255,
            "type": "string",
            "format": "uri",
            "nullable": true,
            "description": "URL to redirect the customer to after a failed or cancelled authorization.",
            "example": "https://example.com"
          },
          "autoRedirect": {
            "type": "boolean",
            "description": "When true, redirect the customer automatically after authorization."
          }
        },
        "additionalProperties": false
      },
      "AccountInformationRequestAccessResponseApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/AccountInformationRequestAccessResponse"
          }
        },
        "additionalProperties": false
      },
      "AccountInformationRequestAccessResponsePagedApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccountInformationRequestAccessResponse"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/Pages"
          }
        },
        "additionalProperties": false
      },
      "AisRequestAccess": {
        "required": [
          "countryCode",
          "customerId",
          "requestPermissions"
        ],
        "type": "object",
        "properties": {
          "providers": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true,
            "description": "List of provider identifiers."
          },
          "customerId": {
            "type": "string",
            "format": "uuid",
            "description": "Identifier of the customer. Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "consentTransactionsFromDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Start date of the transaction history the consent covers (ISO 8601).",
            "example": "2025-01-01T00:00:00Z"
          },
          "consentTransactionsToDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "End date of the transaction history the consent covers (ISO 8601).",
            "example": "2025-01-01T00:00:00Z"
          },
          "countryCode": {
            "minLength": 1,
            "pattern": "^[A-Z]{2}",
            "type": "string",
            "description": "ISO 3166 alpha-2 country code (e.g. AE, SA, BH).",
            "example": "SA"
          },
          "requestPermissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccountInformationPermission"
            },
            "description": "Data permissions requested for the consent."
          },
          "redirectionFlow": {
            "$ref": "#/components/schemas/RedirectionFlow"
          },
          "successRedirectUrl": {
            "maxLength": 255,
            "type": "string",
            "format": "uri",
            "nullable": true,
            "description": "URL to redirect the customer to after a successful authorization.",
            "example": "https://example.com"
          },
          "failureRedirectUrl": {
            "maxLength": 255,
            "type": "string",
            "format": "uri",
            "nullable": true,
            "description": "URL to redirect the customer to after a failed or cancelled authorization.",
            "example": "https://example.com"
          },
          "autoRedirect": {
            "type": "boolean",
            "description": "When true, redirect the customer automatically after authorization."
          }
        },
        "additionalProperties": false
      },
      "AmountResponse": {
        "type": "object",
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/CurrencyResponse",
            "description": "ISO 4217 currency code (e.g. AED, SAR, BHD)."
          },
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "description": "Monetary amount as a decimal value."
          },
          "chargeIncluded": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiError": {
        "enum": [
          "INVALID_DATA",
          "INVALID_SIGNATURE",
          "RESOURCE_LOCKED",
          "COUNTRY_NOT_FOUND",
          "CURRENCY_NOT_FOUND",
          "PROVIDER_NOT_FOUND",
          "CONNECTION_NOT_FOUND",
          "INSUFFICIENT_CONSENT_PERMISSIONS",
          "CONSENT_EXPIRED",
          "CONSENT_REVOKED",
          "CONSENT_UNAUTHORIZED",
          "CONSENT_NOT_FOUND",
          "ACCOUNT_INFORMATION_REPORT_NOT_FOUND",
          "MULTIPLE_CURRENCY_NOT_ALLOWED",
          "MULTIPLE_CONSENT_DATE_NOT_ALLOWED",
          "PAYMENT_NOT_FOUND",
          "CONSENT_REJECTED",
          "PAYMENT_REQUEST_NOT_FOUND",
          "CUSTOMER_NOT_FOUND",
          "REAL_ESTATE_VERIFY_NOT_FOUND",
          "REAL_ESTATE_VALIDATE_NOT_FOUND",
          "REAL_ESTATE_SEARCH_NOT_FOUND",
          "CUSTOMER_ALREADY_EXISTS",
          "BANK_ACCOUNT_NOT_FOUND",
          "SERVER_ERROR",
          "PROVIDER_CONNECTION_FAILURE",
          "TRANSACTION_NOT_FOUND",
          "ACCOUNT_INFORMATION_ACCESS_REQUEST_NOT_FOUND",
          "CONSENT_REVOCATION_FAILED",
          "CONSENT_REVOKED_OR_EXPIRED",
          "SUBSCRIPTION_EXPIRED",
          "NOT_SUBSCRIBED_TO_SERVICE",
          "BENEFICIARY_NOT_FOUND",
          "PARTIES_NOT_FOUND",
          "DIRECT_DEBIT_NOT_FOUND",
          "SCHEDULED_PAYMENT_NOT_FOUND",
          "DEBTOR_ACCOUNT_NOT_FOUND",
          "CREDITOR_ACCOUNT_NOT_FOUND",
          "UNAUTHORIZED_IP_ADDRESS",
          "REAL_ESTATE_FAILED"
        ],
        "type": "string"
      },
      "AssuranceDetailResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "evidenceReference": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvidenceReferenceResponse"
            },
            "nullable": true
          },
          "evidenceRef": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvidenceReference"
            },
            "nullable": true
          },
          "assuranceClassification": {
            "type": "string",
            "nullable": true
          },
          "assuranceType": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AssuranceProcessResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "assuranceDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssuranceDetailResponse"
            },
            "nullable": true
          },
          "policy": {
            "type": "string",
            "nullable": true
          },
          "procedure": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Attachments": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Free-text description."
          },
          "contentType": {
            "type": "string",
            "nullable": true
          },
          "content": {
            "type": "string",
            "nullable": true
          },
          "identifier": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BalanceAmount": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double",
            "description": "Monetary amount as a decimal value."
          },
          "currency": {
            "type": "string",
            "nullable": true,
            "description": "ISO 4217 currency code (e.g. AED, SAR, BHD).",
            "example": "SAR"
          },
          "localExchange": {
            "$ref": "#/components/schemas/BalanceLocalExchange"
          }
        },
        "additionalProperties": false
      },
      "BalanceBase": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "$ref": "#/components/schemas/BalanceAmount",
            "description": "Monetary amount as a decimal value."
          }
        },
        "additionalProperties": false
      },
      "BalanceDataCreditLine": {
        "type": "object",
        "properties": {
          "included": {
            "type": "boolean",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "$ref": "#/components/schemas/BalanceAmount",
            "description": "Monetary amount as a decimal value."
          }
        },
        "additionalProperties": false
      },
      "BalanceHistory": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "nullable": true,
            "format": "date-time",
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "balances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BalanceBase"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BalanceLocalExchange": {
        "type": "object",
        "properties": {
          "sourceCurrency": {
            "type": "string",
            "nullable": true,
            "example": "SAR"
          },
          "targetCurrency": {
            "type": "string",
            "nullable": true,
            "example": "SAR"
          },
          "rate": {
            "type": "number",
            "format": "double"
          },
          "date": {
            "type": "string",
            "format": "date",
            "description": "Format: ISO 8601 date (e.g. `2025-01-01`).",
            "example": "2025-01-01"
          },
          "value": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Balance": {
        "type": "object",
        "properties": {
          "creditDebitIndicator": {
            "type": "string",
            "nullable": true
          },
          "dateTime": {
            "type": "string",
            "nullable": true,
            "format": "date-time",
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "creditLine": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BalanceDataCreditLine"
            },
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "$ref": "#/components/schemas/BalanceAmount",
            "description": "Monetary amount as a decimal value."
          }
        },
        "additionalProperties": false
      },
      "BalanceSummary": {
        "type": "object",
        "properties": {
          "accounts": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true
          },
          "currency": {
            "$ref": "#/components/schemas/CurrencyResponse",
            "description": "ISO 4217 currency code (e.g. AED, SAR, BHD)."
          },
          "currentBalance": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "minimumBalance": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maximumBalance": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "averageBalance": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "totalCredit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "totalSixMonthCredit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "totalDebit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "averageMonthlyCredit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "averageMonthlyDebit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "daysBelowMean": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "trendLine": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "balanceTrendModel": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BalanceTrend"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BalanceTrend": {
        "type": "object",
        "properties": {
          "slope": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "intercept": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "accountBalanceHistory": {
            "$ref": "#/components/schemas/AccountBalanceHistory"
          }
        },
        "additionalProperties": false
      },
      "BankAccountResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "externalId": {
            "type": "string",
            "nullable": true,
            "description": "Your external identifier for the resource."
          },
          "currency": {
            "$ref": "#/components/schemas/CurrencyResponse",
            "description": "ISO 4217 currency code (e.g. AED, SAR, BHD)."
          },
          "servicer": {
            "$ref": "#/components/schemas/ServicerResponse"
          },
          "accounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubAccountsResponse"
            },
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "statusUpdatedDateTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "subType": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Free-text description."
          },
          "openingDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "maturityDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          }
        },
        "additionalProperties": false
      },
      "BankAccountResponseApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/BankAccountResponse"
          }
        },
        "additionalProperties": false
      },
      "BankAccountResponsePagedApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BankAccountResponse"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/Pages"
          }
        },
        "additionalProperties": false
      },
      "BeneficiaryResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "accountId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "accountHolderName": {
            "type": "string",
            "nullable": true
          },
          "accountHolderShortName": {
            "type": "string",
            "nullable": true
          },
          "beneficiaryType": {
            "type": "string",
            "nullable": true
          },
          "reference": {
            "type": "string",
            "nullable": true
          },
          "creditorAccount": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubAccountsResponse"
            },
            "nullable": true
          },
          "creditorAgent": {
            "$ref": "#/components/schemas/BeneficiaryServicerResponse"
          }
        },
        "additionalProperties": false
      },
      "BeneficiaryResponseListApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BeneficiaryResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BeneficiaryServicerResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true,
            "description": "Name associated with this object."
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "address": {
            "$ref": "#/components/schemas/ServicerAddressResponse"
          },
          "scheme": {
            "type": "string",
            "nullable": true
          },
          "identification": {
            "type": "string",
            "nullable": true,
            "description": "Account identifier, its format is given by the accompanying scheme (e.g. an IBAN)."
          }
        },
        "additionalProperties": false
      },
      "BillDetails": {
        "type": "object",
        "properties": {
          "billerId": {
            "type": "string",
            "nullable": true
          },
          "billNumber": {
            "type": "string",
            "nullable": true
          },
          "billPaymentType": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CashFlowTrend": {
        "type": "object",
        "properties": {
          "accounts": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true
          },
          "currency": {
            "$ref": "#/components/schemas/CurrencyResponse",
            "description": "ISO 4217 currency code (e.g. AED, SAR, BHD)."
          },
          "dailyTotalCredit": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DateTimeDecimalValueAggregation"
            },
            "nullable": true
          },
          "dailyTotalDebit": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DateTimeDecimalValueAggregation"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CheckDetails": {
        "type": "object",
        "properties": {
          "checkMethod": {
            "type": "string",
            "nullable": true
          },
          "organization": {
            "type": "string",
            "nullable": true
          },
          "time": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "identifier": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ClaimsResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "countryAddress": {
            "type": "string",
            "nullable": true
          },
          "formattedAddress": {
            "type": "string",
            "nullable": true
          },
          "localityAddress": {
            "type": "string",
            "nullable": true
          },
          "regionAddress": {
            "type": "string",
            "nullable": true
          },
          "streetAddress": {
            "type": "string",
            "nullable": true
          },
          "alsoKnownAs": {
            "type": "string",
            "nullable": true
          },
          "birthDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "birthFamilyName": {
            "type": "string",
            "nullable": true
          },
          "birthGivenName": {
            "type": "string",
            "nullable": true
          },
          "birthMiddleName": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true,
            "description": "Email address."
          },
          "emailVerified": {
            "type": "boolean",
            "nullable": true
          },
          "familyName": {
            "type": "string",
            "nullable": true
          },
          "gender": {
            "type": "string",
            "nullable": true
          },
          "givenName": {
            "type": "string",
            "nullable": true
          },
          "locale": {
            "type": "string",
            "nullable": true
          },
          "middleName": {
            "type": "string",
            "nullable": true
          },
          "msisdn": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true,
            "description": "Name associated with this object."
          },
          "nationalities": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "nickname": {
            "type": "string",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string",
            "nullable": true
          },
          "phoneNumberVerified": {
            "type": "boolean",
            "nullable": true
          },
          "picture": {
            "type": "string",
            "nullable": true
          },
          "countryPlaceOfBirth": {
            "type": "string",
            "nullable": true
          },
          "localityPlaceOfBirth": {
            "type": "string",
            "nullable": true
          },
          "regionPlaceOfBirth": {
            "type": "string",
            "nullable": true
          },
          "preferredUsername": {
            "type": "string",
            "nullable": true
          },
          "profile": {
            "type": "string",
            "nullable": true
          },
          "salutation": {
            "type": "string",
            "nullable": true
          },
          "subject": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "website": {
            "type": "string",
            "nullable": true
          },
          "zoneInfo": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConnectionStatus": {
        "enum": [
          "ACTIVE",
          "INACTIVE"
        ],
        "type": "string"
      },
      "ConsentRequest": {
        "required": [
          "customerId",
          "providerId"
        ],
        "type": "object",
        "properties": {
          "connectionId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Identifier of the account/consent connection. Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "providerId": {
            "type": "string",
            "format": "uuid",
            "description": "Identifier of the open banking provider. Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "customerId": {
            "type": "string",
            "format": "uuid",
            "description": "Identifier of the customer. Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "transactionsFromDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Start date of the transaction range (ISO 8601).",
            "example": "2025-01-01T00:00:00Z"
          },
          "transactionsToDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "End date of the transaction range (ISO 8601).",
            "example": "2025-01-01T00:00:00Z"
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccountInformationPermission"
            },
            "nullable": true,
            "description": "Data permissions granted or requested."
          },
          "successRedirectUrl": {
            "maxLength": 255,
            "type": "string",
            "format": "uri",
            "nullable": true,
            "description": "URL to redirect the customer to after a successful authorization.",
            "example": "https://example.com"
          },
          "failureRedirectUrl": {
            "maxLength": 255,
            "type": "string",
            "format": "uri",
            "nullable": true,
            "description": "URL to redirect the customer to after a failed or cancelled authorization.",
            "example": "https://example.com"
          },
          "autoRedirect": {
            "type": "boolean",
            "description": "When true, redirect the customer automatically after authorization."
          }
        },
        "additionalProperties": false
      },
      "ConsentScope": {
        "enum": [
          "Accounts",
          "Payments"
        ],
        "type": "string"
      },
      "ConsentSource": {
        "enum": [
          "WEB",
          "API"
        ],
        "type": "string"
      },
      "ConsentStatusHistory": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/ObConsentsStatus"
          },
          "dateTime": {
            "type": "string",
            "format": "date-time",
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          }
        },
        "additionalProperties": false
      },
      "CountryResponse": {
        "required": [
          "englishName",
          "iso3166Code",
          "timeZone"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "currency": {
            "$ref": "#/components/schemas/CurrencyResponse",
            "description": "ISO 4217 currency code (e.g. AED, SAR, BHD)."
          },
          "englishName": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string"
          },
          "arabicName": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "iso3166Code": {
            "maxLength": 2,
            "minLength": 1,
            "pattern": "^[A-Z]{2}$",
            "type": "string"
          },
          "timeZone": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreditTransactionCategory": {
        "type": "object",
        "properties": {
          "totalCredit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "totalDebit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currency": {
            "$ref": "#/components/schemas/CurrencyResponse",
            "description": "ISO 4217 currency code (e.g. AED, SAR, BHD)."
          },
          "categories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionCategory"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreditorAccount": {
        "type": "object",
        "properties": {
          "identificationType": {
            "type": "string",
            "nullable": true
          },
          "identification": {
            "type": "string",
            "nullable": true,
            "description": "Account identifier, its format is given by the accompanying scheme (e.g. an IBAN)."
          }
        },
        "additionalProperties": false
      },
      "CurrencyResponse": {
        "required": [
          "englishName",
          "iso4117Code"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "englishName": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string"
          },
          "arabicName": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "iso4117Code": {
            "maxLength": 3,
            "minLength": 1,
            "type": "string"
          },
          "iso4117Number": {
            "maxLength": 4,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomerDetailsResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "fullName": {
            "type": "string",
            "nullable": true,
            "description": "Full name."
          },
          "phone": {
            "type": "string",
            "nullable": true,
            "description": "Phone number."
          },
          "email": {
            "type": "string",
            "nullable": true,
            "description": "Email address."
          },
          "nationalId": {
            "type": "string",
            "nullable": true,
            "description": "National identity number of the individual."
          },
          "registrationNumber": {
            "type": "string",
            "nullable": true,
            "description": "Registration number."
          },
          "type": {
            "$ref": "#/components/schemas/CustomerType"
          },
          "externalId": {
            "type": "string",
            "nullable": true,
            "description": "Your external identifier for the resource."
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "archived": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomerDetailsResponseApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/CustomerDetailsResponse"
          }
        },
        "additionalProperties": false
      },
      "CustomerRequest": {
        "required": [
          "email",
          "fullName",
          "type"
        ],
        "type": "object",
        "properties": {
          "email": {
            "minLength": 1,
            "type": "string",
            "format": "email",
            "description": "Email address. Format: email address.",
            "example": "user@example.com"
          },
          "fullName": {
            "maxLength": 50,
            "minLength": 2,
            "type": "string",
            "description": "Full name."
          },
          "phone": {
            "maxLength": 16,
            "minLength": 6,
            "pattern": "^(\\+|00)(\\d{1,4})([0-9]+)$",
            "type": "string",
            "nullable": true,
            "description": "Phone number."
          },
          "nationalId": {
            "type": "string",
            "nullable": true,
            "description": "National identity number of the individual."
          },
          "type": {
            "$ref": "#/components/schemas/CustomerType"
          },
          "registrationNumber": {
            "type": "string",
            "nullable": true,
            "description": "Registration number."
          },
          "externalId": {
            "maxLength": 50,
            "type": "string",
            "nullable": true,
            "description": "Your external identifier for the resource."
          }
        },
        "additionalProperties": false
      },
      "CustomerResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "fullName": {
            "type": "string",
            "nullable": true,
            "description": "Full name."
          },
          "phone": {
            "type": "string",
            "nullable": true,
            "description": "Phone number."
          },
          "email": {
            "type": "string",
            "nullable": true,
            "description": "Email address."
          },
          "nationalId": {
            "type": "string",
            "nullable": true,
            "description": "National identity number of the individual."
          },
          "registrationNumber": {
            "type": "string",
            "nullable": true,
            "description": "Registration number."
          },
          "type": {
            "$ref": "#/components/schemas/CustomerType"
          },
          "externalId": {
            "type": "string",
            "nullable": true,
            "description": "Your external identifier for the resource."
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "archived": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomerResponsePagedApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerResponse"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/Pages"
          }
        },
        "additionalProperties": false
      },
      "CustomerType": {
        "enum": [
          "Retail",
          "Business"
        ],
        "type": "string"
      },
      "CustomerUpdate": {
        "required": [
          "email"
        ],
        "type": "object",
        "properties": {
          "email": {
            "minLength": 1,
            "type": "string",
            "format": "email",
            "description": "Email address. Format: email address.",
            "example": "user@example.com"
          },
          "phone": {
            "maxLength": 16,
            "minLength": 6,
            "pattern": "^(\\+|00)(\\d{1,4})([0-9]+)$",
            "type": "string",
            "nullable": true,
            "description": "Phone number."
          },
          "fullName": {
            "maxLength": 50,
            "minLength": 2,
            "type": "string",
            "nullable": true,
            "description": "Full name."
          }
        },
        "additionalProperties": false
      },
      "DateTimeDecimalValueAggregation": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "format": "date-time",
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "value": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "DebitTransactionCategory": {
        "type": "object",
        "properties": {
          "totalDebit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currency": {
            "$ref": "#/components/schemas/CurrencyResponse",
            "description": "ISO 4217 currency code (e.g. AED, SAR, BHD)."
          },
          "categories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionCategory"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DirectDebitsResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "accountId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "mandateIdentification": {
            "type": "string",
            "nullable": true,
            "format": "date-time",
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "directDebitStatusCode": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true,
            "description": "Name associated with this object."
          },
          "frequency": {
            "type": "string",
            "nullable": true
          },
          "previousPaymentDateTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "previousPaymentAmount": {
            "type": "string",
            "nullable": true
          },
          "previousPaymentCurrency": {
            "type": "string",
            "nullable": true,
            "example": "SAR"
          }
        },
        "additionalProperties": false
      },
      "DirectDebitsResponseListApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DirectDebitsResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DocumentDetailsResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "documentNumber": {
            "type": "string",
            "nullable": true
          },
          "personalNumber": {
            "type": "string",
            "nullable": true
          },
          "serialNumber": {
            "type": "string",
            "nullable": true
          },
          "calendarType": {
            "type": "string",
            "nullable": true
          },
          "dateOfIssuance": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "dateOfExpiry": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "issuerName": {
            "type": "string",
            "nullable": true
          },
          "issuerAddress": {
            "type": "string",
            "nullable": true
          },
          "issuerStreetAddress": {
            "type": "string",
            "nullable": true
          },
          "issuerLocality": {
            "type": "string",
            "nullable": true
          },
          "issuerRegion": {
            "type": "string",
            "nullable": true
          },
          "issuerPostalCode": {
            "type": "string",
            "nullable": true
          },
          "issuerCountry": {
            "type": "string",
            "nullable": true
          },
          "issuerCountryCode": {
            "type": "string",
            "nullable": true
          },
          "issuerJurisdiction": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EvidenceReference": {
        "type": "object",
        "properties": {
          "evidenceClassification": {
            "type": "string",
            "nullable": true
          },
          "txn": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EvidenceReferenceResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "evidenceClassification": {
            "type": "string",
            "nullable": true
          },
          "txn": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EvidenceResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "documentDetails": {
            "$ref": "#/components/schemas/DocumentDetailsResponse"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "verifierOrganization": {
            "type": "string",
            "nullable": true
          },
          "verifierTxn": {
            "type": "string",
            "nullable": true
          },
          "time": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Attachments"
            },
            "nullable": true
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CheckDetails"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FilterOrder": {
        "enum": [
          "ASCENDING",
          "DESCENDING"
        ],
        "type": "string"
      },
      "LongLivedConsentRequest": {
        "required": [
          "customerId",
          "expiryDate",
          "providerId"
        ],
        "type": "object",
        "properties": {
          "connectionId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Identifier of the account/consent connection. Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "providerId": {
            "type": "string",
            "format": "uuid",
            "description": "Identifier of the open banking provider. Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "customerId": {
            "type": "string",
            "format": "uuid",
            "description": "Identifier of the customer. Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "expiryDate": {
            "type": "string",
            "format": "date-time",
            "description": "Expiry date (ISO 8601).",
            "example": "2025-01-01T00:00:00Z"
          },
          "transactionsFromDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Start date of the transaction range (ISO 8601).",
            "example": "2025-01-01T00:00:00Z"
          },
          "transactionsToDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "End date of the transaction range (ISO 8601).",
            "example": "2025-01-01T00:00:00Z"
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccountInformationPermission"
            },
            "nullable": true,
            "description": "Data permissions granted or requested."
          },
          "successRedirectUrl": {
            "maxLength": 255,
            "type": "string",
            "format": "uri",
            "nullable": true,
            "description": "URL to redirect the customer to after a successful authorization.",
            "example": "https://example.com"
          },
          "failureRedirectUrl": {
            "maxLength": 255,
            "type": "string",
            "format": "uri",
            "nullable": true,
            "description": "URL to redirect the customer to after a failed or cancelled authorization.",
            "example": "https://example.com"
          },
          "autoRedirect": {
            "type": "boolean",
            "description": "When true, redirect the customer automatically after authorization."
          }
        },
        "additionalProperties": false
      },
      "LongLivedRequest": {
        "required": [
          "consentExpiryDate",
          "countryCode",
          "customerId",
          "requestPermissions"
        ],
        "type": "object",
        "properties": {
          "consentExpiryDate": {
            "type": "string",
            "format": "date-time",
            "description": "Date the consent expires (ISO 8601).",
            "example": "2025-01-01T00:00:00Z"
          },
          "providers": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true,
            "description": "List of provider identifiers."
          },
          "customerId": {
            "type": "string",
            "format": "uuid",
            "description": "Identifier of the customer. Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "consentTransactionsFromDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Start date of the transaction history the consent covers (ISO 8601).",
            "example": "2025-01-01T00:00:00Z"
          },
          "consentTransactionsToDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "End date of the transaction history the consent covers (ISO 8601).",
            "example": "2025-01-01T00:00:00Z"
          },
          "countryCode": {
            "minLength": 1,
            "pattern": "^[A-Z]{2}",
            "type": "string",
            "description": "ISO 3166 alpha-2 country code (e.g. AE, SA, BH).",
            "example": "SA"
          },
          "requestPermissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccountInformationPermission"
            },
            "description": "Data permissions requested for the consent."
          },
          "redirectionFlow": {
            "$ref": "#/components/schemas/RedirectionFlow"
          },
          "successRedirectUrl": {
            "maxLength": 255,
            "type": "string",
            "format": "uri",
            "nullable": true,
            "description": "URL to redirect the customer to after a successful authorization.",
            "example": "https://example.com"
          },
          "failureRedirectUrl": {
            "maxLength": 255,
            "type": "string",
            "format": "uri",
            "nullable": true,
            "description": "URL to redirect the customer to after a failed or cancelled authorization.",
            "example": "https://example.com"
          },
          "autoRedirect": {
            "type": "boolean",
            "description": "When true, redirect the customer automatically after authorization."
          }
        },
        "additionalProperties": false
      },
      "ObConsentsStatus": {
        "enum": [
          "AwaitingAuthorization",
          "Authorized",
          "Consumed",
          "Finished",
          "Rejected",
          "Expired",
          "Revoked"
        ],
        "type": "string"
      },
      "ObTransactionProperty": {
        "enum": [
          "BOOKING_DATE",
          "STATUS",
          "TYPE",
          "MERCHANT_NAME",
          "MERCHANT_CATEGORY_CODE"
        ],
        "type": "string"
      },
      "ObTransactionStatus": {
        "enum": [
          "BOOKED",
          "PENDING",
          "REJECTED"
        ],
        "type": "string"
      },
      "ObTransactionType": {
        "enum": [
          "CREDIT",
          "DEBIT"
        ],
        "type": "string"
      },
      "ObjectApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Pages": {
        "type": "object",
        "properties": {
          "currentPageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "totalNumberOfPages": {
            "type": "integer",
            "format": "int32"
          },
          "totalItems": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "PartiesResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "accountId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "partyNumber": {
            "type": "string",
            "nullable": true
          },
          "partyType": {
            "type": "string",
            "nullable": true
          },
          "accountRole": {
            "type": "string",
            "nullable": true
          },
          "verifiedClaims": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerifiedClaimsResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PartiesResponseListApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartiesResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProviderStatus": {
        "enum": [
          "Active",
          "Inactive"
        ],
        "type": "string"
      },
      "RedirectionFlow": {
        "enum": [
          "WEB",
          "DECOUPLED"
        ],
        "type": "string"
      },
      "RequestStatus": {
        "enum": [
          "AwaitingApproval",
          "Rejected",
          "Approved",
          "Expired"
        ],
        "type": "string"
      },
      "Salary": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "format": "uuid",
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "month": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double",
            "description": "Monetary amount as a decimal value."
          },
          "currency": {
            "type": "string",
            "nullable": true,
            "description": "ISO 4217 currency code (e.g. AED, SAR, BHD).",
            "example": "SAR"
          }
        },
        "additionalProperties": false
      },
      "SalaryListApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Salary"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ScheduledPaymentsResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "accountId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "accountHolderName": {
            "type": "string",
            "nullable": true
          },
          "accountHolderShortName": {
            "type": "string",
            "nullable": true
          },
          "scheduledType": {
            "type": "string",
            "nullable": true
          },
          "scheduledPaymentDateTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "creditorReference": {
            "type": "string",
            "nullable": true
          },
          "debtorReference": {
            "type": "string",
            "nullable": true
          },
          "instructedAmount": {
            "type": "string",
            "nullable": true
          },
          "instructedAmountCurrency": {
            "type": "string",
            "nullable": true,
            "example": "SAR"
          },
          "creditorAgentIdentificationType": {
            "type": "string",
            "nullable": true
          },
          "creditorAgentIdentification": {
            "type": "string",
            "nullable": true
          },
          "creditorAccount": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreditorAccount"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ScheduledPaymentsResponseListApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScheduledPaymentsResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ServicerAddress": {
        "type": "object",
        "properties": {
          "addressType": {
            "type": "string",
            "nullable": true
          },
          "department": {
            "type": "string",
            "nullable": true
          },
          "subDepartment": {
            "type": "string",
            "nullable": true
          },
          "addressLine": {
            "type": "string",
            "nullable": true
          },
          "streetName": {
            "type": "string",
            "nullable": true
          },
          "buildingNumber": {
            "type": "string",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "nullable": true
          },
          "townName": {
            "type": "string",
            "nullable": true
          },
          "countrySubDivision": {
            "type": "string",
            "nullable": true
          },
          "countryName": {
            "type": "string",
            "nullable": true
          },
          "shortAddress": {
            "type": "string",
            "nullable": true
          },
          "unitNumber": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "secondaryNumber": {
            "type": "string",
            "nullable": true
          },
          "district": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true,
            "example": "SA"
          }
        },
        "additionalProperties": false
      },
      "ServicerAddressResponse": {
        "type": "object",
        "properties": {
          "addressType": {
            "type": "string",
            "nullable": true
          },
          "department": {
            "type": "string",
            "nullable": true
          },
          "subDepartment": {
            "type": "string",
            "nullable": true
          },
          "addressLine": {
            "type": "string",
            "nullable": true
          },
          "streetName": {
            "type": "string",
            "nullable": true
          },
          "buildingNumber": {
            "type": "string",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "nullable": true
          },
          "townName": {
            "type": "string",
            "nullable": true
          },
          "countrySubDivision": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true,
            "example": "SA"
          },
          "shortAddress": {
            "type": "string",
            "nullable": true
          },
          "unitNumber": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "secondaryNumber": {
            "type": "string",
            "nullable": true
          },
          "district": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Servicer": {
        "type": "object",
        "properties": {
          "scheme": {
            "type": "string",
            "nullable": true
          },
          "identification": {
            "type": "string",
            "nullable": true,
            "description": "Account identifier, its format is given by the accompanying scheme (e.g. an IBAN)."
          },
          "address": {
            "$ref": "#/components/schemas/ServicerAddress"
          }
        },
        "additionalProperties": false
      },
      "ServicerResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "address": {
            "$ref": "#/components/schemas/ServicerAddressResponse"
          },
          "scheme": {
            "type": "string",
            "nullable": true
          },
          "identification": {
            "type": "string",
            "nullable": true,
            "description": "Account identifier, its format is given by the accompanying scheme (e.g. an IBAN)."
          }
        },
        "additionalProperties": false
      },
      "SubAccountsResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "scheme": {
            "type": "string",
            "nullable": true
          },
          "identification": {
            "type": "string",
            "nullable": true,
            "description": "Account identifier, its format is given by the accompanying scheme (e.g. an IBAN)."
          },
          "name": {
            "type": "string",
            "nullable": true,
            "description": "Name associated with this object."
          }
        },
        "additionalProperties": false
      },
      "TransactionAmountResponse": {
        "type": "object",
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/CurrencyResponse",
            "description": "ISO 4217 currency code (e.g. AED, SAR, BHD)."
          },
          "localExchange": {
            "$ref": "#/components/schemas/BalanceLocalExchange"
          },
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "description": "Monetary amount as a decimal value."
          },
          "chargeIncluded": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TransactionBalance": {
        "type": "object",
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/CurrencyResponse",
            "description": "ISO 4217 currency code (e.g. AED, SAR, BHD)."
          },
          "creditDebitIndicator": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "description": "Monetary amount as a decimal value."
          },
          "chargeIncluded": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TransactionBankCode": {
        "type": "object",
        "properties": {
          "subCode": {
            "type": "string",
            "nullable": true
          },
          "domain": {
            "type": "string",
            "nullable": true
          },
          "domainCode": {
            "type": "string",
            "nullable": true
          },
          "family": {
            "type": "string",
            "nullable": true
          },
          "familyCode": {
            "type": "string",
            "nullable": true
          },
          "subFamily": {
            "type": "string",
            "nullable": true
          },
          "subFamilyCode": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TransactionCategorizationResponse": {
        "type": "object",
        "properties": {
          "debit": {
            "$ref": "#/components/schemas/DebitTransactionCategory"
          },
          "credit": {
            "$ref": "#/components/schemas/CreditTransactionCategory"
          }
        },
        "additionalProperties": false
      },
      "TransactionCategory": {
        "type": "object",
        "properties": {
          "subCategoryName": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "description": "Monetary amount as a decimal value."
          },
          "bookingDateTime": {
            "type": "string",
            "format": "date",
            "nullable": true,
            "description": "Format: ISO 8601 date (e.g. `2025-01-01`).",
            "example": "2025-01-01"
          },
          "categoryName": {
            "type": "string",
            "nullable": true
          },
          "transactionInformation": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TransactionCurrencyExchangeResponse": {
        "type": "object",
        "properties": {
          "sourceCurrency": {
            "$ref": "#/components/schemas/CurrencyResponse"
          },
          "targetCurrency": {
            "$ref": "#/components/schemas/CurrencyResponse"
          },
          "exchangeRate": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "unitCurrency": {
            "$ref": "#/components/schemas/CurrencyResponse"
          },
          "contractIdentification": {
            "type": "string",
            "nullable": true
          },
          "quotationDate": {
            "type": "string",
            "format": "date",
            "nullable": true,
            "description": "Format: ISO 8601 date (e.g. `2025-01-01`).",
            "example": "2025-01-01"
          },
          "instructedAmount": {
            "$ref": "#/components/schemas/AmountResponse"
          }
        },
        "additionalProperties": false
      },
      "TransactionDetailsResponse": {
        "type": "object",
        "properties": {
          "account": {
            "$ref": "#/components/schemas/BankAccountResponse"
          },
          "balance": {
            "$ref": "#/components/schemas/TransactionBalance"
          },
          "creditorAgent": {
            "$ref": "#/components/schemas/Servicer"
          },
          "debtorAgent": {
            "$ref": "#/components/schemas/Servicer"
          },
          "deborAccount": {
            "$ref": "#/components/schemas/SubAccountsResponse"
          },
          "creditorAccount": {
            "$ref": "#/components/schemas/SubAccountsResponse"
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "externalTransactionId": {
            "type": "string",
            "nullable": true
          },
          "externalAccountId": {
            "type": "string",
            "nullable": true
          },
          "transactionReference": {
            "type": "string",
            "nullable": true
          },
          "localTimeZone": {
            "type": "string",
            "nullable": true
          },
          "transactionDateTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "subTransactionType": {
            "type": "string",
            "nullable": true
          },
          "transactionType": {
            "type": "string",
            "nullable": true
          },
          "flags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "paymentModes": {
            "type": "string",
            "nullable": true
          },
          "transactionMutability": {
            "type": "string",
            "nullable": true
          },
          "transactionInformation": {
            "type": "string",
            "nullable": true
          },
          "statementReference": {
            "type": "string",
            "nullable": true
          },
          "creditDebitIndicator": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "bookingDateTime": {
            "type": "string",
            "format": "date",
            "nullable": true,
            "description": "Format: ISO 8601 date (e.g. `2025-01-01`).",
            "example": "2025-01-01"
          },
          "valueDateTime": {
            "type": "string",
            "format": "date",
            "nullable": true,
            "description": "Format: ISO 8601 date (e.g. `2025-01-01`).",
            "example": "2025-01-01"
          },
          "addressLine": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "$ref": "#/components/schemas/TransactionAmountResponse",
            "description": "Monetary amount as a decimal value."
          },
          "chargeAmount": {
            "$ref": "#/components/schemas/AmountResponse"
          },
          "billDetails": {
            "$ref": "#/components/schemas/BillDetails"
          },
          "currencyExchange": {
            "$ref": "#/components/schemas/TransactionCurrencyExchangeResponse"
          },
          "bankTransactionCode": {
            "$ref": "#/components/schemas/TransactionBankCode"
          },
          "proprietaryBankTransactionCode": {
            "$ref": "#/components/schemas/TransactionProprietaryBankTransactionCode"
          },
          "merchantDetails": {
            "$ref": "#/components/schemas/TransactionMerchantDetails"
          },
          "subCategoryName": {
            "type": "string",
            "nullable": true
          },
          "categoryCode": {
            "type": "string",
            "nullable": true
          },
          "categoryName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TransactionDetailsResponseApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/TransactionDetailsResponse"
          }
        },
        "additionalProperties": false
      },
      "TransactionFilter": {
        "type": "object",
        "properties": {
          "fromBookingDateTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Start of the booking date-time range (ISO 8601).",
            "example": "2025-01-01T00:00:00Z"
          },
          "toBookingDateTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "End of the booking date-time range (ISO 8601).",
            "example": "2025-01-01T00:00:00Z"
          },
          "status": {
            "$ref": "#/components/schemas/ObTransactionStatus"
          },
          "type": {
            "$ref": "#/components/schemas/ObTransactionType"
          },
          "searchBy": {
            "$ref": "#/components/schemas/ObTransactionProperty"
          },
          "searchKeyWord": {
            "maxLength": 100,
            "type": "string",
            "nullable": true,
            "description": "Keyword to filter results by."
          },
          "orderBy": {
            "$ref": "#/components/schemas/ObTransactionProperty"
          },
          "order": {
            "$ref": "#/components/schemas/FilterOrder"
          }
        },
        "additionalProperties": false
      },
      "TransactionMerchantDetails": {
        "type": "object",
        "properties": {
          "categoryCode": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true,
            "description": "Name associated with this object."
          },
          "merchantId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TransactionProprietaryBankTransactionCode": {
        "type": "object",
        "properties": {
          "issuer": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TransactionResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "externalTransactionId": {
            "type": "string",
            "nullable": true
          },
          "externalAccountId": {
            "type": "string",
            "nullable": true
          },
          "transactionReference": {
            "type": "string",
            "nullable": true
          },
          "localTimeZone": {
            "type": "string",
            "nullable": true
          },
          "transactionDateTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "subTransactionType": {
            "type": "string",
            "nullable": true
          },
          "transactionType": {
            "type": "string",
            "nullable": true
          },
          "flags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "paymentModes": {
            "type": "string",
            "nullable": true
          },
          "transactionMutability": {
            "type": "string",
            "nullable": true
          },
          "transactionInformation": {
            "type": "string",
            "nullable": true
          },
          "statementReference": {
            "type": "string",
            "nullable": true
          },
          "creditDebitIndicator": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "bookingDateTime": {
            "type": "string",
            "format": "date",
            "nullable": true,
            "description": "Format: ISO 8601 date (e.g. `2025-01-01`).",
            "example": "2025-01-01"
          },
          "valueDateTime": {
            "type": "string",
            "format": "date",
            "nullable": true,
            "description": "Format: ISO 8601 date (e.g. `2025-01-01`).",
            "example": "2025-01-01"
          },
          "addressLine": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "$ref": "#/components/schemas/TransactionAmountResponse",
            "description": "Monetary amount as a decimal value."
          },
          "chargeAmount": {
            "$ref": "#/components/schemas/AmountResponse"
          },
          "billDetails": {
            "$ref": "#/components/schemas/BillDetails"
          },
          "currencyExchange": {
            "$ref": "#/components/schemas/TransactionCurrencyExchangeResponse"
          },
          "bankTransactionCode": {
            "$ref": "#/components/schemas/TransactionBankCode"
          },
          "proprietaryBankTransactionCode": {
            "$ref": "#/components/schemas/TransactionProprietaryBankTransactionCode"
          },
          "merchantDetails": {
            "$ref": "#/components/schemas/TransactionMerchantDetails"
          },
          "subCategoryName": {
            "type": "string",
            "nullable": true
          },
          "categoryCode": {
            "type": "string",
            "nullable": true
          },
          "categoryName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TransactionResponsePagedApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "errorDescription": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionResponse"
            },
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/Pages"
          }
        },
        "additionalProperties": false
      },
      "UpdateAccountInformationRequestAccess": {
        "required": [
          "countryCode",
          "requestPermissions"
        ],
        "type": "object",
        "properties": {
          "consentTransactionsFromDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Start date of the transaction history the consent covers (ISO 8601).",
            "example": "2025-01-01T00:00:00Z"
          },
          "consentTransactionsToDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "End date of the transaction history the consent covers (ISO 8601).",
            "example": "2025-01-01T00:00:00Z"
          },
          "countryCode": {
            "minLength": 1,
            "pattern": "^[A-Z]{2}",
            "type": "string",
            "description": "ISO 3166 alpha-2 country code (e.g. AE, SA, BH).",
            "example": "SA"
          },
          "requestPermissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccountInformationPermission"
            },
            "description": "Data permissions requested for the consent."
          },
          "redirectionFlow": {
            "$ref": "#/components/schemas/RedirectionFlow"
          },
          "successRedirectUrl": {
            "maxLength": 255,
            "type": "string",
            "format": "uri",
            "nullable": true,
            "description": "URL to redirect the customer to after a successful authorization.",
            "example": "https://example.com"
          },
          "failureRedirectUrl": {
            "maxLength": 255,
            "type": "string",
            "format": "uri",
            "nullable": true,
            "description": "URL to redirect the customer to after a failed or cancelled authorization.",
            "example": "https://example.com"
          },
          "autoRedirect": {
            "type": "boolean",
            "description": "When true, redirect the customer automatically after authorization."
          }
        },
        "additionalProperties": false
      },
      "VerificationResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "assuranceProcess": {
            "$ref": "#/components/schemas/AssuranceProcessResponse"
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvidenceResponse"
            },
            "nullable": true
          },
          "assuranceLevel": {
            "type": "string",
            "nullable": true
          },
          "time": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "trustFramework": {
            "type": "string",
            "nullable": true
          },
          "verificationProcess": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VerifiedClaimsResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Format: UUID.",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Format: ISO 8601 date-time (e.g. `2025-01-01T00:00:00Z`).",
            "example": "2025-01-01T00:00:00Z"
          },
          "verification": {
            "$ref": "#/components/schemas/VerificationResponse"
          },
          "claims": {
            "$ref": "#/components/schemas/ClaimsResponse"
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "apiKey",
        "description": "Please enter into field the word 'Bearer' followed by a space and JWT",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "Bearer": []
    }
  ],
  "servers": [
    {
      "url": "https://sandbox.sparefinancial.sa",
      "description": "Sandbox"
    }
  ]
}
