{
  "swagger": "2.0",
  "info": {
    "title": "Plexe Public API",
    "version": "v1"
  },
  "paths": {
    "/api/Application/create-customer-and-application": {
      "post": {
        "tags": [
          "Application"
        ],
        "summary": "Create new customer and application",
        "description": "before creating it will validate",
        "operationId": "CreateCustomerAndApplication",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "sendLink",
            "description": "sendLink",
            "type": "boolean",
            "default": false
          },
          {
            "in": "body",
            "name": "body",
            "description": "applicationAndCustomer",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplicationAndCustomerRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ApplicationCustomerResponse"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ValidationProblemDetails"
            }
          }
        },
        "deprecated": true
      }
    },
    "/api/Application/send-application-link": {
      "post": {
        "tags": [
          "Application"
        ],
        "summary": "Send application link",
        "operationId": "SendApplicationLink",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "applicationId",
            "description": "Application Id",
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Application/create-customer-and-application-and-applicant": {
      "post": {
        "tags": [
          "Application"
        ],
        "summary": "Create application with applicant",
        "operationId": "CreateCustomerAndApplicationAndApplicant",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "sendLink",
            "description": "",
            "type": "boolean",
            "default": false
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplicationAndCustomerAndApplicantRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ApplicationCustomerResponse"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ValidationProblemDetails"
            }
          }
        }
      }
    },
    "/api/Application/create-customer": {
      "post": {
        "tags": [
          "Application"
        ],
        "summary": "Create Customer",
        "operationId": "CreateCustomer",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "user",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UserRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/UserResponse"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Application/create-application": {
      "post": {
        "tags": [
          "Application"
        ],
        "summary": "Create Application",
        "operationId": "CreateApplication",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "sendLink",
            "description": "sendLink",
            "type": "boolean",
            "default": false
          },
          {
            "in": "body",
            "name": "body",
            "description": "applicationRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplicationRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ValidationProblemDetails"
            }
          }
        }
      }
    },
    "/api/Application/create-application-and-applicant": {
      "post": {
        "tags": [
          "Application"
        ],
        "summary": "Create Application",
        "operationId": "CreateApplicationAndApplicant",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "sendLink",
            "description": "sendLink",
            "type": "boolean",
            "default": false
          },
          {
            "in": "body",
            "name": "body",
            "description": "applicationRequest",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplicationAndApplicantRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ValidationProblemDetails"
            }
          }
        }
      }
    },
    "/api/Application/quick-test/{applicationId}": {
      "post": {
        "tags": [
          "Application"
        ],
        "summary": "Quick Test",
        "operationId": "QuickTest",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "description": "",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "schema": {
              "$ref": "#/definitions/BankingDataRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "boolean"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Application/add-or-update-banking-data/{applicationId}": {
      "post": {
        "tags": [
          "Application"
        ],
        "operationId": "AddOrUpdateBankingData",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "bankName",
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BankingDataRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "boolean"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Application/process-application/{applicationId}": {
      "get": {
        "tags": [
          "Application"
        ],
        "summary": "For Process Application",
        "operationId": "ProcessApplication",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "description": "applicationId",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Application/application-status/{applicationId}": {
      "get": {
        "tags": [
          "Application"
        ],
        "summary": "Get Application Status",
        "operationId": "ApplicationStatus",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "description": "applicationId",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "string"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Application/application-offer/{applicationId}": {
      "get": {
        "tags": [
          "Application"
        ],
        "summary": "For Application Offer",
        "operationId": "ApplicationOffer",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "description": "applicationId.",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "force",
            "description": "force.",
            "type": "boolean",
            "default": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/OfferResponse"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Application/get-customer-applications/{customerId}": {
      "get": {
        "tags": [
          "Application"
        ],
        "summary": "Get Customer Applications Based on Customer Id.",
        "operationId": "GetCustomerApplications",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "customerId",
            "description": "customerId.",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Application"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Application/get-partner-applications/{partnerId}": {
      "get": {
        "tags": [
          "Application"
        ],
        "summary": "Get Partner Applications Based on Partner Id.",
        "operationId": "GetPartnerApplications",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "partnerId",
            "description": "partnerId.",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "skip",
            "description": "skip.",
            "type": "integer",
            "format": "int32",
            "default": 0
          },
          {
            "in": "query",
            "name": "take",
            "description": "take.",
            "type": "integer",
            "format": "int32",
            "default": 2147483647
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Application"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Application/get-application/{applicationId}": {
      "get": {
        "tags": [
          "Application"
        ],
        "summary": "Get Application Based on Application Id",
        "operationId": "GetApplication",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "description": "applicationId",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Application"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Application/update-application-name/{applicationId}": {
      "get": {
        "tags": [
          "Application"
        ],
        "operationId": "UpdateApplicationName",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "name",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "boolean"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Application/update-application-name-and-zip-code/{applicationId}": {
      "get": {
        "tags": [
          "Application"
        ],
        "operationId": "UpdateApplicationNameAndZipCode",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "name",
            "type": "string"
          },
          {
            "in": "query",
            "name": "zipCode",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "boolean"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Application/update-customer-data/{applicationId}": {
      "get": {
        "tags": [
          "Application"
        ],
        "operationId": "UpdateCustomerData",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "firstname",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "lastname",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "address",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "state",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "city",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "ssn",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "mobile",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "dateOfBirth",
            "required": true,
            "type": "string",
            "format": "date-time"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "boolean"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Application/update-application-data/{applicationId}": {
      "get": {
        "tags": [
          "Application"
        ],
        "operationId": "UpdateApplicationData",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "name",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "zipcode",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "startDate",
            "required": true,
            "type": "string",
            "format": "date-time"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "boolean"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Application/submit-bankstatement-document/{applicationId}": {
      "post": {
        "tags": [
          "Application"
        ],
        "summary": "Submit Bank statement document.",
        "operationId": "SubmitBankStatementDocument",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "description": "",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "fileName",
            "description": "",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "byte"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Application/cancel-application/{applicationId}": {
      "post": {
        "tags": [
          "Application"
        ],
        "summary": "Cancel application.",
        "operationId": "CancelApplication",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "description": "applicationId.",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/ApplicationApproval/add-company-details/{applicationId}": {
      "post": {
        "tags": [
          "ApplicationApproval"
        ],
        "summary": "Add company details",
        "operationId": "AddCompanyDetails",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "description": "Application Id",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "body",
            "name": "body",
            "description": "Company Data",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CompanyDataRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/ApplicationApproval/add-primary-applicant-details/{applicationId}": {
      "post": {
        "tags": [
          "ApplicationApproval"
        ],
        "summary": "Add primary applicant details",
        "operationId": "AddPrimaryApplicantDetails",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "description": "Application Id",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "body",
            "name": "body",
            "description": "Applicant",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PrimaryApplicantRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/ApplicationApproval/add-secondary-applicant-details/{applicationId}": {
      "post": {
        "tags": [
          "ApplicationApproval"
        ],
        "summary": "Add secondary applicant details",
        "operationId": "AddSecondaryApplicantDetails",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "description": "Application Id",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "body",
            "name": "body",
            "description": "Applicant",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SecondaryApplicantRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/ApplicationApproval/get-contracts/{applicationId}": {
      "get": {
        "tags": [
          "ApplicationApproval"
        ],
        "summary": "Get contracts of application",
        "operationId": "GetContracts",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "description": "Application Id",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ContractDocumentResponse"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/ApplicationApproval/get-contract-details/{applicationId}": {
      "get": {
        "tags": [
          "ApplicationApproval"
        ],
        "summary": "Get contracts against application id.",
        "operationId": "GetContractsDetails",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "description": "Application Id",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ContractDetails"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/ApplicationApproval/get-all-applicants/{applicationId}": {
      "get": {
        "tags": [
          "ApplicationApproval"
        ],
        "summary": "Get all applicants",
        "operationId": "GetAllApplicants",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/PublicApiApplicantResponse"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/ApplicationApproval/get-all-bank-accounts/{applicationId}": {
      "get": {
        "tags": [
          "ApplicationApproval"
        ],
        "summary": "Get all banks",
        "operationId": "GetAllBankAccounts",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/PublicApiBankFeedAccountResponse"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/ApplicationApproval/get-primary-bank-account/{applicationId}": {
      "get": {
        "tags": [
          "ApplicationApproval"
        ],
        "summary": "Get primary bank account",
        "operationId": "GetPrimaryBankAccount",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "description": "Application Id",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/ApplicationApproval/set-primary-bank-account/{applicationId}/{id}": {
      "post": {
        "tags": [
          "ApplicationApproval"
        ],
        "summary": "Set primary bank account",
        "operationId": "SetPrimaryBankAccount",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "description": "Application Id",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "path",
            "name": "id",
            "description": "Id of account that need to set as primary",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/ApplicationApproval/sign-contract/{applicationId}/{applicantId}": {
      "post": {
        "tags": [
          "ApplicationApproval"
        ],
        "summary": "Sign contract by applicant",
        "operationId": "SignContract",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "description": "Application Id",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "path",
            "name": "applicantId",
            "description": "Applicant Id",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "body",
            "name": "body",
            "description": "Signatures",
            "schema": {
              "$ref": "#/definitions/SignaturesRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/ApplicationApproval/get-required-documents/{applicationId}": {
      "get": {
        "tags": [
          "ApplicationApproval"
        ],
        "summary": "Get required documents",
        "operationId": "GetRequiredDocuments",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "description": "Application Id",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SupportDocumentDetails"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/ApplicationApproval/submit-required-document/{applicationId}": {
      "post": {
        "tags": [
          "ApplicationApproval"
        ],
        "operationId": "SubmitRequiredDocument",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "supportingDocumentId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "fileType",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "fileName",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "type": "string",
              "format": "byte"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/ApplicationApproval/submit-document/{applicationId}": {
      "post": {
        "tags": [
          "ApplicationApproval"
        ],
        "operationId": "SubmitDocument",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "fileType",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "fileName",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "type": "string",
              "format": "byte"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/ApplicationBulk/create-customers": {
      "post": {
        "tags": [
          "ApplicationBulk"
        ],
        "summary": "Create Customers in bulk",
        "operationId": "CreateCustomers",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "users",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/UserRequest"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/UserResponse"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/ApplicationBulk/create-applications": {
      "post": {
        "tags": [
          "ApplicationBulk"
        ],
        "summary": "Create applications in bulk",
        "operationId": "CreateApplications",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "applications",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ApplicationRequest"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ApplicationResponse"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ValidationProblemDetails"
            }
          }
        }
      }
    },
    "/api/Authenication/login": {
      "post": {
        "tags": [
          "Authenication"
        ],
        "summary": "You will need to provide the username and password to get the bearer token.",
        "operationId": "Login",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "Credentials supplied in the JSON request body.",
            "schema": {
              "$ref": "#/definitions/LoginRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/FullApplicationUser"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Authenication/validate-two-factor": {
      "post": {
        "tags": [
          "Authenication"
        ],
        "summary": "Validates the two-factor code generated during login.",
        "operationId": "ValidateTwoFactor",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "Two-factor verification request.",
            "schema": {
              "$ref": "#/definitions/TwoFactorLoginRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/FullApplicationUser"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Authenication/refresh-token": {
      "post": {
        "tags": [
          "Authenication"
        ],
        "summary": "If the Bearer token expires, then call this to refresh it and return the new token",
        "operationId": "RefreshToken",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "string"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Calculation/application-loc-calculation-slider": {
      "post": {
        "tags": [
          "Calculation"
        ],
        "summary": "For LOC Calculation Slider",
        "operationId": "CalculateLOCSlider",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "applicationId",
            "description": "applicationId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "body",
            "name": "body",
            "description": "applicationId",
            "schema": {
              "$ref": "#/definitions/SliderRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SliderResult"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Calculation/application-loc-calculation": {
      "post": {
        "tags": [
          "Calculation"
        ],
        "summary": "Application Line of credit calculation.",
        "operationId": "CalculateLOC",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "applicationId",
            "description": "applicationId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "body",
            "name": "body",
            "description": "calculationRequest",
            "schema": {
              "$ref": "#/definitions/CalculationRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/CalculationResponse"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Calculation/application-invoice-calculation": {
      "post": {
        "tags": [
          "Calculation"
        ],
        "summary": "Application Invoice Calculation",
        "operationId": "CalculateInvoice",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "applicationId",
            "description": "applicationId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "body",
            "name": "body",
            "description": "calculationRequest",
            "schema": {
              "$ref": "#/definitions/CalculationRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/CalculationResponse"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Communication/get-all-messages/{applicationId}": {
      "get": {
        "tags": [
          "Communication"
        ],
        "summary": "For Getting all messages",
        "operationId": "GetAllMessages",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "description": "applicationId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "skip",
            "description": "skip",
            "type": "integer",
            "format": "int32",
            "default": 0
          },
          {
            "in": "query",
            "name": "take",
            "description": "take",
            "type": "integer",
            "format": "int32",
            "default": 2147483647
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Message"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Communication/post-messages/{applicationId}": {
      "post": {
        "tags": [
          "Communication"
        ],
        "summary": "For Post Message.",
        "operationId": "PostMessage",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "applicationId",
            "description": "applicationId.",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "body",
            "name": "body",
            "description": "communicationRequest.",
            "schema": {
              "$ref": "#/definitions/CommunicationRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Customer/get-customer-by-email": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Get Customer by Email",
        "operationId": "GetCustomerByEmail",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "email",
            "description": "Customer email",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": { }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Customer/get-customer-by-id/{customerId}": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Get Customer by Id",
        "operationId": "GetCustomerById",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "customerId",
            "description": "Customer Id",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": { }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/InvoiceCustomer/get-invoice-customer/{loanId}": {
      "get": {
        "tags": [
          "InvoiceCustomer"
        ],
        "summary": "For get invoice of customer based on loan id",
        "operationId": "GetInvoiceCustomers",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "loanId",
            "description": "loanId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "skip",
            "description": "skip",
            "type": "integer",
            "format": "int32",
            "default": 0
          },
          {
            "in": "query",
            "name": "take",
            "description": "take",
            "type": "integer",
            "format": "int32",
            "default": 2147483647
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/InvoiceCustomer"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/InvoiceCustomer/request-enable/{loanId}": {
      "post": {
        "tags": [
          "InvoiceCustomer"
        ],
        "summary": "Enable Invoice",
        "operationId": "RequestEnableInvoiceCustomers",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "loanId",
            "description": "loanId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "invoiceCustomerId",
            "description": "invoiceCustomerId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Loan/get-loan/{loanId}": {
      "get": {
        "tags": [
          "Loan"
        ],
        "summary": "For get loan based on loan id",
        "operationId": "GetLoan",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "loanId",
            "description": "",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Loan"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Loan/get-customer-loans/{customerId}": {
      "get": {
        "tags": [
          "Loan"
        ],
        "summary": "Get Customer Loan By Customer Id",
        "operationId": "GetCustomerLoans",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "customerId",
            "description": "customerId",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LoanResponse"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Loan/get-transactions/{loanId}": {
      "get": {
        "tags": [
          "Loan"
        ],
        "summary": "Get Transactions By Loan Id",
        "operationId": "GetTransactions",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "loanId",
            "description": "loanId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "skip",
            "description": "skip",
            "type": "integer",
            "format": "int32",
            "default": 0
          },
          {
            "in": "query",
            "name": "take",
            "description": "take",
            "type": "integer",
            "format": "int32",
            "default": 2147483647
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Transaction"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Loan/get-transactions-paged/{loanId}": {
      "get": {
        "tags": [
          "Loan"
        ],
        "operationId": "GetTransactionsPaged",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "loanId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "skip",
            "type": "integer",
            "format": "int32",
            "default": 0
          },
          {
            "in": "query",
            "name": "take",
            "type": "integer",
            "format": "int32",
            "default": 2147483647
          },
          {
            "in": "query",
            "name": "descending",
            "type": "boolean",
            "default": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/PagedListTransactionResponse"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Loan/get-withdrawals/{loanId}": {
      "get": {
        "tags": [
          "Loan"
        ],
        "summary": "Get Withdrawals by Loan Id",
        "operationId": "GetWithdrawals",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "loanId",
            "description": "loanId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "skip",
            "description": "skip",
            "type": "integer",
            "format": "int32",
            "default": 0
          },
          {
            "in": "query",
            "name": "take",
            "description": "take",
            "type": "integer",
            "format": "int32",
            "default": 2147483647
          },
          {
            "in": "query",
            "name": "descending",
            "description": "by date",
            "type": "boolean",
            "default": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/PagedListAdvanceProjectionResponse"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Loan/get-contract-documents/{loanId}": {
      "get": {
        "tags": [
          "Loan"
        ],
        "summary": "Get Contract Document By Loan Id",
        "operationId": "GetContractDocuments",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "loanId",
            "description": "loanId",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ContractDocumentResponse"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Loan/get-total-balance/{loanId}": {
      "get": {
        "tags": [
          "Loan"
        ],
        "summary": "Get Total Balance By Loan Id",
        "operationId": "GetTotalBalance",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "loanId",
            "description": "",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/LoanBalanceResponse"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Loan/get-repayment-balances/{loanId}": {
      "get": {
        "tags": [
          "Loan"
        ],
        "summary": "Get Repayment Balances By Loan Id",
        "operationId": "GetRepaymentBalances",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "loanId",
            "description": "loanId",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DashboardLoanRepaymentResponse"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Loan/make-withdrawal-line-of-credit/{loanId}": {
      "post": {
        "tags": [
          "Loan"
        ],
        "summary": "Make Withdrawal Of Line Of Credit",
        "operationId": "ProcessWithdrawalLOC",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "loanId",
            "description": "loanId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "body",
            "name": "body",
            "description": "request",
            "schema": {
              "$ref": "#/definitions/LineOfCreditWithdrawalRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/LineOfCreditWithdrawalResponse"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Loan/make-withdrawal-invoice/{loanId}": {
      "post": {
        "tags": [
          "Loan"
        ],
        "summary": "Make Withdrawal Of Invoice By Loan Id",
        "operationId": "ProcessWithdrawalInvoice",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "loanId",
            "description": "loanId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "body",
            "name": "body",
            "description": "request",
            "schema": {
              "$ref": "#/definitions/InvoiceWithdrawalRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/InvoiceWithdrawalResponse"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Loan/resend-withdrawal-otp/{loanId}": {
      "post": {
        "tags": [
          "Loan"
        ],
        "summary": "Resend Withdrawal Otp",
        "operationId": "ResendWithdrawalOtp",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "loanId",
            "description": "",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Loan/confirm-withdrawal-invoice/{loanId}": {
      "post": {
        "tags": [
          "Loan"
        ],
        "summary": "Confirm withdrawal invoice by loan Id",
        "operationId": "ConfirmWithdrawalInvoice",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "loanId",
            "description": "loanId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "body",
            "name": "body",
            "description": "request",
            "schema": {
              "$ref": "#/definitions/WithdrawInvoiceRequestData"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/GuidApiResponse"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Loan/is-loan-enabled/{loanId}": {
      "get": {
        "tags": [
          "Loan"
        ],
        "summary": "Get enable disable status for loan based on loan Id.",
        "operationId": "IsLoanEnabled",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "loanId",
            "description": "",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "boolean"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Loan/is-loan-closed/{loanId}": {
      "get": {
        "tags": [
          "Loan"
        ],
        "operationId": "IsLoanClosed",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "loanId",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "boolean"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Loan/get-early-repayment/{loanId}": {
      "get": {
        "tags": [
          "Loan"
        ],
        "summary": "For get early repayment based on loan id.",
        "operationId": "GetEarlyRepayment",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "loanId",
            "description": "",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/EarlyRepaymentResponse"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Lookup/get-industries": {
      "get": {
        "tags": [
          "Lookup"
        ],
        "summary": "For Get Industries.",
        "operationId": "GetIndustries",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Industry"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Partner/get-applications-on-partner/{partnerId}": {
      "get": {
        "tags": [
          "Partner"
        ],
        "summary": "Get Applications On Partner Id.",
        "operationId": "GetApplicationsOnPartner",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "partnerId",
            "description": "",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Application"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Partner/get-applications-on-partner-with-filter/{partnerId}": {
      "get": {
        "tags": [
          "Partner"
        ],
        "summary": "Get Applications On Partner Id.",
        "operationId": "GetApplicationsOnPartnerWithFilter",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "partnerId",
            "description": "",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "startDate",
            "description": "",
            "type": "string",
            "format": "date-time"
          },
          {
            "in": "query",
            "name": "endDate",
            "description": "",
            "type": "string",
            "format": "date-time"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Application"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Partner/get-applications-on-partner-with-last-updated/{partnerId}": {
      "get": {
        "tags": [
          "Partner"
        ],
        "operationId": "GetApplicationsOnPartnerWithLastUpdated",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "partnerId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "startDate",
            "type": "string",
            "format": "date-time"
          },
          {
            "in": "query",
            "name": "endDate",
            "type": "string",
            "format": "date-time"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Application"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Partner/get-agents-on-partner/{partnerId}": {
      "get": {
        "tags": [
          "Partner"
        ],
        "operationId": "GetAgentsOnPartner",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "partnerId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "deleted",
            "type": "boolean",
            "default": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Agent"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Partner/get-loans-on-partner/{partnerId}": {
      "get": {
        "tags": [
          "Partner"
        ],
        "summary": "Get Loans On Partner Id.",
        "operationId": "GetLoansOnPartner",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "partnerId",
            "description": "partnerId",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Loan"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Partner/get-loans-advances-on-partner/{partnerId}": {
      "get": {
        "tags": [
          "Partner"
        ],
        "operationId": "GetLoansAdvancesOnPartner",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "partnerId",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "startDate",
            "type": "string",
            "format": "date-time"
          },
          {
            "in": "query",
            "name": "endDate",
            "type": "string",
            "format": "date-time"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Advance"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/TestWebhook/receive": {
      "post": {
        "tags": [
          "TestWebhook"
        ],
        "operationId": "Receive",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/WebhookPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Webhook/register": {
      "post": {
        "tags": [
          "Webhook"
        ],
        "summary": "Register partner or customer subscription.",
        "description": "No frontend yet to call this endpoint.\r\nSubscription might have some details to add.",
        "operationId": "Register",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "partnerId",
            "description": "",
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "customerId",
            "description": "",
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/WebhookSubscription"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Webhook/unregister": {
      "post": {
        "tags": [
          "Webhook"
        ],
        "operationId": "Unregister",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "partnerId",
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "customerId",
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/WebhookSubscription"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Webhook/update-all": {
      "post": {
        "tags": [
          "Webhook"
        ],
        "operationId": "UpdateAll",
        "parameters": [
          {
            "in": "query",
            "name": "partnerId",
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "customerId",
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Webhook/handler": {
      "post": {
        "tags": [
          "Webhook"
        ],
        "operationId": "Handler",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/WebhookPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Webhook/generate-simulated-webhook": {
      "post": {
        "tags": [
          "Webhook"
        ],
        "operationId": "GenerateSimulatedWebHook",
        "parameters": [
          {
            "in": "query",
            "name": "eventName",
            "type": "string"
          },
          {
            "in": "query",
            "name": "partnerId",
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "customerId",
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Webhook/get-registered-webhooks": {
      "get": {
        "tags": [
          "Webhook"
        ],
        "operationId": "RegisteredWebHooks",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "partnerId",
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "customerId",
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Webhook/get-subscription": {
      "get": {
        "tags": [
          "Webhook"
        ],
        "operationId": "GetSubscription",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "partnerId",
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "customerId",
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/WebhookSubscription"
            }
          }
        }
      }
    },
    "/api/Webhook/get-all-subscriptions": {
      "get": {
        "tags": [
          "Webhook"
        ],
        "operationId": "GetAllSubscriptions",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/WebhookSubscriptionSummary"
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          }
        }
      }
    },
    "/api/Webhook/update-webhook-uri": {
      "post": {
        "tags": [
          "Webhook"
        ],
        "summary": "Update partner or customer webhook uri.",
        "operationId": "UpdateWebhookUri",
        "parameters": [
          {
            "in": "query",
            "name": "webhookUri",
            "description": "",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "partnerId",
            "description": "",
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "query",
            "name": "customerId",
            "description": "",
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "definitions": {
    "Advance": {
      "type": "object",
      "properties": {
        "loanId": {
          "type": "string",
          "format": "uuid"
        },
        "customerEmail": {
          "type": "string",
          "x-nullable": true
        },
        "businessName": {
          "type": "string",
          "x-nullable": true
        },
        "fullBusinessName": {
          "type": "string",
          "x-nullable": true
        },
        "partnerId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "amount": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "date": {
          "type": "string",
          "format": "date-time"
        },
        "advanceRate": {
          "type": "number",
          "format": "double"
        },
        "term": {
          "type": "integer",
          "format": "int32"
        },
        "isFixedRepayment": {
          "type": "boolean",
          "x-nullable": true
        },
        "isPercentageofIncome": {
          "type": "boolean",
          "x-nullable": true
        },
        "percentOfIncome": {
          "type": "number",
          "format": "double"
        },
        "advanceId": {
          "type": "string",
          "format": "uuid"
        },
        "customerName": {
          "type": "string",
          "x-nullable": true
        },
        "customerId": {
          "type": "string",
          "format": "uuid"
        }
      },
      "additionalProperties": false
    },
    "AdvanceProjectionResponse": {
      "type": "object",
      "properties": {
        "terms": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true
        },
        "priority": {
          "type": "boolean",
          "x-nullable": true
        },
        "percentage": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "weeks": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true
        },
        "name": {
          "type": "string",
          "x-nullable": true
        },
        "earlyRepaid": {
          "type": "boolean",
          "x-nullable": true
        },
        "earlyRepaidDate": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "overrideLastRepaymentDateUTC": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "overrideLastRepayment": {
          "type": "boolean",
          "x-nullable": true
        },
        "legacy": {
          "type": "boolean",
          "x-nullable": true
        },
        "monthlyFee": {
          "type": "boolean",
          "x-nullable": true
        },
        "commission": {
          "$ref": "#/definitions/ApplicationCommission"
        },
        "fixedProperty": {
          "type": "boolean",
          "x-nullable": true
        },
        "advanceRate": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "weeklyPayment": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "totalRepaymentAmount": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "lastRepaymentDateUTC": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "lastRepaymentDay": {
          "type": "string",
          "x-nullable": true
        },
        "nextRepaymentDay": {
          "type": "string",
          "x-nullable": true
        },
        "actualNextRepaymentDay": {
          "type": "string",
          "x-nullable": true
        },
        "actualNextRepaymentDateUTC": {
          "type": "string",
          "format": "date-time",
          "readOnly": true,
          "x-nullable": true
        },
        "nextRepaymentDateUTC": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "nextRepaymentValue": {
          "$ref": "#/definitions/AmountResponse"
        },
        "remaining": {
          "$ref": "#/definitions/AmountResponse"
        },
        "amount": {
          "$ref": "#/definitions/AmountResponse"
        },
        "details": {
          "type": "string",
          "x-nullable": true
        },
        "type": {
          "type": "string",
          "x-nullable": true
        },
        "dateUTC": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "loanId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "id": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "fixedRepayment": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "fixedRepaymentFee": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "Agent": {
      "type": "object",
      "properties": {
        "agentId": {
          "type": "string",
          "format": "uuid"
        },
        "businessName": {
          "type": "string",
          "x-nullable": true
        },
        "ccEmail": {
          "type": "string",
          "x-nullable": true
        },
        "city": {
          "type": "string",
          "x-nullable": true
        },
        "compliance": {
          "type": "boolean"
        },
        "countryCode": {
          "type": "string",
          "x-nullable": true
        },
        "createdDate": {
          "type": "string",
          "format": "date-time"
        },
        "deleted": {
          "type": "boolean"
        },
        "deletedDate": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "email": {
          "type": "string",
          "x-nullable": true
        },
        "enabled": {
          "type": "boolean"
        },
        "firstName": {
          "type": "string",
          "x-nullable": true
        },
        "formattedAddress": {
          "type": "string",
          "x-nullable": true
        },
        "isMaster": {
          "type": "boolean",
          "x-nullable": true
        },
        "lastName": {
          "type": "string",
          "x-nullable": true
        },
        "latitude": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "lockoutEnabled": {
          "type": "boolean"
        },
        "longitude": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "mobile": {
          "type": "string",
          "x-nullable": true
        },
        "name": {
          "type": "string",
          "x-nullable": true
        },
        "notes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AgentNotes"
          },
          "x-nullable": true
        },
        "partnerBusinessName": {
          "type": "string",
          "x-nullable": true
        },
        "partnerId": {
          "type": "string",
          "format": "uuid"
        },
        "partnerName": {
          "type": "string",
          "x-nullable": true
        },
        "postalCode": {
          "type": "string",
          "x-nullable": true
        },
        "showTodo": {
          "type": "boolean",
          "x-nullable": true
        },
        "state": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "AgentNotes": {
      "type": "object",
      "properties": {
        "agentId": {
          "type": "string",
          "format": "uuid"
        },
        "author": {
          "type": "string",
          "x-nullable": true
        },
        "note": {
          "type": "string",
          "x-nullable": true
        },
        "noteCreated": {
          "type": "string",
          "format": "date-time"
        },
        "noteId": {
          "type": "string",
          "format": "uuid"
        }
      },
      "additionalProperties": false
    },
    "AmountResponse": {
      "type": "object",
      "properties": {
        "value": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "currencyCode": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "Application": {
      "type": "object",
      "properties": {
        "secondaryApplicantRequested": {
          "type": "boolean",
          "x-nullable": true
        },
        "primaryApplicantAdded": {
          "type": "boolean",
          "x-nullable": true
        },
        "secondaryApplicantAdded": {
          "type": "boolean",
          "x-nullable": true
        },
        "loanType": {
          "type": "string",
          "x-nullable": true
        },
        "partnerId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "customerId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "businessName": {
          "type": "string",
          "x-nullable": true
        },
        "customerEmail": {
          "type": "string",
          "x-nullable": true
        },
        "shortCode": {
          "type": "string",
          "x-nullable": true
        },
        "statusName": {
          "type": "string",
          "x-nullable": true
        },
        "createdDate": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "lastUpdatedDate": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "organisationId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "offerId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "agentId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "secured": {
          "type": "boolean",
          "x-nullable": true
        },
        "tradingName": {
          "type": "string",
          "x-nullable": true
        },
        "fullBusinessName": {
          "type": "string",
          "x-nullable": true
        },
        "offerAccepted": {
          "type": "boolean",
          "x-nullable": true
        },
        "id": {
          "type": "string",
          "format": "uuid"
        }
      },
      "additionalProperties": false
    },
    "ApplicationAndApplicantRequest": {
      "type": "object",
      "properties": {
        "applicant": {
          "$ref": "#/definitions/ApplicationApplicant"
        },
        "customerId": {
          "type": "string",
          "format": "uuid"
        },
        "partnerId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "agentId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "businessZip": {
          "type": "string",
          "x-nullable": true
        },
        "businessName": {
          "type": "string",
          "x-nullable": true
        },
        "extraInformation": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "x-nullable": true
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "ApplicationAndCustomerAndApplicantRequest": {
      "type": "object",
      "properties": {
        "applicant": {
          "$ref": "#/definitions/ApplicationApplicant"
        },
        "secondaryApplicant": {
          "$ref": "#/definitions/ApplicationApplicant"
        },
        "application": {
          "$ref": "#/definitions/CustomerApplicationRequest"
        },
        "customer": {
          "$ref": "#/definitions/UserRequest"
        }
      },
      "additionalProperties": false
    },
    "ApplicationAndCustomerRequest": {
      "type": "object",
      "properties": {
        "application": {
          "$ref": "#/definitions/CustomerApplicationRequest"
        },
        "customer": {
          "$ref": "#/definitions/UserRequest"
        }
      },
      "additionalProperties": false
    },
    "ApplicationApplicant": {
      "type": "object",
      "properties": {
        "firstName": {
          "type": "string",
          "x-nullable": true
        },
        "lastName": {
          "type": "string",
          "x-nullable": true
        },
        "city": {
          "type": "string",
          "x-nullable": true
        },
        "state": {
          "type": "string",
          "x-nullable": true
        },
        "address": {
          "type": "string",
          "x-nullable": true
        },
        "dateOfBirth": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "ApplicationCommission": {
      "type": "object",
      "properties": {
        "upfrontFee": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "trailing": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "drawFee": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "ApplicationCustomerResponse": {
      "type": "object",
      "properties": {
        "customerId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "applicationId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "applicantId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "secondaryApplicantId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "organisationId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "ApplicationRequest": {
      "type": "object",
      "properties": {
        "customerId": {
          "type": "string",
          "format": "uuid"
        },
        "partnerId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "agentId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "businessZip": {
          "type": "string",
          "x-nullable": true
        },
        "businessName": {
          "type": "string",
          "x-nullable": true
        },
        "extraInformation": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "x-nullable": true
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "ApplicationResponse": {
      "type": "object",
      "properties": {
        "applicationId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "customerId": {
          "type": "string",
          "format": "uuid"
        },
        "partnerId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "agentId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "businessZip": {
          "type": "string",
          "x-nullable": true
        },
        "businessName": {
          "type": "string",
          "x-nullable": true
        },
        "extraInformation": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "x-nullable": true
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "BankAccount": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "x-nullable": true
        },
        "accountNumber": {
          "type": "string",
          "x-nullable": true
        },
        "routingNumber": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "BankAccountRequest": {
      "type": "object",
      "required": [
        "accountName",
        "accountNumber",
        "availableBalance",
        "bank",
        "routing"
      ],
      "properties": {
        "bank": {
          "type": "string",
          "minLength": 1
        },
        "availableBalance": {
          "type": "string",
          "minLength": 1
        },
        "currentBalance": {
          "type": "string",
          "x-nullable": true
        },
        "accountNumber": {
          "type": "string",
          "minLength": 1
        },
        "routing": {
          "type": "string",
          "minLength": 1
        },
        "accountType": {
          "type": "string",
          "x-nullable": true
        },
        "transactions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TransactionRequest"
          },
          "x-nullable": true
        },
        "accountName": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    },
    "BankDetails": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "x-nullable": true
        },
        "accountNumber": {
          "type": "string",
          "x-nullable": true
        },
        "routingNumber": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "BankingDataRequest": {
      "type": "object",
      "properties": {
        "bankAccounts": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/BankAccountRequest"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "CalculationRequest": {
      "type": "object",
      "required": [
        "amount",
        "percentOfIncome",
        "terms"
      ],
      "properties": {
        "amount": {
          "type": "number",
          "format": "double"
        },
        "percentOfIncome": {
          "type": "number",
          "format": "double"
        },
        "terms": {
          "type": "integer",
          "format": "int32"
        },
        "fixedRepaymentCalculation": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "CalculationResponse": {
      "type": "object",
      "required": [
        "amount",
        "percentOfIncome",
        "terms"
      ],
      "properties": {
        "advanceRate": {
          "type": "number",
          "format": "double"
        },
        "totalRepayment": {
          "type": "number",
          "format": "double"
        },
        "repayment": {
          "type": "number",
          "format": "double"
        },
        "advanceFee": {
          "type": "number",
          "format": "double"
        },
        "weeks": {
          "type": "integer",
          "format": "int32"
        },
        "amount": {
          "type": "number",
          "format": "double"
        },
        "percentOfIncome": {
          "type": "number",
          "format": "double"
        },
        "terms": {
          "type": "integer",
          "format": "int32"
        },
        "fixedRepaymentCalculation": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "CommunicationRequest": {
      "type": "object",
      "properties": {
        "contents": {
          "type": "string",
          "x-nullable": true
        },
        "user": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "CompanyDataRequest": {
      "type": "object",
      "properties": {
        "businessName": {
          "type": "string",
          "x-nullable": true
        },
        "entityType": {
          "type": "string",
          "x-nullable": true
        },
        "zipCode": {
          "type": "string",
          "x-nullable": true
        },
        "businessTaxId": {
          "type": "string",
          "x-nullable": true
        },
        "city": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "ContractDetails": {
      "type": "object",
      "properties": {
        "companyName": {
          "type": "string",
          "x-nullable": true
        },
        "guarantors": {
          "type": "string",
          "x-nullable": true
        },
        "facilityLimit": {
          "type": "number",
          "format": "double"
        },
        "establishmentFee": {
          "type": "string",
          "x-nullable": true
        },
        "drawFee": {
          "type": "string",
          "x-nullable": true
        },
        "bankAccounts": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/BankAccount"
          },
          "x-nullable": true
        },
        "platformAgreementHTML": {
          "type": "string",
          "x-nullable": true
        },
        "platformAgreementSignCondition1": {
          "type": "string",
          "x-nullable": true
        },
        "platformAgreementSignCondition2": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "ContractDocumentResponse": {
      "type": "object",
      "properties": {
        "displayName": {
          "type": "string",
          "x-nullable": true
        },
        "createdDate": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "documentId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "data": {
          "type": "string",
          "format": "byte",
          "x-nullable": true
        },
        "status": {
          "$ref": "#/definitions/ContractDocumentStatusTypeResponse"
        }
      },
      "additionalProperties": false
    },
    "ContractDocumentStatusTypeResponse": {
      "type": "integer",
      "format": "int32",
      "enum": [
        0,
        1,
        2,
        3
      ]
    },
    "CustomerApplicationRequest": {
      "type": "object",
      "properties": {
        "businessName": {
          "type": "string",
          "x-nullable": true
        },
        "businessZip": {
          "type": "string",
          "x-nullable": true
        },
        "partnerId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "agentId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "extraInformation": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "x-nullable": true
          },
          "x-nullable": true
        },
        "notes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "DashboardLoanRepaymentResponse": {
      "type": "object",
      "properties": {
        "loanRepayments": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/LoanRepaymentResponse"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "DebtorDetailsResponse": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "x-nullable": true
        },
        "invoiceTypes": {
          "type": "object",
          "additionalProperties": {
            "type": "number",
            "format": "double",
            "x-nullable": true
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "DrivingLicenseRequest": {
      "type": "object",
      "properties": {
        "issuingState": {
          "type": "string",
          "x-nullable": true
        },
        "cardNumber": {
          "type": "string",
          "x-nullable": true
        },
        "expiryDate": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "name": {
          "type": "string",
          "x-nullable": true
        },
        "address": {
          "type": "string",
          "x-nullable": true
        },
        "dateOfBirth": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "city": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "EarlyRepaymentResponse": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "principal": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "fee": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "notes": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "FileDetails": {
      "type": "object",
      "properties": {
        "date": {
          "type": "string",
          "format": "date-time"
        },
        "fileDateStr": {
          "type": "string",
          "x-nullable": true
        },
        "fileName": {
          "type": "string",
          "x-nullable": true
        },
        "fileType": {
          "type": "string",
          "x-nullable": true
        },
        "internalLocation": {
          "type": "string",
          "x-nullable": true
        },
        "isSecondary": {
          "type": "boolean"
        },
        "location": {
          "type": "string",
          "x-nullable": true
        },
        "missingTransaction": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "FullApplicationUser": {
      "type": "object",
      "properties": {
        "avatarVersion": {
          "type": "string",
          "x-nullable": true
        },
        "departments": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/UserDepartment"
          },
          "x-nullable": true
        },
        "email": {
          "type": "string",
          "x-nullable": true
        },
        "expiresUTC": {
          "type": "string",
          "format": "date-time"
        },
        "firstName": {
          "type": "string",
          "x-nullable": true
        },
        "firstTime": {
          "type": "boolean"
        },
        "hasAvatar": {
          "type": "boolean"
        },
        "id": {
          "type": "string",
          "x-nullable": true
        },
        "impersonationSessionId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "impersonatorEmail": {
          "type": "string",
          "x-nullable": true
        },
        "impersonatorId": {
          "type": "string",
          "x-nullable": true
        },
        "impersonatorName": {
          "type": "string",
          "x-nullable": true
        },
        "isImpersonating": {
          "type": "boolean"
        },
        "lastName": {
          "type": "string",
          "x-nullable": true
        },
        "phoneRegion": {
          "type": "string",
          "x-nullable": true
        },
        "requiresTwoFactor": {
          "type": "boolean"
        },
        "timeZoneId": {
          "type": "string",
          "x-nullable": true
        },
        "token": {
          "type": "string",
          "x-nullable": true
        },
        "trustedDeviceToken": {
          "type": "string",
          "x-nullable": true
        },
        "userType": {
          "type": "string",
          "x-nullable": true
        },
        "username": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "GuidApiResponse": {
      "type": "object",
      "properties": {
        "errors": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ValidationError"
          },
          "x-nullable": true
        },
        "data": {
          "type": "string",
          "format": "uuid"
        },
        "success": {
          "type": "boolean"
        },
        "message": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "Industry": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "InvoiceCustomer": {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/LoanDebtorProjectionResponse"
          },
          "x-nullable": true
        },
        "totalCount": {
          "type": "integer",
          "format": "int64",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "InvoiceWithdrawalRequest": {
      "type": "object",
      "properties": {
        "calculation": {
          "$ref": "#/definitions/CalculationRequest"
        }
      },
      "additionalProperties": false
    },
    "InvoiceWithdrawalResponse": {
      "type": "object",
      "properties": {
        "primaryBank": {
          "$ref": "#/definitions/BankDetails"
        },
        "contactNumber": {
          "type": "string",
          "x-nullable": true
        },
        "advanceRate": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "applicationId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "firstRepayment": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "isfixed": {
          "type": "boolean",
          "x-nullable": true
        },
        "id": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "isFirstAdavnce": {
          "type": "boolean",
          "x-nullable": true
        },
        "loanId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "percentageOfIncome": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "totalRepayment": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "weeklyForecastIncome": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "weeklyRepayment": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "weeks": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true
        },
        "withdrawAmount": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "otp": {
          "type": "string",
          "x-nullable": true
        },
        "calculation": {
          "$ref": "#/definitions/CalculationRequest"
        }
      },
      "additionalProperties": false
    },
    "LineOfCreditWithdrawalRequest": {
      "type": "object",
      "properties": {
        "calculation": {
          "$ref": "#/definitions/CalculationRequest"
        }
      },
      "additionalProperties": false
    },
    "LineOfCreditWithdrawalResponse": {
      "type": "object",
      "properties": {
        "primaryBank": {
          "$ref": "#/definitions/BankDetails"
        },
        "contactNumber": {
          "type": "string",
          "x-nullable": true
        },
        "advanceRate": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "applicationId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "firstRepayment": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "isfixed": {
          "type": "boolean",
          "x-nullable": true
        },
        "id": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "isFirstAdavnce": {
          "type": "boolean",
          "x-nullable": true
        },
        "loanId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "percentageOfIncome": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "totalRepayment": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "weeklyForecastIncome": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "weeklyRepayment": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "weeks": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true
        },
        "withdrawAmount": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "otp": {
          "type": "string",
          "x-nullable": true
        },
        "calculation": {
          "$ref": "#/definitions/CalculationRequest"
        }
      },
      "additionalProperties": false
    },
    "Loan": {
      "type": "object",
      "properties": {
        "loanId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "secondaryApplicantRequested": {
          "type": "boolean",
          "x-nullable": true
        },
        "primaryApplicantAdded": {
          "type": "boolean",
          "x-nullable": true
        },
        "secondaryApplicantAdded": {
          "type": "boolean",
          "x-nullable": true
        },
        "loanType": {
          "type": "string",
          "x-nullable": true
        },
        "partnerId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "customerId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "businessName": {
          "type": "string",
          "x-nullable": true
        },
        "customerEmail": {
          "type": "string",
          "x-nullable": true
        },
        "shortCode": {
          "type": "string",
          "x-nullable": true
        },
        "statusName": {
          "type": "string",
          "x-nullable": true
        },
        "createdDate": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "lastUpdatedDate": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "organisationId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "offerId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "agentId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "secured": {
          "type": "boolean",
          "x-nullable": true
        },
        "tradingName": {
          "type": "string",
          "x-nullable": true
        },
        "fullBusinessName": {
          "type": "string",
          "x-nullable": true
        },
        "offerAccepted": {
          "type": "boolean",
          "x-nullable": true
        },
        "id": {
          "type": "string",
          "format": "uuid"
        }
      },
      "additionalProperties": false
    },
    "LoanBalanceResponse": {
      "type": "object",
      "properties": {
        "availableFunds": {
          "type": "number",
          "format": "double",
          "readOnly": true,
          "x-nullable": true
        },
        "systemPricing": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "balance": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "totalLimit": {
          "type": "number",
          "format": "double",
          "readOnly": true,
          "x-nullable": true
        },
        "limits": {
          "type": "object",
          "additionalProperties": {
            "type": "number",
            "format": "double",
            "x-nullable": true
          },
          "x-nullable": true
        },
        "rawTotal": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "adjustment": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "totalDebtors": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "totalFundingRate": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "LoanDebtorProjectionResponse": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "x-nullable": true
        },
        "id": {
          "type": "string",
          "x-nullable": true
        },
        "details": {
          "$ref": "#/definitions/DebtorDetailsResponse"
        },
        "approved": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "fundingRate": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "available": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "selected": {
          "type": "boolean",
          "x-nullable": true
        },
        "requested": {
          "type": "boolean",
          "x-nullable": true
        },
        "total": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "adminSelected": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "LoanRepaymentResponse": {
      "type": "object",
      "properties": {
        "month": {
          "type": "string",
          "x-nullable": true
        },
        "expectedinvoices": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "overdue": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "totalAmount": {
          "type": "number",
          "format": "double",
          "readOnly": true,
          "x-nullable": true
        },
        "monthlyLoanRepayments": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/MonthlyLoanRepaymentResponse"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "LoanResponse": {
      "type": "object",
      "properties": {
        "closedDate": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "businessName": {
          "type": "string",
          "x-nullable": true
        },
        "customerFullName": {
          "type": "string",
          "x-nullable": true
        },
        "applicationId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "offerId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "closed": {
          "type": "boolean",
          "x-nullable": true
        },
        "createdDate": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "customerId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "partnerId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "organisationId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "id": {
          "type": "string",
          "format": "uuid"
        }
      },
      "additionalProperties": false
    },
    "LoginRequest": {
      "type": "object",
      "required": [
        "password",
        "username"
      ],
      "properties": {
        "username": {
          "type": "string",
          "minLength": 1
        },
        "password": {
          "type": "string",
          "minLength": 1
        },
        "trustedDeviceToken": {
          "type": "string",
          "x-nullable": true
        },
        "ipAddress": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "Message": {
      "type": "object",
      "properties": {
        "from": {
          "type": "string",
          "x-nullable": true
        },
        "contents": {
          "type": "string",
          "x-nullable": true
        },
        "date": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "MonthlyLoanRepaymentResponse": {
      "type": "object",
      "properties": {
        "date": {
          "type": "string",
          "x-nullable": true
        },
        "amount": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "OfferResponse": {
      "type": "object",
      "properties": {
        "offerId": {
          "type": "string",
          "format": "uuid",
          "x-nullable": true
        },
        "facilityLimit": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "creditLimit": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "cashFlowLimit": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "receivableLimit": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "balance": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "availableBalance": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "weeklyRepayment": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "PagedListAdvanceProjectionResponse": {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AdvanceProjectionResponse"
          },
          "x-nullable": true
        },
        "totalCount": {
          "type": "integer",
          "format": "int64",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "PagedListTransactionResponse": {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Transaction"
          },
          "x-nullable": true
        },
        "totalCount": {
          "type": "integer",
          "format": "int64",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "PrimaryApplicantRequest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "x-nullable": true
        },
        "driversLicense": {
          "$ref": "#/definitions/DrivingLicenseRequest"
        },
        "email": {
          "type": "string",
          "x-nullable": true
        },
        "mobile": {
          "type": "string",
          "x-nullable": true
        },
        "miscellaneousData": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "x-nullable": true
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "ProblemDetails": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "x-nullable": true
        },
        "title": {
          "type": "string",
          "x-nullable": true
        },
        "status": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true
        },
        "detail": {
          "type": "string",
          "x-nullable": true
        },
        "instance": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": { }
    },
    "PublicApiApplicantResponse": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "x-nullable": true
        },
        "isPrimary": {
          "type": "boolean",
          "x-nullable": true
        },
        "email": {
          "type": "string",
          "x-nullable": true
        },
        "mobile": {
          "type": "string",
          "x-nullable": true
        },
        "applicationId": {
          "type": "string",
          "x-nullable": true
        },
        "applicantId": {
          "type": "string",
          "format": "uuid"
        }
      },
      "additionalProperties": false
    },
    "PublicApiBankFeedAccountResponse": {
      "type": "object",
      "properties": {
        "isConnected": {
          "type": "boolean",
          "x-nullable": true
        },
        "archived": {
          "type": "boolean",
          "x-nullable": true
        },
        "enabled": {
          "type": "boolean",
          "x-nullable": true
        },
        "slug": {
          "type": "string",
          "x-nullable": true
        },
        "accountType": {
          "type": "string",
          "x-nullable": true
        },
        "accountHolder": {
          "type": "string",
          "x-nullable": true
        },
        "available": {
          "type": "string",
          "x-nullable": true
        },
        "balance": {
          "type": "string",
          "x-nullable": true
        },
        "bsb": {
          "type": "string",
          "x-nullable": true
        },
        "id": {
          "type": "string",
          "x-nullable": true
        },
        "accountNumber": {
          "type": "string",
          "x-nullable": true
        },
        "name": {
          "type": "string",
          "x-nullable": true
        },
        "institutionName": {
          "type": "string",
          "x-nullable": true
        },
        "institutionId": {
          "type": "string",
          "x-nullable": true
        },
        "selected": {
          "type": "boolean",
          "x-nullable": true
        },
        "requestId": {
          "type": "string",
          "x-nullable": true
        },
        "accountId": {
          "type": "string",
          "x-nullable": true
        },
        "routingNumber": {
          "type": "string",
          "x-nullable": true
        },
        "isPrimary": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "SecondaryApplicantRequest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "x-nullable": true
        },
        "driversLicense": {
          "$ref": "#/definitions/DrivingLicenseRequest"
        },
        "email": {
          "type": "string",
          "x-nullable": true
        },
        "mobile": {
          "type": "string",
          "x-nullable": true
        },
        "miscellaneousData": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "x-nullable": true
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "SignaturesRequest": {
      "type": "object",
      "properties": {
        "ipAddress": {
          "type": "string",
          "x-nullable": true
        },
        "signature": {
          "type": "string",
          "format": "byte",
          "x-nullable": true
        },
        "signature2": {
          "type": "string",
          "format": "byte",
          "x-nullable": true
        },
        "mimeType": {
          "type": "string",
          "x-nullable": true
        },
        "secondaryApplicant": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "SliderRequest": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "number",
          "format": "double"
        }
      },
      "additionalProperties": false
    },
    "SliderResult": {
      "type": "object",
      "properties": {
        "percentageOfIncome": {
          "type": "number",
          "format": "double"
        },
        "position": {
          "type": "integer",
          "format": "int32"
        },
        "term": {
          "type": "integer",
          "format": "int32"
        }
      },
      "additionalProperties": false
    },
    "SupportDocumentDetails": {
      "type": "object",
      "properties": {
        "details": {
          "type": "string",
          "x-nullable": true
        },
        "forSecondaryAlso": {
          "type": "boolean"
        },
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "label": {
          "type": "string",
          "x-nullable": true
        },
        "locations": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/FileDetails"
          },
          "x-nullable": true
        },
        "submitted": {
          "type": "boolean"
        },
        "submittedDate": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "Transaction": {
      "type": "object",
      "properties": {
        "date": {
          "type": "string",
          "format": "date-time"
        },
        "description": {
          "type": "string",
          "x-nullable": true
        },
        "type": {
          "type": "string",
          "x-nullable": true
        },
        "amount": {
          "$ref": "#/definitions/AmountResponse"
        },
        "isCredit": {
          "type": "boolean"
        },
        "balance": {
          "$ref": "#/definitions/AmountResponse"
        }
      },
      "additionalProperties": false
    },
    "TransactionRequest": {
      "type": "object",
      "required": [
        "amount",
        "date",
        "isCredit"
      ],
      "properties": {
        "amount": {
          "type": "number",
          "format": "double"
        },
        "balance": {
          "type": "number",
          "format": "double",
          "x-nullable": true
        },
        "date": {
          "type": "string",
          "format": "date-time"
        },
        "text": {
          "type": "string",
          "x-nullable": true
        },
        "isCredit": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "TwoFactorLoginRequest": {
      "type": "object",
      "required": [
        "code",
        "username"
      ],
      "properties": {
        "username": {
          "type": "string",
          "minLength": 1
        },
        "code": {
          "type": "string",
          "minLength": 1
        },
        "ipAddress": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "UserDepartment": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "isEnabled": {
          "type": "boolean"
        },
        "name": {
          "type": "string",
          "x-nullable": true
        },
        "normalizedName": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "UserRequest": {
      "type": "object",
      "required": [
        "email",
        "firstName",
        "lastName",
        "mobileNumber"
      ],
      "properties": {
        "firstName": {
          "type": "string",
          "minLength": 1
        },
        "lastName": {
          "type": "string",
          "minLength": 1
        },
        "email": {
          "type": "string",
          "minLength": 1
        },
        "password": {
          "type": "string",
          "x-nullable": true
        },
        "mobileNumber": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    },
    "UserResponse": {
      "type": "object",
      "required": [
        "email",
        "firstName",
        "lastName",
        "mobileNumber"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "firstName": {
          "type": "string",
          "minLength": 1
        },
        "lastName": {
          "type": "string",
          "minLength": 1
        },
        "email": {
          "type": "string",
          "minLength": 1
        },
        "password": {
          "type": "string",
          "x-nullable": true
        },
        "mobileNumber": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    },
    "ValidationError": {
      "type": "object",
      "properties": {
        "errorCode": {
          "type": "string",
          "x-nullable": true
        },
        "errorMessage": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "ValidationProblemDetails": {
      "type": "object",
      "properties": {
        "errors": {
          "type": "object",
          "additionalProperties": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "x-nullable": true
        },
        "type": {
          "type": "string",
          "x-nullable": true
        },
        "title": {
          "type": "string",
          "x-nullable": true
        },
        "status": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true
        },
        "detail": {
          "type": "string",
          "x-nullable": true
        },
        "instance": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": { }
    },
    "WebhookPayload": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "x-nullable": true
        },
        "webhookEvent": {
          "type": "string",
          "x-nullable": true
        },
        "data": {
          "x-nullable": true
        },
        "creationTimeUtc": {
          "type": "string",
          "format": "date-time"
        }
      },
      "additionalProperties": false
    },
    "WebhookSubscription": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "webhookUri": {
          "type": "string",
          "x-nullable": true
        },
        "secret": {
          "type": "string",
          "x-nullable": true
        },
        "isActive": {
          "type": "boolean"
        },
        "webhooks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "WebhookSubscriptionSummary": {
      "type": "object",
      "properties": {
        "ownerId": {
          "type": "string",
          "format": "uuid"
        },
        "ownerType": {
          "type": "string",
          "x-nullable": true
        },
        "ownerName": {
          "type": "string",
          "x-nullable": true
        },
        "ownerEmail": {
          "type": "string",
          "x-nullable": true
        },
        "subscriptionId": {
          "type": "string",
          "format": "uuid"
        },
        "webhookUri": {
          "type": "string",
          "x-nullable": true
        },
        "secret": {
          "type": "string",
          "x-nullable": true
        },
        "isActive": {
          "type": "boolean"
        },
        "webhooks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "WithdrawInvoiceRequestData": {
      "type": "object",
      "properties": {
        "dateUTC": {
          "type": "string",
          "format": "date-time"
        },
        "amount": {
          "type": "number",
          "format": "double"
        },
        "advanceRate": {
          "type": "number",
          "format": "double"
        },
        "otp": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    }
  },
  "securityDefinitions": {
    "Bearer": {
      "type": "apiKey",
      "name": "Authorization",
      "in": "header",
      "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\""
    }
  },
  "security": [
    {
      "Bearer": [ ]
    }
  ],
  "tags": [
    {
      "name": "Application"
    },
    {
      "name": "ApplicationApproval"
    },
    {
      "name": "ApplicationBulk"
    },
    {
      "name": "Authenication"
    },
    {
      "name": "Calculation"
    },
    {
      "name": "Communication"
    },
    {
      "name": "Customer"
    },
    {
      "name": "InvoiceCustomer"
    },
    {
      "name": "Loan"
    },
    {
      "name": "Lookup"
    },
    {
      "name": "Partner"
    },
    {
      "name": "TestWebhook"
    },
    {
      "name": "Webhook"
    }
  ]
}