{
  "openapi": "3.0.1",
  "info": {
    "title": "loans",
    "version": "v2"
  },
  "servers": [
    {
      "url": "http://localhost:8889/api"
    },
    {
      "url": "https://localhost:8889/api"
    }
  ],
  "security": [
    {
      "basic": []
    }
  ],
  "tags": [
    {
      "name": "Collateral Assets",
      "description": "Allows you to start a background process to update loan accounts with the latest accounting rates."
    },
    {
      "name": "Loan Account Balances",
      "description": "Get balances for the loan account"
    },
    {
      "name": "Loan Accounts",
      "description": "Allows you to get a loan account document (populated template) by providing a loan account ID and a template ID."
    },
    {
      "name": "Loan Account Funding",
      "description": "Allows you to operate with the loan account funding sources."
    },
    {
      "name": "Loan Account Planned Fees",
      "description": "Allows you to get and update planned fees for the installments of the loan accounts."
    },
    {
      "name": "LoanAccountRepaymentScheduleVersioning",
      "description": "Allows you to retrieve a loan account repayment schedule versioning by provided loan account encodedKey."
    }
  ],
  "paths": {
    "/loans": {
      "get": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Get loan accounts",
        "operationId": "getAll",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "description": "Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Pagination, the number of elements to retrieve, used in combination with offset to paginate results",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "paginationDetails",
            "in": "query",
            "description": "Flag specifying whether the pagination  details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs",
            "schema": {
              "type": "string",
              "enum": [
                "ON",
                "OFF"
              ],
              "default": "OFF"
            }
          },
          {
            "name": "detailsLevel",
            "in": "query",
            "description": "The level of details to return: `FULL` means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and `BASIC` will return only the first level elements of the object.",
            "schema": {
              "type": "string",
              "description": "Containing allowed values for 'detailsLevel' query parameter. For instance, when fetching a branch from the system, one can specify whether he wants the result to include the full details of a branch, such as addresses, custom field values, branch holidays or not",
              "enum": [
                "BASIC",
                "FULL"
              ]
            }
          },
          {
            "name": "creditOfficerUsername",
            "in": "query",
            "description": "The username of the credit officer to whom the entities are assigned to",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "branchId",
            "in": "query",
            "description": "The id/encodedKey of the branch to which the entities are assigned to",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "centreId",
            "in": "query",
            "description": "The id/encodedKey of the centre to which the entities are assigned to",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountState",
            "in": "query",
            "description": "The state of the loan account to search for",
            "schema": {
              "type": "string",
              "description": "All the generic account states applicable to loans.",
              "enum": [
                "PARTIAL_APPLICATION",
                "PENDING_APPROVAL",
                "APPROVED",
                "ACTIVE",
                "ACTIVE_IN_ARREARS",
                "CLOSED",
                "CLOSED_WRITTEN_OFF",
                "CLOSED_REJECTED"
              ]
            }
          },
          {
            "name": "accountHolderType",
            "in": "query",
            "description": "The type of the account holder: CLIENT/GROUP",
            "schema": {
              "type": "string",
              "description": "Indicated the account holder type.",
              "enum": [
                "CLIENT",
                "GROUP"
              ]
            }
          },
          {
            "name": "accountHolderId",
            "in": "query",
            "description": "The id of the account holder",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "description": "The criteria based on which the records will be sorted. Expected format is <field:order>, for example, sortBy = field1:ASC,field2:DESC.<br/>Only the following fields can be used: id, loanName, creationDate, lastModifiedDate<br/>Default sorting is done by creationDate:ASC",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Loan accounts list returned.",
            "headers": {
              "Items-Limit": {
                "description": "Pagination details, the requested page size",
                "style": "simple",
                "schema": {
                  "type": "integer"
                }
              },
              "Items-Offset": {
                "description": "Pagination details, the index of the first returned item",
                "style": "simple",
                "schema": {
                  "type": "integer"
                }
              },
              "Items-Total": {
                "description": "Pagination details, the total available items",
                "style": "simple",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LoanAccount"
                  }
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "VIEW_LOAN_ACCOUNT_DETAILS"
          ]
        }
      },
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Create loan account",
        "operationId": "create",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Loan account to be created.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoanAccount"
              }
            }
          },
          "required": true
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "201": {
            "description": "Loan account created.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanAccount"
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "CREATE_LOAN_ACCOUNT"
          ]
        }
      }
    },
    "/loans/migrate": {
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Create loan account via external migration",
        "operationId": "migrateExternal",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Creates a loan account and schedules migration of external balances and state.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoanAccountExternalMigration"
              }
            }
          },
          "required": true
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "201": {
            "description": "Loan account created.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanAccount"
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "CREATE_LOAN_ACCOUNT"
          ]
        }
      }
    },
    "/loans/{loanAccountId}": {
      "get": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Get loan account",
        "operationId": "getById",
        "parameters": [
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "detailsLevel",
            "in": "query",
            "description": "The level of details to return: `FULL` means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and `BASIC` will return only the first level elements of the object.",
            "schema": {
              "type": "string",
              "description": "Containing allowed values for 'detailsLevel' query parameter. For instance, when fetching a branch from the system, one can specify whether he wants the result to include the full details of a branch, such as addresses, custom field values, branch holidays or not",
              "enum": [
                "BASIC",
                "FULL"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Loan account returned.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanAccount"
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "VIEW_LOAN_ACCOUNT_DETAILS"
          ]
        }
      },
      "put": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Update loan account",
        "operationId": "update",
        "parameters": [
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Loan account to be updated.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoanAccount"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Loan account updated.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanAccount"
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "EDIT_LOAN_ACCOUNT"
          ]
        }
      },
      "delete": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Delete loan account",
        "operationId": "delete",
        "parameters": [
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Loan account deleted."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "DELETE_LOAN_ACCOUNT"
          ]
        }
      },
      "patch": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Partially update loan account",
        "operationId": "patch",
        "parameters": [
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Patch operations to be applied to a resource.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PatchOperation"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Loan account updated."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "EDIT_LOAN_ACCOUNT"
          ]
        }
      }
    },
    "/loans/{loanAccountId}/authorizationholds": {
      "get": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Get authorization holds related to a loan account, ordered from newest to oldest by creation date",
        "operationId": "getAllAuthorizationHolds",
        "parameters": [
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Pagination, the number of elements to retrieve, used in combination with offset to paginate results",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "paginationDetails",
            "in": "query",
            "description": "Flag specifying whether the pagination  details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs",
            "schema": {
              "type": "string",
              "enum": [
                "ON",
                "OFF"
              ],
              "default": "OFF"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "The status of the authorization holds to filter on",
            "schema": {
              "type": "string",
              "description": "The enumeration containing the statuses of an authorization hold.",
              "enum": [
                "PENDING",
                "REVERSED",
                "SETTLED",
                "EXPIRED"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The list of authorization holds has been returned.",
            "headers": {
              "Items-Limit": {
                "description": "Pagination details, the requested page size",
                "style": "simple",
                "schema": {
                  "type": "integer"
                }
              },
              "Items-Offset": {
                "description": "Pagination details, the index of the first returned item",
                "style": "simple",
                "schema": {
                  "type": "integer"
                }
              },
              "Items-Total": {
                "description": "Pagination details, the total available items",
                "style": "simple",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GetAuthorizationHold"
                  }
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "VIEW_AUTHORIZATION_HOLD"
          ]
        }
      }
    },
    "/loans/{loanAccountId}/balances": {
      "get": {
        "tags": [
          "Loan Account Balances"
        ],
        "summary": "Get loan account balances",
        "operationId": "getBalancesByLoanAccountId",
        "parameters": [
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Loan account returned.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanAccountBalances"
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "VIEW_LOAN_ACCOUNT_DETAILS"
          ]
        }
      }
    },
    "/loans/{loanAccountId}/balances/{loanAccountBalance}:applyInterest": {
      "post": {
        "tags": [
          "Loan Account Balances"
        ],
        "summary": "Apply interest on a loan account balance",
        "operationId": "applyBalanceInterest",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountBalance",
            "in": "path",
            "description": "Loan account balance to apply interest on",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Represents a request for applying the accrued interest on a loan account balance",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplyBalanceInterestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Interest successfully applied, balance changes returned",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanAccountBalanceChanges"
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account or loan account balance not found",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "APPLY_ACCRUED_LOAN_INTEREST"
          ]
        }
      }
    },
    "/loans/{loanAccountId}/cards": {
      "get": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Get cards associated with an account",
        "operationId": "getAllCards",
        "parameters": [
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The list of cards attached to the account was returned.",
            "headers": {
              "Items-Limit": {
                "description": "Pagination details, the requested page size",
                "style": "simple",
                "schema": {
                  "type": "integer"
                }
              },
              "Items-Offset": {
                "description": "Pagination details, the index of the first returned item",
                "style": "simple",
                "schema": {
                  "type": "integer"
                }
              },
              "Items-Total": {
                "description": "Pagination details, the total available items",
                "style": "simple",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Card"
                  }
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "VIEW_CARDS"
          ]
        }
      },
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Represents the information needed to create and associate a new card to an account.",
        "operationId": "createCard",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The card to be created.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Card"
              }
            }
          },
          "required": true
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "201": {
            "description": "The card was created."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "CREATE_CARDS"
          ]
        }
      }
    },
    "/loans/{loanAccountId}/cards/{cardReferenceToken}": {
      "delete": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Represents the information needed to delete a card associated to an account using its reference token.",
        "operationId": "deleteCard",
        "parameters": [
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cardReferenceToken",
            "in": "path",
            "description": "The reference token of the card to be returned.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The card was deleted."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "DELETE_CARDS"
          ]
        }
      }
    },
    "/loans/{loanAccountId}/funding": {
      "put": {
        "tags": [
          "Loan Account Funding"
        ],
        "summary": "Update loan account funding sources",
        "operationId": "updateLoanAccountFundingSources",
        "parameters": [
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The funding sources to update the loan account with.",
          "content": {
            "application/json": {
              "schema": {
                "maxItems": 2147483647,
                "minItems": 1,
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/InvestorFund"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The updated list of the loan account funding sources.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InvestorFund"
                  }
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "EDIT_INVESTOR_FUNDS"
          ]
        }
      },
      "post": {
        "tags": [
          "Loan Account Funding"
        ],
        "summary": "Create funding sources for a loan account",
        "operationId": "createLoanAccountFundingSources",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The funding sources to create for loan account.",
          "content": {
            "application/json": {
              "schema": {
                "maxItems": 2147483647,
                "minItems": 1,
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/InvestorFund"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "201": {
            "description": "Created list of the loan account funding sources.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InvestorFund"
                  }
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "CREATE_INVESTOR_FUNDS"
          ]
        }
      },
      "delete": {
        "tags": [
          "Loan Account Funding"
        ],
        "summary": "Delete loan account funding sources",
        "operationId": "deleteFundingSources",
        "parameters": [
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted all loan account funding sources."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "DELETE_INVESTOR_FUNDS"
          ]
        }
      }
    },
    "/loans/{loanAccountId}/funding/{fundEncodedKey}": {
      "delete": {
        "tags": [
          "Loan Account Funding"
        ],
        "summary": "Delete loan account funding source",
        "operationId": "deleteSingleFundingSource",
        "parameters": [
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fundEncodedKey",
            "in": "path",
            "description": "The encoded key of the funding source.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted loan account funding source."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "DELETE_INVESTOR_FUNDS"
          ]
        }
      },
      "patch": {
        "tags": [
          "Loan Account Funding"
        ],
        "summary": "Update loan account funding source",
        "operationId": "patchFundingSource",
        "parameters": [
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fundEncodedKey",
            "in": "path",
            "description": "The encoded key of the funding source.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Patch operations to be applied to a resource.",
          "content": {
            "application/json": {
              "schema": {
                "maxItems": 2147483647,
                "minItems": 1,
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PatchOperation"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Funding source patched."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "EDIT_INVESTOR_FUNDS"
          ]
        }
      }
    },
    "/loans/{loanAccountId}/plannedfees": {
      "get": {
        "tags": [
          "Loan Account Planned Fees"
        ],
        "summary": "Get planned fees",
        "operationId": "getAllPlannedFees",
        "parameters": [
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Planned installment fees list was returned.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PlannedInstallmentFee"
                  }
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Loan Account Planned Fees"
        ],
        "summary": "Update planned fees",
        "operationId": "updatePlannedFees",
        "parameters": [
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "List of all loan account's planned installment fees to be updated. Installment key should be used for identification.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlannedInstallmentFee"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Loan account planned installment fees were updated.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PlannedInstallmentFee"
                  }
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "EDIT_PLANNED_FEES"
          ]
        }
      },
      "post": {
        "tags": [
          "Loan Account Planned Fees"
        ],
        "summary": "Create planned fees",
        "operationId": "createPlannedFees",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "List of all loan account's planned installment fees to be created.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlannedInstallmentFee"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "201": {
            "description": "Loan account planned installment fees were created.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PlannedInstallmentFee"
                  }
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "EDIT_PLANNED_FEES"
          ]
        }
      }
    },
    "/loans/{loanAccountId}/plannedfees/{plannedInstallmentFeeKey}": {
      "delete": {
        "tags": [
          "Loan Account Planned Fees"
        ],
        "summary": "Delete planned fee",
        "operationId": "deletePlannedFees",
        "parameters": [
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "plannedInstallmentFeeKey",
            "in": "path",
            "description": "The encoded key of the planned installment fee to be deleted.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Loan account planned installment fee was deleted."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "EDIT_PLANNED_FEES"
          ]
        }
      }
    },
    "/loans/{loanAccountId}/plannedfees:apply": {
      "post": {
        "tags": [
          "Loan Account Planned Fees"
        ],
        "summary": "ApplY planned fees from the past installments, as backdated or from future installments, on the first pending installment",
        "operationId": "applyPlannedFees",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "List of all loan account's planned installment fees to be applied.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlannedFeeKeys"
              }
            }
          },
          "required": true
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "201": {
            "description": "Planned installment fees were applied on the loan account.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LoanTransaction"
                  }
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "EDIT_PLANNED_FEES"
          ]
        }
      }
    },
    "/loans/{loanAccountId}/templates/{templateId}": {
      "get": {
        "tags": [
          "Loan Account Documents"
        ],
        "summary": "Get loan account document",
        "operationId": "getLoanAccountDocument",
        "parameters": [
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "templateId",
            "in": "path",
            "description": "The ID of the loan product template.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "The first date to consider when the document contains a list of transactions. Required when the document contains a transaction history.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "The last date to consider when the document contains a list of transactions. Required when the document contains a transaction history.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Loan account document returned.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account or template not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "VIEW_LOAN_ACCOUNT_DETAILS"
          ]
        }
      }
    },
    "/loans/{loanAccountId}/templates/{templateId}/pdf": {
      "get": {
        "tags": [
          "Loan Account Documents"
        ],
        "summary": "Download loan account document PDF",
        "operationId": "getPdfDocument",
        "parameters": [
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "templateId",
            "in": "path",
            "description": "The ID of the loan product template.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "The first date to consider when the document contains a list of transactions. Required when the document contains a transaction history.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "The last date to consider when the document contains a list of transactions. Required when the document contains a transaction history.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "PDF of the loan account document returned.",
            "headers": {
              "Content-Disposition": {
                "description": "\"The format is - attachment; filename=\\\"{fileName}.extension\\\"\";",
                "style": "simple",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/vnd.mambu.v2+file": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+file": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+file": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+file": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account or template not found.",
            "content": {
              "application/vnd.mambu.v2+file": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "VIEW_LOAN_ACCOUNT_DETAILS"
          ]
        }
      }
    },
    "/loans/{loanAccountId}:applyInterest": {
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Apply accrued interest",
        "operationId": "applyInterest",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Represents the information for apply accrued interest action.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplyInterestInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "204": {
            "description": "Interest applied."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "APPLY_ACCRUED_LOAN_INTEREST"
          ]
        }
      }
    },
    "/loans/{loanAccountId}:changeArrearsSettings": {
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Change arrears settings for loan account",
        "operationId": "changeArrearsSettings",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Represents information for an action to perform on a loan account.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeArrearsSettingsInput"
              }
            }
          }
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "204": {
            "description": "Change arrears settings action posted."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "EDIT_LOAN_ACCOUNT"
          ]
        }
      }
    },
    "/loans/{loanAccountId}:changeDueDatesSettings": {
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Change due dates settings for loan account",
        "operationId": "changeDueDatesSettings",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Represents information for an action to perform on a loan account.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeDueDatesSettingsInput"
              }
            }
          }
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "204": {
            "description": "Change due dates settings action posted."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "EDIT_LOAN_ACCOUNT"
          ]
        }
      }
    },
    "/loans/{loanAccountId}:changeFeeRate": {
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Change loan account fee rate",
        "operationId": "changeFeeRate",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Represents information for an action to perform on a loan account.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeFeeRateLoanAccountInput"
              }
            }
          }
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "204": {
            "description": "Change fee rate action posted."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "EDIT_FEE_RATE"
          ]
        }
      }
    },
    "/loans/{loanAccountId}:changeInterestRate": {
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Change loan account interest rate",
        "operationId": "changeInterestRate",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Represents information for an action to perform on a loan account.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeInterestRateLoanAccountInput"
              }
            }
          }
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "204": {
            "description": "Change interest rate action posted."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "EDIT_INTEREST_RATE"
          ]
        }
      }
    },
    "/loans/{loanAccountId}:changeLoanTerm": {
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Change loan account term",
        "operationId": "changeLoanTerm",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Represents information for an action to perform on a loan account.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeLoanTermLoanAccountInput"
              }
            }
          }
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "200": {
            "description": "Change loan account term action posted.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanAccountSchedule"
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "EDIT_REPAYMENT_SCHEDULE"
          ]
        }
      }
    },
    "/loans/{loanAccountId}:changePeriodicPayment": {
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Change the periodic payment amount for an active loan, so that it is still possible to have principal and interest installments, but with a smaller or greater total due amount than the initial one.",
        "operationId": "changePeriodicPayment",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Represents information for an action to perform on a loan account.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangePeriodicPaymentLoanAccountInput"
              }
            }
          }
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "204": {
            "description": "Change periodic payment action posted."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "EDIT_PERIODIC_PAYMENT_FOR_ACTIVE_ACCOUNT"
          ]
        }
      }
    },
    "/loans/{loanAccountId}:changeRepaymentValue": {
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Change repayment value for loan account",
        "operationId": "changeRepaymentValue",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Represents information for an action to perform on a loan account.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeRepaymentValueLoanAccountInput"
              }
            }
          }
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "204": {
            "description": "Change repayment value action posted."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "EDIT_PRINCIPAL_PAYMENT_ACTIVE_REVOLVING_CREDIT"
          ]
        }
      }
    },
    "/loans/{loanAccountId}:changeState": {
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Change loan account state",
        "operationId": "changeState",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Represents information for an action to perform on a loan account.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoanAccountAction"
              }
            }
          },
          "required": true
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "200": {
            "description": "Loan account action posted.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanAccount"
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/loans/{loanAccountId}:payOff": {
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Pay off loan account",
        "operationId": "payOff",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Represents the information for loan account pay off action.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoanAccountPayOffInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "204": {
            "description": "Pay off action posted."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "PAY_OFF_LOAN"
          ]
        }
      }
    },
    "/loans/{loanAccountId}:previewPayOffAmounts": {
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Preview pay off due amounts in a future date",
        "operationId": "previewPayOffAmounts",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Represents information for an action to perform on a loan account.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreviewPayOffDueAmountsInAFutureDateInput"
              }
            }
          }
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "200": {
            "description": "Preview pay off due amounts in a future date action posted.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/PreviewPayOffDueAmountsInAFutureDateWrapper"
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "PAY_OFF_LOAN"
          ]
        }
      }
    },
    "/loans/{loanAccountId}:refinance": {
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Refinance loan account",
        "operationId": "refinance",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Represents information for an action to perform on a loan account.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefinanceLoanAccountAction"
              }
            }
          }
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "200": {
            "description": "Refinance action posted.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanAccount"
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "REFINANCE_LOAN_ACCOUNT"
          ]
        }
      }
    },
    "/loans/{loanAccountId}:reschedule": {
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Reschedule loan account",
        "operationId": "reschedule",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Represents information for an action to perform on a loan account.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RescheduleLoanAccountAction"
              }
            }
          }
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "200": {
            "description": "Reschedule action posted.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanAccount"
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "RESCHEDULE_LOAN_ACCOUNT"
          ]
        }
      }
    },
    "/loans/{loanAccountId}:terminate": {
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Terminate loan account",
        "operationId": "terminateLoanAccount",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Represents information for an action to perform on a loan account.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TerminateLoanAccountInput"
              }
            }
          }
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "204": {
            "description": "Terminate loan account action posted."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "TERMINATE_LOAN_ACCOUNTS"
          ]
        }
      }
    },
    "/loans/{loanAccountId}:undoRefinance": {
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Undo loan account refinance action",
        "operationId": "undoRefinance",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Represents information for an action to perform on a loan account.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoanActionDetails"
              }
            }
          }
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "204": {
            "description": "Undo refinance action posted."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "UNDO_LOAN_ACCOUNT_CLOSURE"
          ]
        }
      }
    },
    "/loans/{loanAccountId}:undoReschedule": {
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Undo loan account reschedule action",
        "operationId": "undoReschedule",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Represents information for an action to perform on a loan account.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoanActionDetails"
              }
            }
          }
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "204": {
            "description": "Undo reschedule action posted."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "UNDO_LOAN_ACCOUNT_CLOSURE"
          ]
        }
      }
    },
    "/loans/{loanAccountId}:undoWriteOff": {
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Undo write off for loan account",
        "operationId": "undoWriteOff",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Represents input details for a loan account write off.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoanActionDetails"
              }
            }
          },
          "required": true
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "204": {
            "description": "Undo write off action applied."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "REVERSE_LOAN_ACCOUNT_WRITE_OFF"
          ]
        }
      }
    },
    "/loans/{loanAccountId}:versions": {
      "get": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Get all versions of loan account",
        "operationId": "getVersionsById",
        "parameters": [
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "detailsLevel",
            "in": "query",
            "description": "The level of details to return: `FULL` means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and `BASIC` will return only the first level elements of the object.",
            "schema": {
              "type": "string",
              "description": "Containing allowed values for 'detailsLevel' query parameter. For instance, when fetching a branch from the system, one can specify whether he wants the result to include the full details of a branch, such as addresses, custom field values, branch holidays or not",
              "enum": [
                "BASIC",
                "FULL"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Loan account with previous versions returned.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LoanAccount"
                  }
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "VIEW_LOAN_ACCOUNT_DETAILS"
          ]
        }
      }
    },
    "/loans/{loanAccountId}:writeOff": {
      "post": {
        "tags": [
          "Loan Accounts"
        ],
        "summary": "Write off loan account",
        "operationId": "writeOff",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loanAccountId",
            "in": "path",
            "description": "The ID or encoded key of the loan account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Represents information for an action to perform on a loan account.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoanActionDetails"
              }
            }
          }
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "204": {
            "description": "Write off action posted."
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Loan account not found.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "WRITE_OFF_LOAN_ACCOUNTS"
          ]
        }
      }
    },
    "/loans:previewSchedule": {
      "post": {
        "tags": [
          "Loan Account Schedule Preview"
        ],
        "summary": "Preview loan account schedule for non-existent loan account",
        "operationId": "getPreviewLoanAccountSchedule",
        "requestBody": {
          "description": "Loan account parameters for a schedule to be previewed.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreviewLoanAccountSchedule"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Loan account schedule preview is ready.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanAccountSchedule"
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "deprecated": true,
        "x-permissions-allowed": {
          "allowed": [
            "VIEW_LINE_OF_CREDIT_DETAILS",
            "VIEW_LOAN_ACCOUNT_DETAILS",
            "APPLY_LOAN_FEES",
            "VIEW_SAVINGS_ACCOUNT_DETAILS",
            "EDIT_REPAYMENT_SCHEDULE",
            "CREATE_LOAN_ACCOUNT",
            "EDIT_LOAN_ACCOUNT",
            "REFINANCE_LOAN_ACCOUNT",
            "RESCHEDULE_LOAN_ACCOUNT"
          ]
        }
      }
    },
    "/loans:reevaluateCollateral": {
      "post": {
        "tags": [
          "Collateral Assets"
        ],
        "summary": "Update collateral asset amounts",
        "operationId": "reevaluateCollateralAssets",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Key that can be used to support idempotency on this POST. Must be a valid UUID(version 4 is recommended) string and can only be used with the exact same request. Can be used in retry mechanisms to prevent double posting.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The request containing the fields to filter out which loan accounts to recalculate with the background process.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CollateralAssetFilter"
              }
            }
          },
          "required": true
        },
        "responses": {
          "102": {
            "description": "Your idempotent request was already submitted and is currently being processed, try again later."
          },
          "202": {
            "description": "Update collateral asset amounts",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/CollateralAssetsReevaluationResponse"
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "EDIT_LOAN_ACCOUNT"
          ]
        }
      }
    },
    "/loans:search": {
      "post": {
        "tags": [
          "LoanAccountsSearch"
        ],
        "summary": "Search loan accounts",
        "operationId": "search",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "description": "Pagination, index to start searching at when retrieving elements, used in combination with limit to paginate results",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Pagination, the number of elements to retrieve, used in combination with offset to paginate results",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "paginationDetails",
            "in": "query",
            "description": "Flag specifying whether the pagination  details should be provided in response headers. Please note that by default it is disabled (OFF), in order to improve the performance of the APIs",
            "schema": {
              "type": "string",
              "enum": [
                "ON",
                "OFF"
              ],
              "default": "OFF"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Pagination, cursor to start searching at when retrieving elements, used in combination with limit to paginate results",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "detailsLevel",
            "in": "query",
            "description": "The level of details to return: `FULL` means the full details of the object will be returned (custom field values, address, contact info, or any other related objects) and `BASIC` will return only the first level elements of the object.",
            "schema": {
              "type": "string",
              "description": "Containing allowed values for 'detailsLevel' query parameter. For instance, when fetching a branch from the system, one can specify whether he wants the result to include the full details of a branch, such as addresses, custom field values, branch holidays or not",
              "enum": [
                "BASIC",
                "FULL"
              ]
            }
          }
        ],
        "requestBody": {
          "description": "Criteria to be used to search the loan accounts.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoanAccountSearchCriteria"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Result of loan account search.",
            "headers": {
              "Items-Limit": {
                "description": "Pagination details, the requested page size",
                "style": "simple",
                "schema": {
                  "type": "integer"
                }
              },
              "Items-Next-Cursor": {
                "description": "The next cursor to be used by the subsequent calls",
                "style": "simple",
                "schema": {
                  "type": "string"
                }
              },
              "Items-Offset": {
                "description": "Pagination details, the index of the first returned item",
                "style": "simple",
                "schema": {
                  "type": "integer"
                }
              },
              "Items-Total": {
                "description": "Pagination details, the total available items",
                "style": "simple",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LoanAccount"
                  }
                }
              }
            }
          },
          "400": {
            "description": "A validation error occurred",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "No loan account could be found using the supplied criteria.",
            "content": {
              "application/vnd.mambu.v2+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "x-permissions-allowed": {
          "allowed": [
            "VIEW_LOAN_ACCOUNT_DETAILS"
          ]
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AccountArrearsSettings": {
        "type": "object",
        "properties": {
          "dateCalculationMethod": {
            "type": "string",
            "description": "The arrears date calculation method.",
            "enum": [
              "ACCOUNT_FIRST_WENT_TO_ARREARS",
              "LAST_LATE_REPAYMENT",
              "ACCOUNT_FIRST_BREACHED_MATERIALITY_THRESHOLD"
            ]
          },
          "encodedKey": {
            "type": "string",
            "description": "The encoded key of the arrears base settings, auto generated, unique.",
            "readOnly": true
          },
          "monthlyToleranceDay": {
            "type": "integer",
            "description": "Defines monthly arrears tolerance day value.",
            "format": "int32"
          },
          "nonWorkingDaysMethod": {
            "type": "string",
            "description": "Shows whether the non working days are taken in consideration or not when applying penaltees/late fees or when setting an account into arrears",
            "enum": [
              "INCLUDED",
              "EXCLUDED"
            ]
          },
          "toleranceCalculationMethod": {
            "type": "string",
            "description": "Defines the tolerance calculation method",
            "enum": [
              "ARREARS_TOLERANCE_PERIOD",
              "MONTHLY_ARREARS_TOLERANCE_DAY"
            ]
          },
          "toleranceFloorAmount": {
            "type": "number",
            "description": "The tolerance floor amount."
          },
          "tolerancePercentageOfOutstandingPrincipal": {
            "type": "number",
            "description": "Defines the arrears tolerance amount."
          },
          "tolerancePeriod": {
            "type": "integer",
            "description": "Defines the arrears tolerance period value.",
            "format": "int32"
          }
        },
        "description": "The account arrears settings, holds the required information for the arrears settings of an account."
      },
      "AccountBalances": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "description": "The unique account identifier"
          },
          "availableBalance": {
            "type": "number",
            "description": "The available balance of a deposit or credit account"
          },
          "cardType": {
            "type": "string",
            "description": "The card type either DEBIT or CREDIT",
            "enum": [
              "DEBIT",
              "CREDIT"
            ]
          },
          "creditLimit": {
            "type": "number",
            "description": "The overdraft limit of a deposit account or the loan amount in case of a credit account"
          },
          "currencyCode": {
            "type": "string",
            "description": "Currency code used for the account"
          },
          "totalBalance": {
            "type": "number",
            "description": "The current balance of a deposit account or principal balance of a revolving credit"
          }
        },
        "description": "Account balances presented to inquirer such as card processor"
      },
      "AccountInterestRateSettings": {
        "required": [
          "interestRateSource",
          "validFrom"
        ],
        "type": "object",
        "properties": {
          "encodedKey": {
            "type": "string",
            "description": "The encoded key of the interest rate settings, auto generated, unique",
            "readOnly": true
          },
          "indexSourceKey": {
            "type": "string",
            "description": "Index rate source key."
          },
          "interestRate": {
            "type": "number",
            "description": "Interest rate value."
          },
          "interestRateCeilingValue": {
            "type": "number",
            "description": "Maximum value allowed for index based interest rate. Valid only for index interest rate."
          },
          "interestRateFloorValue": {
            "type": "number",
            "description": "Minimum value allowed for index based interest rate. Valid only for index interest rate."
          },
          "interestRateReviewCount": {
            "type": "integer",
            "description": "Interest rate review frequency unit count. Valid only for index interest rate.",
            "format": "int32"
          },
          "interestRateReviewUnit": {
            "type": "string",
            "description": "The interest rate review unit values. Shows how often is index interest rate reviewed.",
            "enum": [
              "DAYS",
              "WEEKS",
              "MONTHS"
            ]
          },
          "interestRateSource": {
            "type": "string",
            "description": "The interest rate review unit values. Shows how often is index interest rate reviewed.",
            "enum": [
              "FIXED_INTEREST_RATE",
              "INDEX_INTEREST_RATE"
            ]
          },
          "interestSpread": {
            "type": "number",
            "description": "Interest spread value."
          },
          "validFrom": {
            "type": "string",
            "description": "Date since an interest rate is valid",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          }
        },
        "description": "Adjustable interest rates settings for loan account"
      },
      "Amount": {
        "type": "object",
        "properties": {
          "due": {
            "type": "number",
            "description": "The due amount."
          },
          "expected": {
            "type": "number",
            "description": "The expected amount, which is sum of paid and due amounts."
          },
          "paid": {
            "type": "number",
            "description": "The paid amount."
          }
        },
        "description": "Represents a simple installment amount structure."
      },
      "AmountWithReduced": {
        "type": "object",
        "properties": {
          "due": {
            "type": "number",
            "description": "The due amount."
          },
          "expected": {
            "type": "number",
            "description": "The expected amount, which is sum of paid and due amounts."
          },
          "paid": {
            "type": "number",
            "description": "The paid amount."
          },
          "reduced": {
            "type": "number",
            "description": "The reduced amount."
          }
        },
        "description": "Represents a simple installment amount structure."
      },
      "ApplyBalanceInterestInput": {
        "type": "object",
        "properties": {
          "interestApplicationDate": {
            "type": "string",
            "description": "The date up to which interest is to be posted",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "notes": {
            "type": "string",
            "description": "Additional information for this action"
          }
        },
        "description": "Represents a request for applying the accrued interest on a loan account balance"
      },
      "ApplyInterestInput": {
        "required": [
          "interestApplicationDate"
        ],
        "type": "object",
        "properties": {
          "interestApplicationDate": {
            "type": "string",
            "description": "The date up to which interest is to be posted",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "isInterestFromArrears": {
            "type": "boolean",
            "description": "Whether the interest amount to apply should be the regular one or interest from arrears. If nothing specified it will be the regular one."
          },
          "isPaymentHolidaysInterest": {
            "type": "boolean",
            "description": "Whether the interest amount to apply should be the regular one or the one accrued during the Payment Holidays. If nothing specified it will be the regular one."
          },
          "notes": {
            "type": "string",
            "description": "Additional information for this action"
          },
          "paymentHolidaysInterestAmount": {
            "type": "number",
            "description": "The amount of the Payment Holidays interest to apply"
          }
        },
        "description": "Represents a request for applying the accrued interest "
      },
      "Asset": {
        "required": [
          "amount",
          "assetName"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "The amount used by the client for the guaranty"
          },
          "assetName": {
            "type": "string",
            "description": "The name of a value the client guarantees with (populated when the guaranty type is ASSET)"
          },
          "depositAccountKey": {
            "type": "string",
            "description": "The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null."
          },
          "encodedKey": {
            "type": "string",
            "description": "The encoded key of the security, auto generated, unique.",
            "readOnly": true
          },
          "guarantorKey": {
            "type": "string",
            "description": "The key of the client/group used as the guarantor."
          },
          "guarantorType": {
            "type": "string",
            "description": "Indicated the account holder type.",
            "enum": [
              "CLIENT",
              "GROUP"
            ]
          },
          "originalAmount": {
            "type": "number",
            "description": "The original amount used by the client for a collateral asset"
          },
          "originalCurrency": {
            "$ref": "#/components/schemas/Currency"
          }
        },
        "description": "Asset, holds information about a client asset entry."
      },
      "Balances": {
        "type": "object",
        "properties": {
          "creditBalance": {
            "type": "number",
            "description": "Available credit balance on the loan account.",
            "readOnly": true
          },
          "feesBalance": {
            "type": "number",
            "description": "The fees balance. Represents the total fees expected to be paid on this account at a given moment.",
            "readOnly": true
          },
          "feesDue": {
            "type": "number",
            "description": "The fees due. Representing the total fees due for the account.",
            "readOnly": true
          },
          "feesPaid": {
            "type": "number",
            "description": "The fees paid. Represents the total fees paid for the account.",
            "readOnly": true
          },
          "holdBalance": {
            "type": "number",
            "description": "The sum of all the authorization hold amounts on this account.",
            "readOnly": true
          },
          "interestBalance": {
            "type": "number",
            "description": "Represents the total interest owed by the client (total interest applied for account minus interest paid).",
            "readOnly": true
          },
          "interestDue": {
            "type": "number",
            "description": "The interest due. Indicates how much interest it's due for the account at this moment.",
            "readOnly": true
          },
          "interestFromArrearsBalance": {
            "type": "number",
            "description": "The interest from arrears balance. Indicates interest from arrears owned by the client, from now on. (total interest from arrears accrued for account - interest from arrears paid).",
            "readOnly": true
          },
          "interestFromArrearsDue": {
            "type": "number",
            "description": "The interest from arrears due. Indicates how much interest from arrears it's due for the account at this moment.",
            "readOnly": true
          },
          "interestFromArrearsPaid": {
            "type": "number",
            "description": "The interest from arrears paid, indicates total interest from arrears paid into the account.",
            "readOnly": true
          },
          "interestPaid": {
            "type": "number",
            "description": "The interest paid, indicates total interest paid into the account.",
            "readOnly": true
          },
          "penaltyBalance": {
            "type": "number",
            "description": "The penalty balance. Represents the total penalty expected to be paid on this account at a given moment.",
            "readOnly": true
          },
          "penaltyDue": {
            "type": "number",
            "description": "The penalty due. Represents the total penalty amount due for the account.",
            "readOnly": true
          },
          "penaltyPaid": {
            "type": "number",
            "description": "The Penalty paid. Represents the total penalty amount paid for the account.",
            "readOnly": true
          },
          "principalBalance": {
            "type": "number",
            "description": "The total principal owned by the client, from now on (principal disbursed - principal paid).",
            "readOnly": true
          },
          "principalDue": {
            "type": "number",
            "description": "The principal due, indicates how much principal it's due at this moment.",
            "readOnly": true
          },
          "principalPaid": {
            "type": "number",
            "description": "The principal paid, holds the value of the total paid into the account.",
            "readOnly": true
          },
          "redrawBalance": {
            "type": "number",
            "description": "The total redraw amount owned by the client, from now on."
          }
        },
        "description": "The loan account balance details.",
        "readOnly": true
      },
      "BillingCycleDays": {
        "type": "object",
        "properties": {
          "days": {
            "uniqueItems": true,
            "type": "array",
            "description": "The billing cycle start days in case it is enabled",
            "items": {
              "type": "integer",
              "description": "The billing cycle start days in case it is enabled",
              "format": "int32"
            }
          }
        },
        "description": "Defines the billing cycles settings for a loan account"
      },
      "Card": {
        "required": [
          "referenceToken"
        ],
        "type": "object",
        "properties": {
          "referenceToken": {
            "type": "string",
            "description": "The card's reference token."
          }
        },
        "description": "Returns a card that can be associated to a deposit or loan  account. Cards consist only of card reference tokens and the card details are not stored in Mambu."
      },
      "CardAcceptor": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string",
            "description": "The city in which the card acceptor has the business."
          },
          "country": {
            "type": "string",
            "description": "The country in which the card acceptor has the business."
          },
          "mcc": {
            "type": "integer",
            "description": "The Merchant Category Code of the card acceptor.",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "The name of the card acceptor."
          },
          "state": {
            "type": "string",
            "description": "The state in which the card acceptor has the business."
          },
          "street": {
            "type": "string",
            "description": "The street in which the card acceptor has the business."
          },
          "zip": {
            "type": "string",
            "description": "The ZIP code of the location in which the card acceptor has the business."
          }
        },
        "description": "The details of the card acceptor (merchant) in a transaction hold."
      },
      "CardTransaction": {
        "required": [
          "advice",
          "amount",
          "externalReferenceId"
        ],
        "type": "object",
        "properties": {
          "advice": {
            "type": "boolean",
            "description": "Whether the given request should be accepted without balance validations."
          },
          "amount": {
            "type": "number",
            "description": "The amount of money to be withdrawn in the financial transaction."
          },
          "cardAcceptor": {
            "$ref": "#/components/schemas/CardAcceptor"
          },
          "cardToken": {
            "type": "string",
            "description": "The reference token of the card.",
            "readOnly": true
          },
          "currencyCode": {
            "type": "string",
            "description": "The ISO currency code in which the card reversal transaction is posted. The amounts are stored in the base currency, but the transaction can be created with a foreign currency."
          },
          "encodedKey": {
            "type": "string",
            "description": "The encoded key of the entity, generated, globally unique",
            "readOnly": true
          },
          "externalAuthorizationReferenceId": {
            "type": "string",
            "description": "The external authorization hold reference ID, which relates this card transaction to a previous authorization hold."
          },
          "externalReferenceId": {
            "type": "string",
            "description": "The external reference ID to be used to reference the card transaction in subsequent requests."
          },
          "userTransactionTime": {
            "type": "string",
            "description": "The formatted time at which the user made this card transaction."
          }
        },
        "description": "A card transaction entry which will have a corresponding a financial transaction performed."
      },
      "CarryForwardInterestSplit": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "The carry forward interest amount."
          },
          "tax": {
            "type": "number",
            "description": "The taxes amount on the carry forward interest."
          }
        },
        "description": "Represents carry forward interest split"
      },
      "CarryForwardOptions": {
        "type": "object",
        "properties": {
          "Choose whether to capitalise Principal In Arrears from the initial account": {
            "type": "boolean"
          },
          "Choose whether to capitalise accruedInterestBalance from the initial account": {
            "type": "boolean"
          },
          "Choose whether to capitalise accruedInterestFromArrearsBalance from the initial account": {
            "type": "boolean"
          },
          "Choose whether to capitalise interestBalance from the initial account": {
            "type": "boolean"
          },
          "Choose whether to capitalise interestFromArrearsBalance from the initial account": {
            "type": "boolean"
          },
          "Choose whether to carry forward Principal In Arrears from the initial account": {
            "type": "boolean"
          },
          "Choose whether to carry forward accruedInterestBalance from the initial account": {
            "type": "boolean"
          },
          "Choose whether to carry forward accruedInterestFromArrearsBalance from the initial account": {
            "type": "boolean"
          },
          "Choose whether to carry forward accruedInterestFromArrearsBalance from the originating account": {
            "type": "boolean"
          },
          "Choose whether to carry forward interestBalance from the initial account": {
            "type": "boolean"
          },
          "Choose whether to carry forward interestBalance from the originating account": {
            "type": "boolean"
          },
          "Choose whether to carry forward interestFromArrearsBalance from the initial account": {
            "type": "boolean"
          },
          "Choose whether to carry forward interestFromArrearsBalance from the originating account": {
            "type": "boolean"
          },
          "Choose whether to carry forward loanAccountState from the originating account": {
            "type": "boolean"
          },
          "Choose whether to carry forward the interest on interest-bearing fees balance from the initial account": {
            "type": "boolean"
          },
          "Choose whether to carry forward the interest-bearing fees balance from the initial account": {
            "type": "boolean"
          },
          "Choose whether to carry forward the non-scheduled fee balance from the initial account": {
            "type": "boolean"
          },
          "Choose whether to carry forward the redraw balance from the originating account": {
            "type": "boolean"
          },
          "Choose whether to carry forward the schedule allocated fee balance from the initial account": {
            "type": "boolean"
          },
          "Choose whether to maintain PMT for the first installment": {
            "type": "boolean"
          },
          "Choose whether to write off Principal In Arrears from the initial account": {
            "type": "boolean"
          },
          "Choose whether to write off accruedInterestBalance from the initial account": {
            "type": "boolean"
          },
          "Choose whether to write off accruedInterestFromArrearsBalance from the initial account": {
            "type": "boolean"
          },
          "Choose whether to write off interestBalance from the initial account": {
            "type": "boolean"
          },
          "Choose whether to write off interestFromArrearsBalance from the initial account": {
            "type": "boolean"
          },
          "accruedInterestBalance": {
            "type": "boolean",
            "description": "Choose whether to carry forward accruedInterestBalance from the originating account"
          }
        },
        "description": "The carry forward options that indicates which fields will be carried forward to new account on the loan account reschedule/refinance"
      },
      "ChangeArrearsSettingsInput": {
        "required": [
          "arrearsTolerancePeriod",
          "entryDate"
        ],
        "type": "object",
        "properties": {
          "arrearsTolerancePeriod": {
            "type": "integer",
            "description": "The new arrears tolerance period to be available on the account",
            "format": "int32"
          },
          "entryDate": {
            "type": "string",
            "description": "The date when to change the arrears settings",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "notes": {
            "type": "string",
            "description": "The notes for the change arrears settings action performed on the loan account"
          }
        },
        "description": "Represents the request payload for performing an arrears settings change action"
      },
      "ChangeDueDatesSettingsInput": {
        "required": [
          "fixedDaysOfMonth"
        ],
        "type": "object",
        "properties": {
          "entryDate": {
            "type": "string",
            "description": "The date when to change the due dates settings - deprecated, use valueDate instead",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "fixedDaysOfMonth": {
            "type": "array",
            "description": "The new fixed days of month to be used on the account",
            "items": {
              "type": "integer",
              "description": "The new fixed days of month to be used on the account",
              "format": "int32"
            }
          },
          "notes": {
            "type": "string",
            "description": "The notes for the change due dates settings action performed on the loan account"
          },
          "valueDate": {
            "type": "string",
            "description": "The date when to change the due dates settings",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          }
        },
        "description": "Represents the request payload for performing change due dates settings action"
      },
      "ChangeFeeRateLoanAccountInput": {
        "required": [
          "valueDate"
        ],
        "type": "object",
        "properties": {
          "feeRate": {
            "type": "number",
            "description": "The new fee rate to be available on the account"
          },
          "notes": {
            "type": "string",
            "description": "The notes for the change fee rate action performed on the loan account"
          },
          "valueDate": {
            "type": "string",
            "description": "The date when to change the fee rate (as Organization Time)",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          }
        },
        "description": "Represents the request payload for performing an PMT Adjustment action"
      },
      "ChangeInterestRateLoanAccountInput": {
        "required": [
          "valueDate"
        ],
        "type": "object",
        "properties": {
          "interestRate": {
            "type": "number",
            "description": "The new interest rate to be available on the account"
          },
          "interestSpread": {
            "type": "number",
            "description": "The new interest spread to be available on the account"
          },
          "notes": {
            "type": "string",
            "description": "The notes for the change interest rate action performed on the loan account"
          },
          "valueDate": {
            "type": "string",
            "description": "The date when to change the interest rate (as Organization Time)",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          }
        },
        "description": "Represents the request payload for performing an PMT Adjustment action"
      },
      "ChangeLoanTermLoanAccountInput": {
        "required": [
          "isPreview",
          "repaymentInstallments"
        ],
        "type": "object",
        "properties": {
          "isPreview": {
            "type": "boolean",
            "description": "Whether to preview the result of the change without applying it"
          },
          "repaymentInstallments": {
            "type": "integer",
            "description": "The desired number of repayment installments for the loan term",
            "format": "int32"
          }
        },
        "description": "Represents the request payload for changing a loan term"
      },
      "ChangePeriodicPaymentLoanAccountInput": {
        "required": [
          "periodicPayment",
          "valueDate"
        ],
        "type": "object",
        "properties": {
          "notes": {
            "type": "string",
            "description": "The notes for the change periodic payment action performed on the loan account"
          },
          "periodicPayment": {
            "type": "number",
            "description": "The new periodic payment to be available on the account"
          },
          "valueDate": {
            "type": "string",
            "description": "The date when to change the periodic payment (as Organization Time)",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          }
        },
        "description": "Represents the request payload for performing a periodic payment change action"
      },
      "ChangeRepaymentValueLoanAccountInput": {
        "required": [
          "valueDate"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "Fixed amount for being used for the repayments principal due"
          },
          "notes": {
            "type": "string",
            "description": "Notes for the repayment value change action performed on the loan account"
          },
          "percentage": {
            "type": "number",
            "description": "Percentage of principal amount used for the repayments principal due"
          },
          "valueDate": {
            "type": "string",
            "description": "Date when to change the repayment value (as Organization Time)",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          }
        },
        "description": "Represents the request payload for performing a repayment value change action"
      },
      "CollateralAssetFilter": {
        "type": "object",
        "properties": {
          "branchKeys": {
            "type": "array",
            "description": "Assets of the loan accounts that will be filtered by the branch keys in the background process",
            "items": {
              "type": "string",
              "description": "Assets of the loan accounts that will be filtered by the branch keys in the background process"
            }
          },
          "currencies": {
            "type": "array",
            "description": "Assets of the loan accounts that will be filtered by the currency codes in the background process",
            "items": {
              "type": "string",
              "description": "Assets of the loan accounts that will be filtered by the currency codes in the background process"
            }
          },
          "productKeys": {
            "type": "array",
            "description": "Assets of the loan accounts that will be filtered by the product keys in the background process",
            "items": {
              "type": "string",
              "description": "Assets of the loan accounts that will be filtered by the product keys in the background process"
            }
          }
        },
        "description": "Represents the input for the collateral assets reevaluation background task."
      },
      "CollateralAssetsReevaluationResponse": {
        "type": "object",
        "properties": {
          "bulkProcessKey": {
            "type": "string",
            "description": "The encoded key of the collateral assets reevaluation task"
          },
          "status": {
            "type": "string",
            "description": "Represents the execution status of a background process",
            "enum": [
              "QUEUED",
              "IN_PROGRESS",
              "COMPLETE",
              "NOT_FOUND",
              "CANCEL",
              "TO_BE_CANCELED",
              "TIMED_OUT",
              "ERROR",
              "TRANSIENT_ERROR",
              "OVERRIDDEN",
              "RECOVERABLE_ERROR"
            ]
          }
        },
        "description": "Holds the information about collateral assets reevaluation status."
      },
      "Currency": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Fiat(ISO-4217) currency code or NON_FIAT for non fiat currencies.",
            "enum": [
              "AED",
              "AFN",
              "ALL",
              "AMD",
              "ANG",
              "AOA",
              "ARS",
              "AUD",
              "AWG",
              "AZN",
              "BAM",
              "BBD",
              "BDT",
              "BGN",
              "BHD",
              "BIF",
              "BMD",
              "BND",
              "BOB",
              "BOV",
              "BRL",
              "BSD",
              "BTN",
              "BWP",
              "BYR",
              "BYN",
              "BZD",
              "CAD",
              "CDF",
              "CHE",
              "CHF",
              "CHW",
              "CLF",
              "CLP",
              "CNY",
              "COP",
              "COU",
              "CRC",
              "CUC",
              "CUP",
              "CVE",
              "CZK",
              "DJF",
              "DKK",
              "DOP",
              "DZD",
              "EGP",
              "ERN",
              "ETB",
              "EUR",
              "FJD",
              "FKP",
              "GBP",
              "GEL",
              "GHS",
              "GIP",
              "GMD",
              "GNF",
              "GTQ",
              "GYD",
              "HKD",
              "HNL",
              "HRK",
              "HTG",
              "HUF",
              "IDR",
              "ILS",
              "INR",
              "IQD",
              "IRR",
              "ISK",
              "JMD",
              "JOD",
              "JPY",
              "KES",
              "KGS",
              "KHR",
              "KMF",
              "KPW",
              "KRW",
              "KWD",
              "KYD",
              "KZT",
              "LAK",
              "LBP",
              "LKR",
              "LRD",
              "LSL",
              "LTL",
              "LVL",
              "LYD",
              "MAD",
              "MDL",
              "MGA",
              "MKD",
              "MMK",
              "MNT",
              "MOP",
              "MRO",
              "MRU",
              "MUR",
              "MVR",
              "MWK",
              "MXN",
              "MXV",
              "MYR",
              "MZN",
              "NAD",
              "NGN",
              "NIO",
              "NOK",
              "NPR",
              "NZD",
              "OMR",
              "PAB",
              "PEN",
              "PGK",
              "PHP",
              "PKR",
              "PLN",
              "PYG",
              "QAR",
              "RON",
              "RSD",
              "RUB",
              "RWF",
              "SAR",
              "SBD",
              "SCR",
              "SDG",
              "SEK",
              "SGD",
              "SHP",
              "SLL",
              "SLE",
              "SOS",
              "SRD",
              "STD",
              "STN",
              "SVC",
              "SYP",
              "SZL",
              "THB",
              "TJS",
              "TMT",
              "TND",
              "TOP",
              "TRY",
              "TTD",
              "TWD",
              "TZS",
              "UAH",
              "UGX",
              "USD",
              "USN",
              "UYI",
              "UYU",
              "UYW",
              "UZS",
              "VED",
              "VEF",
              "VES",
              "VND",
              "VUV",
              "WST",
              "XAG",
              "XAU",
              "XAF",
              "XBA",
              "XBB",
              "XBC",
              "XBD",
              "XCD",
              "XCG",
              "XDR",
              "XOF",
              "XPD",
              "XPF",
              "XPT",
              "XSU",
              "XTS",
              "XUA",
              "XXX",
              "YER",
              "ZAR",
              "ZIG",
              "ZWG",
              "ZMK",
              "ZWL",
              "ZMW",
              "SSP",
              "NON_FIAT"
            ]
          },
          "currencyCode": {
            "type": "string",
            "description": "Currency code for NON_FIAT currency."
          }
        },
        "description": "Represents a currency eg. USD, EUR.",
        "readOnly": true
      },
      "CustomPaymentAmount": {
        "required": [
          "amount",
          "customPaymentAmountType"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "The amount of the payment paid in the transaction for the given type."
          },
          "customPaymentAmountType": {
            "type": "string",
            "description": "The type of the custom payment",
            "enum": [
              "PRINCIPAL",
              "INTEREST",
              "MANUAL_FEE",
              "UPFRONT_DISBURSEMENT_FEE",
              "LATE_REPAYMENT_FEE",
              "PAYMENT_DUE_FEE",
              "PENALTY",
              "INTEREST_FROM_ARREARS",
              "NON_SCHEDULED_FEE",
              "INTEREST_BEARING_FEE",
              "INTEREST_BEARING_FEE_INTEREST",
              "CF_PRINCIPAL_IN_ARREARS",
              "CF_INTEREST",
              "CF_INTEREST_FROM_ARREARS",
              "FEE_INCLUDED_IN_PMT"
            ]
          },
          "predefinedFeeKey": {
            "type": "string",
            "description": "The encodedKey of the predefined fee to be paid."
          },
          "taxOnAmount": {
            "type": "number",
            "description": "The amount of the taxes paid in the transaction for the given type."
          }
        },
        "description": "Custom payment amount for a specific element type"
      },
      "CustomPredefinedFee": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "The amount of the custom fee."
          },
          "encodedKey": {
            "type": "string",
            "description": "The encoded key of the custom predefined fee, auto generated, unique.",
            "readOnly": true
          },
          "percentage": {
            "type": "number",
            "description": "The percentage of the custom fee."
          },
          "predefinedFeeEncodedKey": {
            "type": "string",
            "description": "The encoded key of the predefined fee"
          }
        },
        "description": "The custom predefined fees, they may be used as the expected predefined fees that will be applied on the disbursement."
      },
      "CustomSettingDetails": {
        "type": "object",
        "properties": {
          "loanTransactionKey": {
            "type": "string",
            "description": "The loan transaction associated with the custom setting."
          },
          "source": {
            "type": "string",
            "description": "The source of the custom setting"
          },
          "type": {
            "type": "string",
            "description": "The type of custom setting."
          }
        },
        "description": "Represents the custom settings for a loan schedule."
      },
      "DisbursementDetails": {
        "type": "object",
        "properties": {
          "disbursementDate": {
            "type": "string",
            "description": "The activation date, the date when the disbursement actually took place.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "encodedKey": {
            "type": "string",
            "description": "The encoded key of the disbursement details, auto generated, unique",
            "readOnly": true
          },
          "expectedDisbursementDate": {
            "type": "string",
            "description": "The date of the expected disbursement.Stored as Organization Time.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "fees": {
            "type": "array",
            "description": "List of fees that should be applied at the disbursement time.",
            "items": {
              "$ref": "#/components/schemas/CustomPredefinedFee"
            }
          },
          "firstRepaymentDate": {
            "type": "string",
            "description": "The date of the expected first repayment. Stored as Organization Time.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "transactionDetails": {
            "$ref": "#/components/schemas/LoanTransactionDetails"
          }
        },
        "description": "The the disbursement details it holds the information related to the disbursement details as disbursement date, first repayment date, disbursement fees."
      },
      "DisbursementDetailsForSchedulePreview": {
        "type": "object",
        "properties": {
          "expectedDisbursementDate": {
            "type": "string",
            "description": "The date of the expected disbursement.Stored as Organization Time.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "fees": {
            "type": "array",
            "description": "List of fees that should be applied at the disbursement time.",
            "items": {
              "$ref": "#/components/schemas/CustomPredefinedFee"
            }
          },
          "firstRepaymentDate": {
            "type": "string",
            "description": "The date of the expected first repayment. Stored as Organization Time.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          }
        },
        "description": "The the disbursement details it holds the information related to the disbursement details as disbursement date, first repayment date, disbursement fees."
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RestError"
            }
          }
        }
      },
      "Fee": {
        "required": [
          "predefinedFeeKey"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "The amount of the fee that was applied/paid in the transaction for the given predefined fee."
          },
          "name": {
            "type": "string",
            "description": "The name of the predefined fee",
            "readOnly": true
          },
          "predefinedFeeKey": {
            "type": "string",
            "description": "The encoded key of the predefined fee, auto generated, unique"
          },
          "taxAmount": {
            "type": "number",
            "description": "The amount of the taxes on fee that was applied/paid in the transaction."
          },
          "trigger": {
            "type": "string",
            "description": "Shows the event that will trigger a fee",
            "readOnly": true,
            "enum": [
              "MANUAL",
              "MANUAL_PLANNED",
              "DISBURSEMENT",
              "CAPITALIZED_DISBURSEMENT",
              "UPFRONT_DISBURSEMENT",
              "LATE_REPAYMENT",
              "PAYMENT_DUE",
              "PAYMENT_DUE_APPLIED_ON_DUE_DATES",
              "ARBITRARY",
              "IOF",
              "EARLY_REPAYMENT_CHARGE",
              "FEE_INCLUDED_IN_PMT"
            ]
          }
        },
        "description": "An amount of predefined fee that was applied or paid on an account."
      },
      "FeeAmount": {
        "type": "object",
        "properties": {
          "due": {
            "type": "number",
            "description": "The due amount."
          },
          "expected": {
            "type": "number",
            "description": "The expected amount, which is sum of paid and due amounts."
          },
          "expectedUnapplied": {
            "type": "number",
            "description": "The expected amount, which is the sum of unapplied fee and planned fee due amounts."
          },
          "paid": {
            "type": "number",
            "description": "The paid amount."
          }
        },
        "description": "Represents a fee amount."
      },
      "FeesAccountSettings": {
        "type": "object",
        "properties": {
          "accruedFee": {
            "type": "number",
            "description": "The accrued fee. Represents the accrued fee for the loan account. The fee on loans is accrued on a daily basis, which allows charging the clients only for the days they actually used the loan amount.",
            "readOnly": true
          },
          "accruedFeeFromArrears": {
            "type": "number",
            "description": "The accrued fee from arrears. Represents the accrued fee from arrears for the loan account. The fee on loans is accrued on a daily basis, which allows charging the clients only for the days they actually used the loan amount.",
            "readOnly": true
          },
          "feeRate": {
            "type": "number",
            "description": "The fee rate. Represents the fee rate for the loan account. The fee on loans is accrued on a daily basis, which allows charging the clients only for the days they actually used the loan amount."
          }
        },
        "description": "The fee settings, holds all the properties regarding fees for the loan account."
      },
      "FeesSettingsForSchedulePreview": {
        "type": "object",
        "properties": {
          "feeRate": {
            "type": "number",
            "description": "The fee rate. Represents the fee rate for the loan account."
          }
        },
        "description": "Defines fees settings for schedule preview."
      },
      "GetAuthorizationHold": {
        "required": [
          "advice",
          "amount",
          "externalReferenceId"
        ],
        "type": "object",
        "properties": {
          "accountKey": {
            "type": "string",
            "description": "The key of the account linked with the authorization hold.",
            "readOnly": true
          },
          "advice": {
            "type": "boolean",
            "description": "Whether the given request should be accepted without balance validations."
          },
          "amount": {
            "type": "number",
            "description": "The amount of money to be held as a result of the authorization hold request."
          },
          "balances": {
            "$ref": "#/components/schemas/AccountBalances"
          },
          "cardAcceptor": {
            "$ref": "#/components/schemas/CardAcceptor"
          },
          "cardToken": {
            "type": "string",
            "description": "The reference token of the card.",
            "readOnly": true
          },
          "creationDate": {
            "type": "string",
            "description": "The organization time when the authorization hold was created",
            "format": "date-time",
            "readOnly": true,
            "example": "2016-09-06T13:37:50+03:00"
          },
          "creditDebitIndicator": {
            "type": "string",
            "description": "Indicates whether the authorization hold amount is credited or debited",
            "enum": [
              "DBIT",
              "CRDT"
            ]
          },
          "currencyCode": {
            "type": "string",
            "description": "The ISO currency code in which the hold was created. The amounts are stored in the base currency, but the user could have enter it in a foreign currency."
          },
          "customExpirationPeriod": {
            "type": "integer",
            "description": "The custom expiration period for the hold which overwrites mcc and default expiration periods",
            "format": "int32"
          },
          "encodedKey": {
            "type": "string",
            "description": "The internal ID of the authorization hold, auto generated, unique.",
            "readOnly": true
          },
          "exchangeRate": {
            "type": "number",
            "description": "The exchange rate for the original currency."
          },
          "externalReferenceId": {
            "type": "string",
            "description": "The external reference ID to be used to reference the account hold in subsequent requests."
          },
          "originalAmount": {
            "type": "number",
            "description": "The original amount of money to be held as a result of the authorization hold request."
          },
          "originalCurrency": {
            "type": "string",
            "description": "The original currency in which the hold was created."
          },
          "partial": {
            "type": "boolean",
            "description": "Indicates whether the authorization is partial or not"
          },
          "referenceDateForExpiration": {
            "type": "string",
            "description": "The date to consider as start date when calculating the number of days passed until expiration",
            "format": "date-time",
            "readOnly": true,
            "example": "2016-09-06T13:37:50+03:00"
          },
          "source": {
            "type": "string",
            "description": "Indicates the source of the authorization hold",
            "readOnly": true,
            "enum": [
              "CARD",
              "ACCOUNT"
            ]
          },
          "status": {
            "type": "string",
            "description": "The enumeration containing the statuses of an authorization hold.",
            "readOnly": true,
            "enum": [
              "PENDING",
              "REVERSED",
              "SETTLED",
              "EXPIRED"
            ]
          },
          "userTransactionTime": {
            "type": "string",
            "description": "The formatted time at which the user made this authorization hold."
          }
        },
        "description": "Details for retrieving a authorization hold. Deprecated due to encodedKey field."
      },
      "Guarantor": {
        "required": [
          "amount",
          "guarantorKey",
          "guarantorType"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "The amount used by the client for the guaranty"
          },
          "assetName": {
            "type": "string",
            "description": "The name of a value the client guarantees with (populated when the guaranty type is ASSET)"
          },
          "depositAccountKey": {
            "type": "string",
            "description": "The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null."
          },
          "encodedKey": {
            "type": "string",
            "description": "The encoded key of the security, auto generated, unique.",
            "readOnly": true
          },
          "guarantorKey": {
            "type": "string",
            "description": "The key of the client/group used as the guarantor."
          },
          "guarantorType": {
            "type": "string",
            "description": "Indicated the account holder type.",
            "enum": [
              "CLIENT",
              "GROUP"
            ]
          }
        },
        "description": "Guarantor, holds information about a client guaranty entry. It can be defined based on another client which guarantees (including or not a savings account whether it is a client of the organization using Mambu or not) or based on a value the client holds (an asset)"
      },
      "Installment": {
        "type": "object",
        "properties": {
          "carryForwardInterestSplit": {
            "$ref": "#/components/schemas/CarryForwardInterestSplit"
          },
          "customSettingDetails": {
            "type": "array",
            "description": "Custom settings associated with the installment.",
            "items": {
              "$ref": "#/components/schemas/CustomSettingDetails"
            }
          },
          "dueDate": {
            "type": "string",
            "description": "The installment due date.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "encodedKey": {
            "type": "string",
            "description": "The encoded key of the installment, which is auto generated, and unique.",
            "readOnly": true
          },
          "expectedClosingBalance": {
            "type": "number",
            "description": "The expected closing balance is the remaining amount per installment only applicable for interest only equal installment products."
          },
          "fee": {
            "$ref": "#/components/schemas/InstallmentFee"
          },
          "feeDetails": {
            "type": "array",
            "description": "The breakdown of the fee amounts that have been applied to the loan account.",
            "items": {
              "$ref": "#/components/schemas/InstallmentFeeDetails"
            }
          },
          "fundersInterestDue": {
            "type": "number",
            "description": "The amount of interest allocated to funders for P2P accounts only."
          },
          "interest": {
            "$ref": "#/components/schemas/InstallmentAllocationElementTaxableAmount"
          },
          "interestAccrued": {
            "type": "number",
            "description": "The interest accrued calculated on previous repayment closing balance only applicable interest only equal installment products."
          },
          "isPaymentHoliday": {
            "type": "boolean",
            "description": "`TRUE` if a payment holiday is offered for the installment, `FALSE` otherwise."
          },
          "lastPaidDate": {
            "type": "string",
            "description": "The installment last paid date.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "lastPenaltyAppliedDate": {
            "type": "string",
            "description": "The most recent date on which a penalty was applied to the account.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "nonScheduledPrincipalBalanceOverpayment": {
            "type": "number",
            "description": "The non-scheduled principal balance overpayment for the loan account"
          },
          "notes": {
            "type": "string",
            "description": "Any comment or notes added to the installment."
          },
          "number": {
            "type": "string",
            "description": "The order number of an installment among all the installments generated for a loan. Loan installments are put in ascending order by due date. The order number only applies to the content of a particular JSON response therefore it is not unique."
          },
          "organizationCommissionDue": {
            "type": "number",
            "description": "The amount of interest allocated to organization as commission for P2P accounts only."
          },
          "parentAccountKey": {
            "type": "string",
            "description": "The parent account key of the installment."
          },
          "penalty": {
            "$ref": "#/components/schemas/InstallmentAllocationElementTaxableAmount"
          },
          "principal": {
            "$ref": "#/components/schemas/InstallmentAllocationElementAmount"
          },
          "repaidDate": {
            "type": "string",
            "description": "The installment repaid date.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "state": {
            "type": "string",
            "description": "The installment state.",
            "enum": [
              "PENDING",
              "LATE",
              "PAID",
              "PARTIALLY_PAID",
              "GRACE"
            ]
          }
        },
        "description": "Represents a single installment details structure."
      },
      "InstallmentAllocationElementAmount": {
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/Amount"
          }
        },
        "description": "Represents an installment allocation element amount structure."
      },
      "InstallmentAllocationElementTaxableAmount": {
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/Amount"
          },
          "tax": {
            "$ref": "#/components/schemas/Amount"
          }
        },
        "description": "Represents an installment allocation element taxable amount structure."
      },
      "InstallmentFee": {
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/FeeAmount"
          },
          "tax": {
            "$ref": "#/components/schemas/Amount"
          }
        },
        "description": "Represents an installment fee structure."
      },
      "InstallmentFeeDetails": {
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/AmountWithReduced"
          },
          "encodedKey": {
            "type": "string",
            "description": "The encoded key of the predefined fee, auto generated, unique",
            "readOnly": true
          },
          "id": {
            "type": "string",
            "description": "The id of the fee, provided by the client"
          },
          "name": {
            "type": "string",
            "description": "The name of the fee"
          },
          "tax": {
            "$ref": "#/components/schemas/AmountWithReduced"
          }
        },
        "description": "Represents fee details for an installment."
      },
      "InterestSettings": {
        "type": "object",
        "properties": {
          "accountInterestRateSettings": {
            "type": "array",
            "description": "Adjustable interest rates settings for loan account",
            "items": {
              "$ref": "#/components/schemas/AccountInterestRateSettings"
            }
          },
          "accrueInterestAfterMaturity": {
            "type": "boolean",
            "description": "The accrue interest after maturity. If the product support this option, specify if the interest should be accrued after the account maturity date."
          },
          "accrueLateInterest": {
            "type": "boolean",
            "description": "Indicates whether late interest is accrued for this loan account",
            "readOnly": true
          },
          "effectiveInterestRate": {
            "type": "number",
            "description": "The effective interest rate. Represents the interest rate for the loan accounts with semi-annually compounding product."
          },
          "interestApplicationMethod": {
            "type": "string",
            "description": "The interest application method for a loan account. It shows the method used by the loans defining how the interest gets applied.",
            "enum": [
              "AFTER_DISBURSEMENT",
              "REPAYMENT_DUE_DATE",
              "FIXED_DAYS_OF_MONTH"
            ]
          },
          "interestBalanceCalculationMethod": {
            "type": "string",
            "description": "The interest balance calculation method for a loan account. Shows the possible methods for obtaining the balance based on which the interest will be calculated for loan repayment.",
            "enum": [
              "ONLY_PRINCIPAL",
              "PRINCIPAL_AND_INTEREST",
              "PRINCIPAL_AND_FEE",
              "PRINCIPAL_INTEREST_AND_FEE"
            ]
          },
          "interestCalculationMethod": {
            "type": "string",
            "description": "The interest calculation method for a loan account. Shows the different interest calculation methods.",
            "enum": [
              "FLAT",
              "DECLINING_BALANCE",
              "DECLINING_BALANCE_DISCOUNTED",
              "EQUAL_INSTALLMENTS"
            ]
          },
          "interestChargeFrequency": {
            "type": "string",
            "description": "The interest change frequency method for a loan account. Shows the possible methods for obtaining the balance based on which the interest will be calculated for loan repayment.",
            "enum": [
              "ANNUALIZED",
              "EVERY_MONTH",
              "EVERY_FOUR_WEEKS",
              "EVERY_WEEK",
              "EVERY_DAY",
              "EVERY_X_DAYS"
            ]
          },
          "interestRate": {
            "type": "number",
            "description": "The interest rate. Represents the interest rate for the loan account. The interest on loans is accrued on a daily basis, which allows charging the clients only for the days they actually used the loan amount."
          },
          "interestRateReviewCount": {
            "type": "integer",
            "description": "Interest rate update frequency unit count.",
            "format": "int32"
          },
          "interestRateReviewUnit": {
            "type": "string",
            "description": "The interest rate review unit values. Shows how often is index interest rate reviewed.",
            "enum": [
              "DAYS",
              "WEEKS",
              "MONTHS"
            ]
          },
          "interestRateSource": {
            "type": "string",
            "description": "The interest rate review unit values. Shows how often is index interest rate reviewed.",
            "enum": [
              "FIXED_INTEREST_RATE",
              "INDEX_INTEREST_RATE"
            ]
          },
          "interestSpread": {
            "type": "number",
            "description": "Interest to be added to active organization index interest rate in order to find out actual interest rate"
          },
          "interestType": {
            "type": "string",
            "description": "The possible values for how we compute and apply the interest",
            "enum": [
              "SIMPLE_INTEREST",
              "CAPITALIZED_INTEREST",
              "COMPOUNDING_INTEREST"
            ]
          },
          "pmtAdjustmentThreshold": {
            "$ref": "#/components/schemas/PMTAdjustmentThreshold"
          }
        },
        "description": "The interest settings, holds all the properties regarding interests for the loan account."
      },
      "InterestSettingsForSchedulePreview": {
        "type": "object",
        "properties": {
          "accountInterestRateSettings": {
            "type": "array",
            "description": "The interest settings details for schedule preview.",
            "items": {
              "$ref": "#/components/schemas/AccountInterestRateSettings"
            }
          },
          "interestRate": {
            "type": "number",
            "description": "The interest rate. Represents the interest rate for the loan account. The interest on loans is accrued on a daily basis, which allows charging the clients only for the days they actually used the loan amount."
          },
          "interestSpread": {
            "type": "number",
            "description": "Interest to be added to active organization index interest rate in order to find out actual interest rate"
          }
        },
        "description": "The interest settings, holds all the properties regarding interests for the loan account."
      },
      "InvestorFund": {
        "required": [
          "amount",
          "guarantorKey",
          "guarantorType"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "The amount used by the client for the guaranty"
          },
          "assetName": {
            "type": "string",
            "description": "The name of a value the client guarantees with (populated when the guaranty type is ASSET)"
          },
          "depositAccountKey": {
            "type": "string",
            "description": "The key of the deposit account used by the guarantor (populated when the guaranty type is GUARANTOR). It can be null."
          },
          "encodedKey": {
            "type": "string",
            "description": "The encoded key of the entity, generated, globally unique",
            "readOnly": true
          },
          "guarantorKey": {
            "type": "string",
            "description": "The key of the client/group used as the guarantor."
          },
          "guarantorType": {
            "type": "string",
            "description": "Indicated the account holder type.",
            "enum": [
              "CLIENT",
              "GROUP"
            ]
          },
          "id": {
            "type": "string",
            "description": "Investor fund unique identifier. All versions of an investor fund will have same id."
          },
          "interestCommission": {
            "type": "number",
            "description": "The constraint minimum value"
          },
          "sharePercentage": {
            "type": "number",
            "description": "Percentage of loan shares this investor owns"
          }
        },
        "description": "Contains the details about an investor fund including fields like encoded key, guarantor type, amount and guarantor key"
      },
      "LoanAccount": {
        "required": [
          "accountHolderKey",
          "accountHolderType",
          "loanAmount",
          "productTypeKey",
          "scheduleSettings"
        ],
        "type": "object",
        "properties": {
          "accountArrearsSettings": {
            "$ref": "#/components/schemas/AccountArrearsSettings"
          },
          "accountHolderKey": {
            "type": "string",
            "description": "The encoded key of the account holder."
          },
          "accountHolderType": {
            "type": "string",
            "description": "Indicated the account holder type.",
            "enum": [
              "CLIENT",
              "GROUP"
            ]
          },
          "accountState": {
            "type": "string",
            "description": "All the generic account states applicable to loans.",
            "enum": [
              "PARTIAL_APPLICATION",
              "PENDING_APPROVAL",
              "APPROVED",
              "ACTIVE",
              "ACTIVE_IN_ARREARS",
              "CLOSED",
              "CLOSED_WRITTEN_OFF",
              "CLOSED_REJECTED"
            ]
          },
          "accountSubState": {
            "type": "string",
            "description": "All the generic account sub states applicable to loans.",
            "enum": [
              "PARTIALLY_DISBURSED",
              "LOCKED",
              "LOCKED_CAPPING",
              "REFINANCED",
              "RESCHEDULED",
              "WITHDRAWN",
              "REPAID",
              "REJECTED",
              "WRITTEN_OFF",
              "TERMINATED"
            ]
          },
          "accruedInterest": {
            "type": "number",
            "description": "The amount of interest that has been accrued in the loan account."
          },
          "accruedPenalty": {
            "type": "number",
            "description": "The accrued penalty, represents the amount of penalty that has been accrued in the loan account."
          },
          "activationTransactionKey": {
            "type": "string",
            "description": "The encoded key of the transaction that activated the loan account."
          },
          "adjustTotalDueForInstallmentsWithDifferentInterval": {
            "type": "boolean",
            "description": "Adjust the total due for repayment when the repayment period is different than the repayment frequency",
            "readOnly": true
          },
          "allowAdvanceRepayment": {
            "type": "boolean",
            "description": "True if advance repayment is allowed; false otherwise.",
            "readOnly": true
          },
          "allowOffset": {
            "type": "boolean",
            "description": "DEPRECATED - Will always be false."
          },
          "approvedDate": {
            "type": "string",
            "description": "The date the loan account was approved.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "arrearsTolerancePeriod": {
            "type": "integer",
            "description": "The arrears tolerance (period or day of month) depending on the product settings.",
            "format": "int32"
          },
          "assets": {
            "type": "array",
            "description": "The list of assets associated with the current loan account.",
            "items": {
              "$ref": "#/components/schemas/Asset"
            }
          },
          "assignedBranchKey": {
            "type": "string",
            "description": "The key of the branch this loan account is assigned to. The branch is set to unassigned if no branch field is set."
          },
          "assignedCentreKey": {
            "type": "string",
            "description": "The key of the centre this account is assigned to."
          },
          "assignedUserKey": {
            "type": "string",
            "description": "The key of the user this loan account is assigned to."
          },
          "balances": {
            "$ref": "#/components/schemas/Balances"
          },
          "closedDate": {
            "type": "string",
            "description": "The date the loan was closed.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "creationDate": {
            "type": "string",
            "description": "The date the loan account was created.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "creditArrangementKey": {
            "type": "string",
            "description": "The key to the line of credit where this account is registered to."
          },
          "creditBalanceSettings": {
            "$ref": "#/components/schemas/RevolvingAccountCreditBalanceSettings"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "daysInArrears": {
            "type": "integer",
            "description": "The number of days the loan account is in arrears.",
            "format": "int32",
            "readOnly": true
          },
          "daysLate": {
            "type": "integer",
            "description": "The number of days a repayment for the loan account is late.",
            "format": "int32",
            "readOnly": true
          },
          "disbursementDetails": {
            "$ref": "#/components/schemas/DisbursementDetails"
          },
          "encodedKey": {
            "type": "string",
            "description": "The encoded key of the loan account, it is auto generated, and must be unique.",
            "readOnly": true
          },
          "feesSettings": {
            "$ref": "#/components/schemas/FeesAccountSettings"
          },
          "fundingSources": {
            "type": "array",
            "description": "The list of funds associated with the loan account.",
            "items": {
              "$ref": "#/components/schemas/InvestorFund"
            }
          },
          "futurePaymentsAcceptance": {
            "type": "string",
            "description": "Shows whether the repayment transactions with entry date set in the future are allowed or not for this loan account.",
            "enum": [
              "NO_FUTURE_PAYMENTS",
              "ACCEPT_FUTURE_PAYMENTS",
              "ACCEPT_OVERPAYMENTS"
            ]
          },
          "guarantors": {
            "type": "array",
            "description": "The list of guarantees associated with the loan account.",
            "items": {
              "$ref": "#/components/schemas/Guarantor"
            }
          },
          "id": {
            "type": "string",
            "description": "The ID of the loan account, it can be generated and customized, and must be unique."
          },
          "interestAccruedInBillingCycle": {
            "type": "number",
            "description": "The interest that is accrued in the current billing cycle.",
            "readOnly": true
          },
          "interestCommission": {
            "type": "number",
            "description": "The value of the interest booked by the organization from the accounts funded by investors. Null if the funds are not enabled."
          },
          "interestFromArrearsAccrued": {
            "type": "number",
            "description": "The amount of interest from arrears that has been accrued in the loan account.",
            "readOnly": true
          },
          "interestSettings": {
            "$ref": "#/components/schemas/InterestSettings"
          },
          "lastAccountAppraisalDate": {
            "type": "string",
            "description": "The date the loan account has last been evaluated for interest, principal, fees, and penalties calculations expressed in the organization time format and time zone.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "lastInterestAppliedDate": {
            "type": "string",
            "description": "The date of the last time the loan account had interest applied (stored to interest balance), expressed in the organization time format and time zone.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "lastInterestReviewDate": {
            "type": "string",
            "description": "The date the interest was reviewed last time, stored in the organization time format and time zone.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "lastLockedDate": {
            "type": "string",
            "description": "The date when the loan account was set for the last time in the `LOCKED` state expressed in the organization time format and time zone. If null, the account is not locked anymore.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "lastModifiedDate": {
            "type": "string",
            "description": "The last date the loan was updated.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "lastSetToArrearsDate": {
            "type": "string",
            "description": "The date when the loan account was set to last standing or null; if never set, it is expressed in your organization time format and time zone.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "lastTaxRateReviewDate": {
            "type": "string",
            "description": "The date the tax rate on the loan account was last checked, expressed in the organization time format and time zone.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "latePaymentsRecalculationMethod": {
            "type": "string",
            "description": "The late payment recalculation method. Is used by loan accounts to have the schedule recalculated when late payments are posted on accounts..",
            "enum": [
              "OVERDUE_INSTALLMENTS_INCREASE",
              "LAST_INSTALLMENT_INCREASE",
              "NO_RECALCULATION"
            ]
          },
          "loanAmount": {
            "type": "number",
            "description": "The loan amount."
          },
          "loanName": {
            "type": "string",
            "description": "The name of the loan account."
          },
          "lockedAccountTotalDueType": {
            "type": "string",
            "description": "Type of total due amount for a locked account.",
            "enum": [
              "BALANCE_AMOUNT",
              "DUE_AMOUNT_ON_LATE_INSTALLMENTS"
            ]
          },
          "lockedOperations": {
            "type": "array",
            "description": "A list with operations which are locked when the account is in the AccountState.LOCKED substate.",
            "items": {
              "type": "string",
              "description": "The possible operations that can be executed over a loan account, ex: apply interest/fees/penalties.",
              "enum": [
                "APPLY_INTEREST",
                "APPLY_FEES",
                "APPLY_PENALTIES"
              ]
            }
          },
          "migrationEventKey": {
            "type": "string",
            "description": "The migration event encoded key associated with this loan account. If this account was imported, track which 'migration event' they came from."
          },
          "modifyInterestForFirstInstallment": {
            "type": "boolean",
            "description": "Adjust the interest for the first repayment when the first repayment period is different than the repayment frequency",
            "readOnly": true
          },
          "notes": {
            "type": "string",
            "description": "The notes about this loan account."
          },
          "originalAccountKey": {
            "type": "string",
            "description": "The key of the original rescheduled or refinanced loan account."
          },
          "paymentHolidaysAccruedInterest": {
            "type": "number",
            "description": "The amount of interest that has been accrued during payment holidays in the loan account."
          },
          "paymentMethod": {
            "type": "string",
            "description": "The payment allocation method used by the loans defining how the payments get performed.",
            "enum": [
              "HORIZONTAL",
              "VERTICAL"
            ]
          },
          "penaltySettings": {
            "$ref": "#/components/schemas/PenaltySettings"
          },
          "plannedInstallmentFees": {
            "type": "array",
            "description": "The list with manual fees planned on the installments of the loan account.",
            "items": {
              "$ref": "#/components/schemas/PlannedInstallmentFee"
            }
          },
          "prepaymentSettings": {
            "$ref": "#/components/schemas/PrepaymentSettings"
          },
          "principalPaymentSettings": {
            "$ref": "#/components/schemas/PrincipalPaymentAccountSettings"
          },
          "productTypeKey": {
            "type": "string",
            "description": "The key for the type of loan product that this loan account is based on."
          },
          "redrawSettings": {
            "$ref": "#/components/schemas/LoanAccountRedrawSettings"
          },
          "rescheduledAccountKey": {
            "type": "string",
            "description": "The key pointing to where this loan account was rescheduled or refinanced to. This value is only not null if rescheduled."
          },
          "scheduleSettings": {
            "$ref": "#/components/schemas/ScheduleSettings"
          },
          "settlementAccountKey": {
            "type": "string",
            "description": "The encoded key of the settlement account."
          },
          "taxRate": {
            "type": "number",
            "description": "The tax rate."
          },
          "terminationDate": {
            "type": "string",
            "description": "The date this loan account was terminated.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "tranches": {
            "type": "array",
            "description": "The list of disbursement tranches available for the loan account.",
            "items": {
              "$ref": "#/components/schemas/LoanTranche"
            }
          },
          "useInterestAccruedAsTotalDueWhenIntervalIsDifferent": {
            "type": "boolean",
            "description": "Use interest accrued as total due for repayment when the repayment period is different than the repayment frequency",
            "readOnly": true
          },
          "_Example_Custom_Fields": {
            "$ref": "#/components/schemas/_Example_Custom_Fields"
          }
        },
        "description": "Represents a loan account. A loan account defines the amount that your organization lends to a client. The terms and conditions of a loan account are defined by a loan product. In a loan account, Mambu stores all the information related to disbursements, repayments, interest rates, and withdrawals."
      },
      "LoanAccountAction": {
        "required": [
          "action"
        ],
        "type": "object",
        "properties": {
          "action": {
            "type": "string",
            "description": "The action type to be applied.",
            "enum": [
              "REQUEST_APPROVAL",
              "SET_INCOMPLETE",
              "APPROVE",
              "UNDO_APPROVE",
              "REJECT",
              "WITHDRAW",
              "CLOSE",
              "UNDO_REJECT",
              "UNDO_WITHDRAW",
              "UNDO_CLOSE"
            ]
          },
          "notes": {
            "type": "string",
            "description": "The notes related to the action performed."
          }
        },
        "description": "Represents information for an action to perform on a loan account."
      },
      "LoanAccountBalanceChange": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "amount by which the balance was changed"
          },
          "applicationDate": {
            "type": "string",
            "description": "date/time when the change was applied",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "creationDate": {
            "type": "string",
            "description": "date/time when the change was recorded",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "loanAccountEncodedKey": {
            "type": "string",
            "description": "encoded key of the loan account"
          },
          "loanTransactionEncodedKey": {
            "type": "string",
            "description": "encoded key of the loan transaction"
          },
          "type": {
            "type": "string",
            "description": "balance type"
          }
        },
        "description": "Change on a loan account balance"
      },
      "LoanAccountBalanceChanges": {
        "type": "object",
        "properties": {
          "balanceChanges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoanAccountBalanceChange"
            }
          }
        },
        "description": "Changes on a loan account balance"
      },
      "LoanAccountBalances": {
        "type": "object",
        "properties": {
          "balances": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Balances for a loan account",
              "readOnly": true,
              "enum": [
                "nonScheduledFeeBalance",
                "nonScheduledFeePaidBalance",
                "interestBearingFeeBalance",
                "interestBearingFeePaidBalance",
                "interestBearingFeeInterestAccruedBalance",
                "interestBearingFeeInterestBalance",
                "interestBearingFeeInterestPaidBalance",
                "carriedForwardPrincipalInArrearsBalance",
                "carriedForwardInterestBalance",
                "carriedForwardInterestFromArrearsBalance",
                "carriedForwardInterestFromArrearsAccrued",
                "carriedForwardInterestAccrued",
                "redrawBalance",
                "principalDue",
                "principalPaid",
                "principalBalance",
                "interestDue",
                "interestPaid",
                "interestBalance",
                "interestFromArrearsBalance",
                "interestFromArrearsDue",
                "interestFromArrearsPaid",
                "feesDue",
                "scheduledFeesDue",
                "feesPaid",
                "scheduledFeesPaid",
                "feesBalance",
                "scheduledFeesBalance",
                "penaltyDue",
                "penaltyPaid",
                "penaltyBalance",
                "holdBalance"
              ]
            }
          }
        },
        "description": "Balances for a loan account"
      },
      "LoanAccountExternalMigration": {
        "type": "object",
        "properties": {
          "firstRepaymentDate": {
            "type": "string",
            "description": "First repayment date of migrated mortgage",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "loanAccount": {
            "$ref": "#/components/schemas/LoanAccount"
          },
          "migrationFields": {
            "$ref": "#/components/schemas/MigrationFields"
          }
        },
        "description": "Represents input for External Migration endpoint"
      },
      "LoanAccountFilterCriteria": {
        "required": [
          "field",
          "operator"
        ],
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "description": "Contains the actual searching fields that can be native (one from the provided list) or otherwise can specify a custom field definition using the format [customFieldSetId].[customFieldId].\n",
            "enum": [
              "accountHolderKey",
              "assignedBranchKey",
              "productTypeKey",
              "loanRiskLevelKey",
              "encodedKey",
              "loanName",
              "id",
              "accountHolderId",
              "recipient",
              "creationDate",
              "approvedDate",
              "lastModifiedDate",
              "lastSetToArrearsDate",
              "lastLockedDate",
              "closedDate",
              "daysInArrears",
              "daysLate",
              "accountSubState",
              "accountState",
              "loanAmount",
              "numInstallments",
              "balances.principalDue",
              "balances.principalPaid",
              "balances.principalBalance",
              "balances.interestDue",
              "balances.interestPaid",
              "balance.interestBalance",
              "accruedInterest",
              "balances.feesDue",
              "balances.feesBalance",
              "balances.feesPaid",
              "penaltySettings.loanPenaltyCalculationMethod",
              "balances.penaltyDue",
              "balances.penaltyPaid",
              "balances.penaltyBalance",
              "accruedPenalty",
              "penaltySettings.penaltyRate",
              "arrearsTolerancePeriod",
              "interestSettings.interestRate",
              "interestSettings.interestSpread",
              "totalPaid",
              "totalBalance",
              "totalDue",
              "firstRepaymentDate",
              "lastPaymentDate",
              "lastPaymentAmount",
              "expectedMaturityDate",
              "rescheduledAccountKey",
              "refinancedAccountId",
              "originalAccountKey",
              "taxRate",
              "taxPaid",
              "taxDue",
              "hasSettlementAccount",
              "settlementAccountKey",
              "interestCommission",
              "fundingSources.amount",
              "fundingSources.sharePercentage",
              "numberOfFunds",
              "fundsEnabled",
              "availableAmount",
              "wasRescheduled",
              "wasRefinanced",
              "prepaymentSettings.prepaymentRecalculationMethod",
              "prepaymentSettings.applyInterestOnPrepaymentMethod",
              "latePaymentsRecalculationMethod",
              "balances.redrawBalance",
              "expectedPrincipalRedraw",
              "tranches.parentAccountKey",
              "tranches.disbursementDetails.disbursementTransactionKey",
              "tranches.amount",
              "tranches.disbursementDetails.expectedDisbursementDate",
              "disbursementDetails.expectedDisbursementDate",
              "disbursementDetails.disbursementDate",
              "lastAccountAppraisalDate"
            ]
          },
          "operator": {
            "type": "string",
            "description": "| **Operator**                | **Affected values**  | **Available for**                                                    |\n|---------------               |----------------------|----------------------------------------------------------------------|\n| EQUALS                       | ONE_VALUE            | BIG_DECIMAL,BOOLEAN,LONG,MONEY,NUMBER,PERCENT,STRING,ENUM,KEY        |\n| EQUALS_CASE_SENSITIVE        | ONE_VALUE            | BIG_DECIMAL,BOOLEAN,LONG,MONEY,NUMBER,PERCENT,STRING,ENUM,KEY \t\t  |\n| MORE_THAN                    | ONE_VALUE            | BIG_DECIMAL,NUMBER,MONEY                                             |\n| LESS_THAN                    | ONE_VALUE            | BIG_DECIMAL,NUMBER,MONEY                                             |\n| BETWEEN                      | TWO_VALUES           | BIG_DECIMAL,NUMBER,MONEY,DATE,DATE_TIME                              |\n| ON                           | ONE_VALUE            | DATE,DATE_TIME                                                       |\n| AFTER                        | ONE_VALUE            | DATE,DATE_TIME                                                       |\n| BEFORE                       | ONE_VALUE            | DATE,DATE_TIME                                                       |\n| BEFORE_INCLUSIVE             | ONE_VALUE            | DATE,DATE_TIME                                                       |\n| STARTS_WITH                  | ONE_VALUE            | STRING                                                               |\n| STARTS_WITH_CASE_SENSITIVE   | ONE_VALUE            | STRING                                                               |\n| IN                           | LIST                 | ENUM,KEY                                                             |\n| TODAY                        | NO_VALUE             | DATE,DATE_TIME                                                       |\n| THIS_WEEK                    | NO_VALUE             | DATE,DATE_TIME                                                       |\n| THIS_MONTH                   | NO_VALUE             | DATE,DATE_TIME                                                       |\n| THIS_YEAR                    | NO_VALUE             | DATE,DATE_TIME                                                       |\n| LAST_DAYS                    | ONE_VALUE            | NUMBER                                                               |\n| EMPTY                        | NO_VALUE             | BIG_DECIMAL,LONG,MONEY,NUMBER,PERCENT,STRING,ENUM,KEY,DATE,DATE_TIME |\n| NOT_EMPTY                    | NO_VALUE             | BIG_DECIMAL,LONG,MONEY,NUMBER,PERCENT,STRING,ENUM,KEY,DATE,DATE_TIME |",
            "enum": [
              "EQUALS",
              "EQUALS_CASE_SENSITIVE",
              "DIFFERENT_THAN",
              "MORE_THAN",
              "LESS_THAN",
              "BETWEEN",
              "ON",
              "AFTER",
              "AFTER_INCLUSIVE",
              "BEFORE",
              "BEFORE_INCLUSIVE",
              "STARTS_WITH",
              "STARTS_WITH_CASE_SENSITIVE",
              "IN",
              "TODAY",
              "THIS_WEEK",
              "THIS_MONTH",
              "THIS_YEAR",
              "LAST_DAYS",
              "EMPTY",
              "NOT_EMPTY"
            ]
          },
          "secondValue": {
            "type": "string",
            "description": "The second value to match the searching criteria, when the `BETWEEN` operator is used."
          },
          "value": {
            "type": "string",
            "description": "The value to match the searching criteria."
          },
          "values": {
            "type": "array",
            "description": "List of values when the `IN` operator is used.",
            "items": {
              "type": "string",
              "description": "List of values when the `IN` operator is used."
            }
          }
        },
        "description": "Wrapper that holds a list of filtering criteria and a sorting criteria for Loan account directed query"
      },
      "LoanAccountPayOffInput": {
        "type": "object",
        "properties": {
          "externalId": {
            "type": "string",
            "description": "The external ID for the repayment transaction."
          },
          "notes": {
            "type": "string",
            "description": "The notes for the repayment transaction logged for the pay off action."
          },
          "payOffAdjustableAmounts": {
            "$ref": "#/components/schemas/PayOffAdjustableAmounts"
          },
          "transactionDetails": {
            "$ref": "#/components/schemas/TransactionDetails"
          }
        },
        "description": "Represents the information for loan account pay off action."
      },
      "LoanAccountRedrawSettings": {
        "required": [
          "restrictNextDueWithdrawal"
        ],
        "type": "object",
        "properties": {
          "restrictNextDueWithdrawal": {
            "type": "boolean",
            "description": "`TRUE` if withdrawing amounts that reduce the next due instalment repayment is restricted, `FALSE` otherwise."
          }
        },
        "description": "Represents the redraw settings for a loan account."
      },
      "LoanAccountRepaymentScheduleVersioning": {
        "type": "object",
        "properties": {
          "encodedKey": {
            "type": "string",
            "description": "The encoded key of the versioning.",
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "description": "The repayment schedule versioning ID.",
            "format": "int64"
          },
          "loanAccountChangedEventKey": {
            "type": "string",
            "description": "The loan account event which triggered the versioning."
          },
          "loanTransactionKey": {
            "type": "string",
            "description": "The loan transaction key which triggered the versioning."
          },
          "versioningContent": {
            "type": "array",
            "description": "The loan account repayment schedule versioning list.",
            "items": {
              "$ref": "#/components/schemas/Installment"
            }
          }
        },
        "description": "Represents a single repayment versioning details structure."
      },
      "LoanAccountSchedule": {
        "type": "object",
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "installments": {
            "type": "array",
            "description": "The loan account schedule installments list.",
            "items": {
              "$ref": "#/components/schemas/Installment"
            }
          }
        },
        "description": "Represents a single loan account schedule structure."
      },
      "LoanAccountSearchCriteria": {
        "type": "object",
        "properties": {
          "filterCriteria": {
            "type": "array",
            "description": "The list of filtering criteria",
            "items": {
              "$ref": "#/components/schemas/LoanAccountFilterCriteria"
            }
          },
          "sortingCriteria": {
            "$ref": "#/components/schemas/LoanAccountSortingCriteria"
          }
        },
        "description": "Wrapper that holds a list of filtering criteria and a sorting criteria for Loan account directed query"
      },
      "LoanAccountSortingCriteria": {
        "required": [
          "field"
        ],
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "description": "Contains the field that can be used as sorting selection. Can be native (one from the provided list) or otherwise can specify a custom field definition using the format [customFieldSetId].[customFieldId].",
            "enum": [
              "encodedKey",
              "loanName",
              "id",
              "accountHolderId",
              "recipient",
              "creationDate",
              "approvedDate",
              "lastModifiedDate",
              "lastSetToArrearsDate",
              "lastLockedDate",
              "closedDate",
              "daysInArrears",
              "daysLate",
              "loanAmount",
              "tranches.amount",
              "numInstallments",
              "accruedInterest",
              "accruedPenalty",
              "penaltySettings.penaltyRate",
              "arrearsTolerancePeriod",
              "interestSettings.interestSpread",
              "totalPaid",
              "totalBalance",
              "totalDue",
              "firstRepaymentDate",
              "lastPaymentDate",
              "lastPaymentAmount",
              "expectedMaturity",
              "rescheduledAccountKey",
              "refinancedAccountId",
              "originalAccountKey",
              "taxRate",
              "taxPaid",
              "taxDue",
              "settlementAccountKey",
              "interestCommission",
              "numberOfFunds",
              "fundsEnabled",
              "availableAmount",
              "wasRescheduled",
              "wasRefinanced",
              "expectedPrincipalRedraw",
              "balances.principalDue",
              "balances.principalPaid",
              "balances.principalBalance",
              "balances.interestDue",
              "balances.interestPaid",
              "balance.interestBalance",
              "balances.redrawBalance",
              "balances.feesDue",
              "balances.feesBalance",
              "balances.feesPaid",
              "balances.penaltyDue",
              "balances.penaltyPaid",
              "balances.penaltyBalance",
              "fundingSources.amount",
              "fundingSources.sharePercentage"
            ]
          },
          "order": {
            "type": "string",
            "description": "The sorting order: `ASC` or `DESC`. The default order is `DESC`.",
            "enum": [
              "ASC",
              "DESC"
            ]
          }
        },
        "description": "Represents the sorting criteria used for loan account searches."
      },
      "LoanActionDetails": {
        "type": "object",
        "properties": {
          "notes": {
            "type": "string",
            "description": "The notes for the action performed on a loan account."
          }
        },
        "description": "Represents details about an action performed on a loan account."
      },
      "LoanAffectedAmounts": {
        "type": "object",
        "properties": {
          "creditBalanceChangeAmount": {
            "type": "number",
            "description": "How much credit balance was added/removed in account, within this transaction."
          },
          "deferredInterestAmount": {
            "type": "number",
            "description": "How much interest pre-paid was added/removed in account, within this transaction (including taxes)."
          },
          "feesAmount": {
            "type": "number",
            "description": " How much fees was added/removed in account, within this transaction."
          },
          "fundersInterestAmount": {
            "type": "number",
            "description": "How much interest is given to the investors, within this transaction (only for p2p products)"
          },
          "interestAmount": {
            "type": "number",
            "description": "How much interest was added/removed in account, within this transaction (including taxes). If there is any deferred interest amount set in this transaction, that amount should be included in this field."
          },
          "interestFromArrearsAmount": {
            "type": "number",
            "description": "How much interest from arrears was added/removed in account, within this transaction (including taxes)."
          },
          "organizationCommissionAmount": {
            "type": "number",
            "description": "How much interest is given to the organization, within this transaction (only for p2p products)"
          },
          "paymentHolidaysInterestAmount": {
            "type": "number",
            "description": "How much Payment Holidays interest was added/removed in account, within this transaction (including taxes)."
          },
          "penaltyAmount": {
            "type": "number",
            "description": "How much penalties was added/removed in account, within this transaction."
          },
          "principalAmount": {
            "type": "number",
            "description": "How much principal was added/removed in account, within this transaction."
          }
        },
        "description": "The amounts affected after completing the loan transaction"
      },
      "LoanTerms": {
        "type": "object",
        "properties": {
          "interestSettings": {
            "$ref": "#/components/schemas/TransactionInterestSettings"
          },
          "periodicPayment": {
            "type": "number",
            "description": "The periodic payment value logged when changing it for a Balloon Payments account"
          },
          "principalPaymentAmount": {
            "type": "number",
            "description": "The principal payment flat amount logged when changing it for a Revolving Credit account"
          },
          "principalPaymentPercentage": {
            "type": "number",
            "description": "The principal payment percentage value logged when changing it for a Revolving Credit account"
          }
        },
        "description": "The loan transaction terms"
      },
      "LoanTranche": {
        "required": [
          "amount"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "The amount this tranche has available for disburse"
          },
          "disbursementDetails": {
            "$ref": "#/components/schemas/TrancheDisbursementDetails"
          },
          "encodedKey": {
            "type": "string",
            "description": "The encoded key of the transaction details , auto generated, unique.",
            "readOnly": true
          },
          "fees": {
            "type": "array",
            "description": "Fees that are associated with this tranche",
            "items": {
              "$ref": "#/components/schemas/CustomPredefinedFee"
            }
          },
          "trancheNumber": {
            "type": "integer",
            "description": "Index indicating the tranche number",
            "format": "int32"
          }
        },
        "description": "In some cases organizations may approve loans but not disburse the full amount initially. They would like to spread the disbursement (and risk) over time. Likewise for the client, they may not need the full loan amount up front. They may want to have a loan to buy some equipment for their business but will make one purchase today and another purchase in a few months.  In these cases, they don't need the full amount and wouldn't want to pay interest on cash they don't need yet. A solution for this matter is the usage of disbursement in tranches. This class holds the information required for one of this tranche. "
      },
      "LoanTransaction": {
        "type": "object",
        "properties": {
          "accountBalances": {
            "$ref": "#/components/schemas/TransactionBalances"
          },
          "adjustmentTransactionKey": {
            "type": "string",
            "description": "The key of the loan transaction where the adjustment for the transaction was made (if any adjustment was involved)."
          },
          "affectedAmounts": {
            "$ref": "#/components/schemas/LoanAffectedAmounts"
          },
          "amount": {
            "type": "number",
            "description": "The amount that was added or removed on the loan account."
          },
          "bookingDate": {
            "type": "string",
            "description": "The date when the corresponding journal entry is booked.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "branchKey": {
            "type": "string",
            "description": "The branch where the transaction was performed."
          },
          "cardTransaction": {
            "$ref": "#/components/schemas/CardTransaction"
          },
          "centreKey": {
            "type": "string",
            "description": "The center where the transaction was performed."
          },
          "creationDate": {
            "type": "string",
            "description": "The date when this loan transaction was created.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "customPaymentAmounts": {
            "type": "array",
            "description": "The list of custom amounts which the user has paid as part of this transaction.",
            "items": {
              "$ref": "#/components/schemas/CustomPaymentAmount"
            }
          },
          "encodedKey": {
            "type": "string",
            "description": "The encoded key of the loan transaction, which is auto generated, and must be unique."
          },
          "externalId": {
            "type": "string",
            "description": "The external ID of the loan transaction, it is customizable, and must be unique."
          },
          "feeIncludedInPmt": {
            "type": "boolean"
          },
          "fees": {
            "type": "array",
            "description": "The amounts that have been applied or paid as part of this transaction and involved predefined fees.",
            "items": {
              "$ref": "#/components/schemas/Fee"
            }
          },
          "id": {
            "type": "string",
            "description": "The ID of the loan transaction, can be generated and customized, and must be unique."
          },
          "installmentEncodedKey": {
            "type": "string",
            "description": "The specific installment encoded key associated to the loan transaction."
          },
          "lateFeeIncludedInPmt": {
            "type": "boolean"
          },
          "lateFeePerInstallment": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "description": "The late fees associated per installment for the loan transaction."
            },
            "description": "The late fees associated per installment for the loan transaction."
          },
          "linkedPrincipalOverpaymentTransactionKey": {
            "type": "string",
            "description": "The specific principal overpayment transaction key associated to the loan transaction."
          },
          "migrationEventKey": {
            "type": "string",
            "description": "The migration event encoded key associated with the loan account. If the account was imported, track which 'migration event' it came from."
          },
          "notes": {
            "type": "string",
            "description": "The notes or description for the loan transaction."
          },
          "originalAmount": {
            "type": "number",
            "description": "The amount that was posted in a foreign currency. This amount was converted using the exchange rate available at entry date and set into the amount field."
          },
          "originalCurrencyCode": {
            "type": "string",
            "description": "The currency in which this transaction was posted. The amounts are stored in the base currency, but the user may enter it in a foreign currency."
          },
          "originalTransactionKey": {
            "type": "string",
            "description": "The encoded key of the transaction that was adjusted as part of this one. Available only for adjustment transactions."
          },
          "parentAccountKey": {
            "type": "string",
            "description": "The key of the parent loan account."
          },
          "parentLoanTransactionKey": {
            "type": "string",
            "description": "The key of the parent loan transaction."
          },
          "prepaymentRecalculationMethod": {
            "type": "string",
            "description": "The prepayment recalculation method types.",
            "enum": [
              "NO_RECALCULATION",
              "RESCHEDULE_REMAINING_REPAYMENTS",
              "RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER_OF_TERMS",
              "RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIPAL_AMOUNT",
              "RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT",
              "REDUCE_AMOUNT_PER_INSTALLMENT",
              "REDUCE_NUMBER_OF_INSTALLMENTS",
              "REDUCE_NUMBER_OF_INSTALLMENTS_NEW"
            ]
          },
          "taxes": {
            "$ref": "#/components/schemas/Taxes"
          },
          "terms": {
            "$ref": "#/components/schemas/LoanTerms"
          },
          "tillKey": {
            "type": "string",
            "description": "The till key associated with the transaction."
          },
          "transactionDetails": {
            "$ref": "#/components/schemas/TransactionDetails"
          },
          "transferDetails": {
            "$ref": "#/components/schemas/TransferDetails"
          },
          "type": {
            "type": "string",
            "description": "The type of loan transaction.",
            "enum": [
              "IMPORT",
              "DISBURSEMENT",
              "DISBURSEMENT_ADJUSTMENT",
              "WRITE_OFF",
              "WRITE_OFF_ADJUSTMENT",
              "REPAYMENT",
              "ADVANCE_REPAYMENT",
              "PAYMENT_MADE",
              "WITHDRAWAL_REDRAW",
              "WITHDRAWAL_REDRAW_ADJUSTMENT",
              "FEE_APPLIED",
              "FEE_CHARGED",
              "FEE_CAPITALISED",
              "SCHEDULE_FIX_APPLIED",
              "FEES_DUE_REDUCED",
              "FEE_REFUND",
              "FEE_REFUND_ADJUSTMENT",
              "FEE_ADJUSTMENT",
              "PENALTY_APPLIED",
              "PENALTY_ADJUSTMENT",
              "PENALTIES_DUE_REDUCED",
              "REPAYMENT_ADJUSTMENT",
              "ADVANCE_REPAYMENT_ADJUSTMENT",
              "FEE_CAPITALISED_ADJUSTMENT",
              "PAYMENT_MADE_ADJUSTMENT",
              "INTEREST_RATE_CHANGED",
              "FEE_RATE_CHANGED",
              "TAX_RATE_CHANGED",
              "PENALTY_RATE_CHANGED",
              "INTEREST_APPLIED",
              "IBF_INTEREST_APPLIED",
              "IBF_INTEREST_APPLIED_ADJUSTMENT",
              "INTEREST_APPLIED_ADJUSTMENT",
              "INTEREST_DUE_REDUCED",
              "PENALTY_REDUCTION_ADJUSTMENT",
              "FEE_REDUCTION_ADJUSTMENT",
              "INTEREST_REDUCTION_ADJUSTMENT",
              "DEFERRED_INTEREST_APPLIED",
              "DEFERRED_INTEREST_APPLIED_ADJUSTMENT",
              "DEFERRED_INTEREST_PAID",
              "DEFERRED_INTEREST_PAID_ADJUSTMENT",
              "INTEREST_LOCKED",
              "FEE_LOCKED",
              "PENALTY_LOCKED",
              "INTEREST_UNLOCKED",
              "FEE_UNLOCKED",
              "PENALTY_UNLOCKED",
              "REDRAW_TRANSFER",
              "REDRAW_REPAYMENT",
              "REDRAW_TRANSFER_ADJUSTMENT",
              "REDRAW_REPAYMENT_ADJUSTMENT",
              "TRANSFER",
              "TRANSFER_ADJUSTMENT",
              "BRANCH_CHANGED",
              "TERMS_CHANGED",
              "CARD_TRANSACTION_REVERSAL",
              "CARD_TRANSACTION_REVERSAL_ADJUSTMENT",
              "DUE_DATE_CHANGED",
              "DUE_DATE_CHANGED_ADJUSTMENT",
              "ACCOUNT_TERMINATED",
              "ACCOUNT_TERMINATED_ADJUSTMENT",
              "REFUND",
              "REFUND_ADJUSTMENT",
              "REDUCE_BALANCE",
              "REDUCE_BALANCE_ADJUSTMENT",
              "PRINCIPAL_OVERPAYMENT",
              "PRINCIPAL_OVERPAYMENT_ADJUSTMENT",
              "CREDIT_BALANCE_DEPOSIT",
              "CREDIT_BALANCE_DEPOSIT_ADJUSTMENT",
              "CREDIT_BALANCE_WITHDRAWAL",
              "CREDIT_BALANCE_WITHDRAWAL_ADJUSTMENT",
              "PAYMENT_HOLIDAYS_INTEREST_CAPITALISED",
              "PAYMENT_HOLIDAYS_INTEREST_CAPITALISED_ADJUSTMENT"
            ]
          },
          "userKey": {
            "type": "string",
            "description": "The user that performed the transaction."
          },
          "valueDate": {
            "type": "string",
            "description": "The date of the entry in the organization time format and timezone.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          }
        },
        "description": "Represents the action performed on a loan account after which the account's amount changes its value."
      },
      "LoanTransactionDetails": {
        "type": "object",
        "properties": {
          "encodedKey": {
            "type": "string",
            "description": "The encoded key of the entity, generated, globally unique",
            "readOnly": true
          },
          "internalTransfer": {
            "type": "boolean",
            "description": "Whether the transaction was transferred between loans or deposit accounts"
          },
          "targetDepositAccountKey": {
            "type": "string",
            "description": "In case of a transaction to a deposit account this represent the deposit account key to which the transaction was made."
          },
          "transactionChannelId": {
            "type": "string",
            "description": "The ID of the transaction channel associated with the transaction details."
          },
          "transactionChannelKey": {
            "type": "string",
            "description": "The encoded key of the transaction channel associated with the transaction details."
          }
        },
        "description": "Represents the loan transaction details."
      },
      "MigrationFields": {
        "type": "object",
        "properties": {
          "contractualMonthlyPayment": {
            "type": "number",
            "description": "Contractual monthly payment to be migrated"
          },
          "interest": {
            "type": "number",
            "description": "Interest"
          },
          "interestAccrued": {
            "type": "number",
            "description": "Interest Accrued"
          },
          "interestFromArrears": {
            "type": "number",
            "description": "Interest From Arrears Balance"
          },
          "interestFromArrearsAccrued": {
            "type": "number",
            "description": "Interest From Arrears Accrued"
          },
          "lastSetToArrearsDate": {
            "type": "string",
            "description": "Last Set To Arrears Date",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "principalInArrears": {
            "type": "number",
            "description": "Due/late principal in the time of migration"
          },
          "redrawBalance": {
            "type": "number",
            "description": "Redraw Balance"
          }
        },
        "description": "The loan account fields to migrate"
      },
      "PMTAdjustmentThreshold": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "Represents the method used to calculate the PMT adjustment threshold. Supported value is CALENDAR_DAYS",
            "enum": [
              "WORKING_DAYS",
              "CALENDAR_DAYS"
            ]
          },
          "numberOfDays": {
            "type": "integer",
            "description": "The number of days that trigger a PMT Adjustment.",
            "format": "int32"
          }
        },
        "description": "Represents PMT Adjustment threshold settings for loan accounts and loan products."
      },
      "PatchOperation": {
        "required": [
          "op",
          "path"
        ],
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "description": "The field from where a value should be moved, when using move"
          },
          "op": {
            "type": "string",
            "description": "The change to perform",
            "enum": [
              "ADD",
              "REPLACE",
              "REMOVE",
              "MOVE"
            ]
          },
          "path": {
            "type": "string",
            "description": "The field to perform the operation on"
          },
          "value": {
            "type": "object",
            "description": "The value of the field, can be null"
          }
        },
        "description": "A single change that needs to be made to a resource"
      },
      "PatchOperationsList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/PatchOperation"
        }
      },
      "PayOffAdjustableAmounts": {
        "type": "object",
        "properties": {
          "carriedForwardInterestAmount": {
            "type": "number",
            "description": "The carried forward interest amount to be paid for Pay Off action"
          },
          "carriedForwardInterestFromArrearsAmount": {
            "type": "number",
            "description": "The carried forward interest from arrears amount to be paid for Pay Off action"
          },
          "carriedForwardPrincipalInArrearsAmount": {
            "type": "number",
            "description": "The carried forward principal in arrears amount to be paid for Pay Off action"
          },
          "feesPaid": {
            "type": "number",
            "description": "The fee amount to be paid for Pay Off action"
          },
          "interestBearingFeeAmount": {
            "type": "number",
            "description": "The interest-bearing fee amount to be paid for Pay Off action"
          },
          "interestBearingFeeInterestAmount": {
            "type": "number",
            "description": "The interest-bearing fee interest amount to be paid for Pay Off action"
          },
          "interestFromArrearsPaid": {
            "type": "number",
            "description": "The interest from arrears amount to be paid for Pay Off action"
          },
          "interestPaid": {
            "type": "number",
            "description": "The interest amount to be paid for Pay Off action"
          },
          "nonScheduledFeeAmount": {
            "type": "number",
            "description": "The non-scheduled fee amount to be paid for Pay Off action"
          },
          "penaltyPaid": {
            "type": "number",
            "description": "The penalty amount to be paid for Pay Off action"
          }
        },
        "description": "Adjustable amounts to be paid for Pay Off action"
      },
      "PenaltySettings": {
        "type": "object",
        "properties": {
          "loanPenaltyCalculationMethod": {
            "type": "string",
            "description": "The last penalty calculation method, represents on what amount are the penalties calculated.",
            "enum": [
              "NONE",
              "OVERDUE_BALANCE",
              "OVERDUE_BALANCE_AND_INTEREST",
              "OVERDUE_BALANCE_INTEREST_AND_FEE",
              "OUTSTANDING_PRINCIPAL"
            ]
          },
          "penaltyRate": {
            "type": "number",
            "description": "The penalty rate, represents the rate (in percent) which is charged as a penalty."
          }
        },
        "description": "The penalty settings, holds all the fields regarding penalties"
      },
      "PeriodicPayment": {
        "required": [
          "amount",
          "toInstallment"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "The PMT value used in periodic payment"
          },
          "encodedKey": {
            "type": "string",
            "description": "The encoded key of the periodic payment, auto generated, unique.",
            "readOnly": true
          },
          "toInstallment": {
            "type": "integer",
            "description": "The installment's position up to which the PMT will be used",
            "format": "int32"
          }
        },
        "description": "For fixed term loans there is the possibility to define a payment plan. A payment plan consists of multiple periodic payments. This class holds information about a periodic payment."
      },
      "PeriodicPaymentForSchedulePreview": {
        "required": [
          "amount",
          "toInstallment"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "The PMT value used in periodic payment"
          },
          "toInstallment": {
            "type": "integer",
            "description": "The installment's position up to which the PMT will be used",
            "format": "int32"
          }
        },
        "description": "For fixed term loans there is the possibility to define a payment plan. A payment plan consists of multiple periodic payments. This class holds information about a periodic payment for schedule preview."
      },
      "PlannedFeeKeys": {
        "required": [
          "encodedKeys"
        ],
        "type": "object",
        "properties": {
          "encodedKeys": {
            "type": "array",
            "description": "The list of encoded keys of the planned installment fees.",
            "items": {
              "type": "string",
              "description": "The list of encoded keys of the planned installment fees."
            }
          }
        },
        "description": "The planned installment fees encoded keys list"
      },
      "PlannedInstallmentFee": {
        "required": [
          "predefinedFeeKey"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "The amount of the planned fee."
          },
          "applyOnDate": {
            "type": "string",
            "description": "The date when a planned fee should be applied, overriding installment's due date. It should match the interval of the installment. If it belong to first installment, it should be between disbursement date and installment due date.",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "encodedKey": {
            "type": "string",
            "description": "The encoded key of the planned installment fee, auto generated, unique.",
            "readOnly": true
          },
          "installmentKey": {
            "type": "string",
            "description": "The encoded key of the installment on which the predefined fee is planned."
          },
          "installmentNumber": {
            "type": "integer",
            "description": "The number of the installment on which the predefined fee is planned. It is used only in the case when fees are created at the same time with the loan account creation or during preview schedule, before account creation, otherwise this should be empty and installmentKey will be used to identify an installment.",
            "format": "int32"
          },
          "predefinedFeeKey": {
            "type": "string",
            "description": "The encoded key of the predefined fee which is planned."
          }
        },
        "description": "The planned fee details holds the information related to the installment key, predefined fee key and amount"
      },
      "PrepaymentSettings": {
        "type": "object",
        "properties": {
          "applyInterestOnPrepaymentMethod": {
            "type": "string",
            "description": "The apply interest method type for pre-payments.",
            "enum": [
              "AUTOMATIC",
              "MANUAL"
            ]
          },
          "elementsRecalculationMethod": {
            "type": "string",
            "description": "The elements recalculation method types",
            "enum": [
              "PRINCIPAL_EXPECTED_FIXED",
              "TOTAL_EXPECTED_FIXED"
            ]
          },
          "ercFreeAllowanceAmount": {
            "type": "number"
          },
          "ercFreeAllowancePercentage": {
            "type": "number",
            "description": "Early repayment charge fee free allowance in percentage per year"
          },
          "prepaymentRecalculationMethod": {
            "type": "string",
            "description": "The prepayment recalculation method types.",
            "enum": [
              "NO_RECALCULATION",
              "RESCHEDULE_REMAINING_REPAYMENTS",
              "RECALCULATE_SCHEDULE_KEEP_SAME_NUMBER_OF_TERMS",
              "RECALCULATE_SCHEDULE_KEEP_SAME_PRINCIPAL_AMOUNT",
              "RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT",
              "REDUCE_AMOUNT_PER_INSTALLMENT",
              "REDUCE_NUMBER_OF_INSTALLMENTS",
              "REDUCE_NUMBER_OF_INSTALLMENTS_NEW"
            ]
          },
          "principalPaidInstallmentStatus": {
            "type": "string",
            "description": "The status of installment after the principal was paid off as part of an over-payment.",
            "enum": [
              "PARTIALLY_PAID",
              "PAID",
              "ORIGINAL_TOTAL_EXPECTED_PAID"
            ]
          }
        },
        "description": "The prepayment settings, holds all prepayment properties."
      },
      "PreviewLoanAccountSchedule": {
        "required": [
          "loanAmount",
          "productTypeKey"
        ],
        "type": "object",
        "properties": {
          "disbursementDetails": {
            "$ref": "#/components/schemas/DisbursementDetailsForSchedulePreview"
          },
          "feeRateSettings": {
            "$ref": "#/components/schemas/FeesSettingsForSchedulePreview"
          },
          "interestCommission": {
            "type": "number",
            "description": "The value of the interest booked by the organization from the accounts funded by investors. Null if the funds are not enable"
          },
          "interestSettings": {
            "$ref": "#/components/schemas/InterestSettingsForSchedulePreview"
          },
          "loanAmount": {
            "type": "number",
            "description": "The loan amount"
          },
          "plannedInstallmentFees": {
            "type": "array",
            "description": "A list with planned manual fees to be applied on the installments for schedule preview.",
            "items": {
              "$ref": "#/components/schemas/PlannedInstallmentFee"
            }
          },
          "productTypeKey": {
            "type": "string",
            "description": "The key to the type of product that this account is based on."
          },
          "scheduleSettings": {
            "$ref": "#/components/schemas/ScheduleSettingsForSchedulePreview"
          },
          "topUpAmount": {
            "type": "number",
            "description": "The top up amount in case of a refinanced account"
          },
          "tranches": {
            "type": "array",
            "description": "List of tranches to be considered for schedule preview.",
            "items": {
              "$ref": "#/components/schemas/LoanTranche"
            }
          }
        },
        "description": "Payload structure to preview loan account schedule."
      },
      "PreviewPayOffDueAmountsInAFutureDateInput": {
        "required": [
          "valueDate"
        ],
        "type": "object",
        "properties": {
          "valueDate": {
            "type": "string",
            "description": "The date until which the amounts due for pay off should be calculated",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          }
        },
        "description": "Represents the information to preview the pay off due amounts in a future date."
      },
      "PreviewPayOffDueAmountsInAFutureDateWrapper": {
        "type": "object",
        "properties": {
          "carriedForwardInterestBalance": {
            "type": "number",
            "description": "The carried forward interest balance due when pay off the account in a future date"
          },
          "carriedForwardInterestFromArrearsBalance": {
            "type": "number",
            "description": "The carried forward interest from arrears balance due when pay off the account in a future date"
          },
          "carriedForwardPrincipalInArrears": {
            "type": "number",
            "description": "The carried forward principal in arrears due when pay off the account in a future date"
          },
          "earlyRepaymentCharge": {
            "type": "number",
            "description": "The early repayment charge balance due when pay off the account in a future date"
          },
          "feeBalance": {
            "type": "number",
            "description": "The fee balance due when pay off the account in a future date"
          },
          "interestBalance": {
            "type": "number",
            "description": "The interest balance due when pay off the account in a future date"
          },
          "interestBearingFeeBalance": {
            "type": "number",
            "description": "The interest bearing fee balance due when pay off the account in a future date"
          },
          "interestBearingFeeInterestBalance": {
            "type": "number",
            "description": "The interest from interest bearing fee balance due when pay off the account in a future date"
          },
          "interestFromArrearsBalance": {
            "type": "number",
            "description": "The interest from arrears balance due when pay off the account in a future date"
          },
          "penaltyBalance": {
            "type": "number",
            "description": "The penalty balance due when pay off the account in a future date"
          },
          "principalBalance": {
            "type": "number",
            "description": "The principal balance due when pay off the account in a future date"
          },
          "totalBalance": {
            "type": "number",
            "description": "The total balance due when pay off the account in a future date"
          }
        },
        "description": "Represents a wrapper over a set of due amounts representing pay off due amounts in a future date"
      },
      "PrincipalPaymentAccountSettings": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "Fixed amount for being used for the repayments principal due."
          },
          "encodedKey": {
            "type": "string",
            "description": "The encoded key of the principal payment base settings, auto generated, unique.",
            "readOnly": true
          },
          "includeFeesInFloorAmount": {
            "type": "boolean",
            "description": "Boolean flag, if true, the fees will be included along with the principal in the repayment floor amount, for a revolving credit account"
          },
          "includeInterestInFloorAmount": {
            "type": "boolean",
            "description": "Boolean flag, if true, the interest will be included along with the principal in the repayment floor amount, for a revolving credit account"
          },
          "percentage": {
            "type": "number",
            "description": "Percentage of principal amount used for the repayments principal due."
          },
          "principalCeilingValue": {
            "type": "number",
            "description": "The maximum principal due amount a repayment made with this settings can have"
          },
          "principalFloorValue": {
            "type": "number",
            "description": "The minimum principal due amount a repayment made with this settings can have"
          },
          "principalPaymentMethod": {
            "type": "string",
            "description": "The principal payment method (for revolving credits)",
            "enum": [
              "FLAT",
              "OUTSTANDING_PRINCIPAL_PERCENTAGE",
              "PRINCIPAL_PERCENTAGE_LAST_DISB",
              "TOTAL_BALANCE_PERCENTAGE",
              "TOTAL_BALANCE_FLAT",
              "TOTAL_PRINCIPAL_PERCENTAGE"
            ]
          },
          "totalDueAmountFloor": {
            "type": "number",
            "description": "The minimum total due amount a repayment made with this settings can have"
          },
          "totalDuePayment": {
            "type": "string",
            "description": "The principal payment method (for revolving credits)",
            "enum": [
              "FLAT",
              "OUTSTANDING_PRINCIPAL_PERCENTAGE",
              "PRINCIPAL_PERCENTAGE_LAST_DISB",
              "TOTAL_BALANCE_PERCENTAGE",
              "TOTAL_BALANCE_FLAT",
              "TOTAL_PRINCIPAL_PERCENTAGE"
            ]
          }
        },
        "description": "The principal payment account settings, holds the required information for the principal payment process of an account."
      },
      "RefinanceDisbursementDetails": {
        "required": [
          "firstRepaymentDate"
        ],
        "type": "object",
        "properties": {
          "expectedDisbursementDate": {
            "type": "string",
            "description": "The date of the expected disbursement",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          },
          "fees": {
            "type": "array",
            "description": "List of fees that should be applied at the disbursement time.",
            "items": {
              "$ref": "#/components/schemas/CustomPredefinedFee"
            }
          },
          "firstRepaymentDate": {
            "type": "string",
            "description": "The date of the expected first payment",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          }
        },
        "description": "The disbursement details, allowed on the loan account refinance"
      },
      "RefinanceLoanAccount": {
        "required": [
          "disbursementDetails",
          "productTypeKey"
        ],
        "type": "object",
        "properties": {
          "accountArrearsSettings": {
            "$ref": "#/components/schemas/RestructureAccountArrearsSettings"
          },
          "disbursementDetails": {
            "$ref": "#/components/schemas/RefinanceDisbursementDetails"
          },
          "encodedKey": {
            "type": "string",
            "description": "The encoded key of the entity, generated, globally unique",
            "readOnly": true
          },
          "guarantors": {
            "type": "array",
            "description": "The guarantees associated with the refinanced loan account",
            "items": {
              "$ref": "#/components/schemas/Guarantor"
            }
          },
          "id": {
            "type": "string",
            "description": "Id of the new loan account."
          },
          "interestSettings": {
            "$ref": "#/components/schemas/RestructureInterestSettings"
          },
          "loanName": {
            "type": "string",
            "description": "The name of the new loan account."
          },
          "notes": {
            "type": "string",
            "description": "The loan account notes"
          },
          "penaltySettings": {
            "$ref": "#/components/schemas/RestructurePenaltySettings"
          },
          "principalPaymentSettings": {
            "$ref": "#/components/schemas/RestructurePrincipalPaymentAccountSettings"
          },
          "productTypeKey": {
            "type": "string",
            "description": "The key of the loan product that this account is based on"
          },
          "scheduleSettings": {
            "$ref": "#/components/schemas/RestructureScheduleSettings"
          }
        },
        "description": "The new loan account settings, allowed on the loan account refinance"
      },
      "RefinanceLoanAccountAction": {
        "required": [
          "loanAccount",
          "topUpAmount"
        ],
        "type": "object",
        "properties": {
          "carryForwardOptions": {
            "$ref": "#/components/schemas/CarryForwardOptions"
          },
          "keepSameAccountId": {
            "type": "boolean",
            "description": "Choose whether to keep the same account ID as the originating account. If true, the 'id' field in the 'loanAccount' object should not be provided."
          },
          "loanAccount": {
            "$ref": "#/components/schemas/RefinanceLoanAccount"
          },
          "topUpAmount": {
            "type": "number",
            "description": "The top-up amount"
          },
          "writeOffAmounts": {
            "$ref": "#/components/schemas/RefinanceWriteOffAmounts"
          }
        },
        "description": "The request structure for performing the refinance loan account action"
      },
      "RefinanceWriteOffAmounts": {
        "type": "object",
        "properties": {
          "fee": {
            "type": "number",
            "description": "Fee write-off amount"
          },
          "interest": {
            "type": "number",
            "description": "Interest write-off amount"
          },
          "interestBearingFees": {
            "type": "number",
            "description": "Interest Bearing Fees write-off amount"
          },
          "interestBearingFeesInterest": {
            "type": "number",
            "description": "Interest Bearing Fees Interest write-off amount"
          },
          "interestFromArrears": {
            "type": "number"
          },
          "penalty": {
            "type": "number",
            "description": "Penalty write-off amount"
          }
        },
        "description": "The write-off amounts, allowed on the loan account refinance"
      },
      "RescheduleDisbursementDetails": {
        "required": [
          "firstRepaymentDate"
        ],
        "type": "object",
        "properties": {
          "firstRepaymentDate": {
            "type": "string",
            "description": "The date of the expected first payment",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          }
        },
        "description": "The disbursement details, allowed on the loan account restructure"
      },
      "RescheduleLoanAccount": {
        "required": [
          "disbursementDetails",
          "productTypeKey"
        ],
        "type": "object",
        "properties": {
          "accountArrearsSettings": {
            "$ref": "#/components/schemas/RestructureAccountArrearsSettings"
          },
          "disbursementDetails": {
            "$ref": "#/components/schemas/RescheduleDisbursementDetails"
          },
          "encodedKey": {
            "type": "string",
            "description": "The encoded key of the entity, generated, globally unique",
            "readOnly": true
          },
          "guarantors": {
            "type": "array",
            "description": "The guarantees associated with the rescheduled loan account",
            "items": {
              "$ref": "#/components/schemas/Guarantor"
            }
          },
          "id": {
            "type": "string",
            "description": "Id of the new loan account."
          },
          "interestCommission": {
            "type": "number",
            "description": "The interest commission"
          },
          "interestSettings": {
            "$ref": "#/components/schemas/RestructureInterestSettings"
          },
          "loanName": {
            "type": "string",
            "description": "The name of the new loan account."
          },
          "notes": {
            "type": "string",
            "description": "Notes for the rescheduled loan account"
          },
          "penaltySettings": {
            "$ref": "#/components/schemas/RestructurePenaltySettings"
          },
          "principalPaymentSettings": {
            "$ref": "#/components/schemas/RestructurePrincipalPaymentAccountSettings"
          },
          "productTypeKey": {
            "type": "string",
            "description": "The key of the loan product that this account is based on"
          },
          "scheduleSettings": {
            "$ref": "#/components/schemas/RestructureScheduleSettings"
          }
        },
        "description": "The new loan account settings, allowed on the loan account reschedule"
      },
      "RescheduleLoanAccountAction": {
        "required": [
          "loanAccount"
        ],
        "type": "object",
        "properties": {
          "carryForwardOptions": {
            "$ref": "#/components/schemas/CarryForwardOptions"
          },
          "keepSameAccountId": {
            "type": "boolean",
            "description": "Choose whether to keep the same account ID as the originating account. If true, the 'id' field in the 'loanAccount' object should not be provided."
          },
          "loanAccount": {
            "$ref": "#/components/schemas/RescheduleLoanAccount"
          },
          "writeOffAmounts": {
            "$ref": "#/components/schemas/RescheduleWriteOffAmounts"
          }
        },
        "description": "The request payload for performing a reschedule loan account action"
      },
      "RescheduleWriteOffAmounts": {
        "type": "object",
        "properties": {
          "fee": {
            "type": "number",
            "description": "Fee write-off amount"
          },
          "interest": {
            "type": "number",
            "description": "Interest write-off amount"
          },
          "interestBearingFees": {
            "type": "number",
            "description": "Interest Bearing Fees write-off amount"
          },
          "interestBearingFeesInterest": {
            "type": "number",
            "description": "Interest Bearing Fees Interest write-off amount"
          },
          "interestFromArrears": {
            "type": "number",
            "description": "Interest from Arrears write-off amount"
          },
          "penalty": {
            "type": "number",
            "description": "Penalty write-off amount"
          },
          "principal": {
            "type": "number",
            "description": "Principal write-off amount"
          }
        },
        "description": "The write-off amounts, allowed on the loan account reschedule"
      },
      "RestError": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "format": "int32"
          },
          "errorReason": {
            "type": "string",
            "enum": [
              "SUCCESS",
              "INVALID_BASIC_AUTHORIZATION",
              "INVALID_CREDENTIALS",
              "INVALID_API_OPERATION",
              "INVALID_PARAMETERS",
              "METHOD_NOT_IMPLEMENTED",
              "INTERNAL_ERROR",
              "API_NOT_AUTHORIZED",
              "USER_TRANSACTION_LIMIT_EXCEEDED",
              "API_CONFIGURATION_ERROR",
              "INVALID_TENANT_ID",
              "INVALID_PAGINATION_OFFSET_VALUE",
              "OUT_OF_BOUNDS_PAGINATION_OFFSET_VALUE",
              "INVALID_PAGINATION_LIMIT_VALUE",
              "OUT_OF_BOUNDS_PAGINATION_LIMIT_VALUE",
              "INVALID_PERMISSIONS",
              "INVALID_IP_ADDRESS",
              "INACTIVE_USER",
              "NO_API_ACCESS",
              "FEATURE_DISABLED",
              "MAX_FILE_SIZE_EXCEEDED",
              "MAX_FILENAME_LENGTH_EXCEEDED",
              "UNSUPPORTED_CHARACTER_ENCODING",
              "INVALID_API_PROTOCOL",
              "EXCESSIVE_INVALID_REQUESTS",
              "INCONSISTENT_IDENTIFIER_WITH_JSON",
              "INVALID_JSON_SYNTAX",
              "PARAMETER_NOT_ALLOWED",
              "START_DATE_AFTER_END_DATE",
              "OBJECT_NOT_FOUND",
              "MISSING_ENTITY_JSON",
              "MISSING_REQUIRED_PARAMETER",
              "READ_ONLY_MODE",
              "UNSUPPORTED_PAGINATION",
              "NOT_AVAILABLE_FOR_API_V1",
              "BLOCKING_OPERATION_IN_PROGRESS",
              "QUERY_TIMEOUT_EXCEPTION",
              "LOCK_ACCOUNT_WAIT_TIMEOUT",
              "OUT_OF_BOUNDS_PAGINATION_OFFSET_AND_LIMIT_PAIR",
              "NON_REVERSIBLE_WRITE_OFF",
              "NON_WEEKLY_LOAN_REPAYMENTS",
              "INVALID_LOAN_ACCOUNT_ID",
              "INVALID_AMOUNT",
              "INVALID_DATE",
              "INVALID_NOTES",
              "INVALID_TRANSACTION_TYPE_ID",
              "INVALID_ACCOUNT_STATE",
              "INVALID_FEE",
              "LOAN_PRODUCT_MISMATCH",
              "INVALID_FIELD_FOR_TRANSACTION_TYPE",
              "INACTIVE_TRANSACTION_TYPE",
              "EXCESS_REPAYMENT_ERROR",
              "TRANSACTION_LOGGED_AFTER_NOT_DISBURSED_TRANCHE",
              "UNDEFINED_ACCOUNT_FOR_FINANCIAL_RESOURCE_ERROR",
              "INVALID_ACCOUNT_FOR_JOURNAL_ENTRY_ERROR",
              "MISSING_LOAN_ID",
              "MAXIMUM_EXPOSURE_EXCEEDED",
              "INVALID_STATE_TRANSITION",
              "NUMBER_OF_LOANS_EXCEEDED",
              "INVALID_FIRST_REPAYMENT_DUE_DATE",
              "INVALID_REPAYMENT_DUE_DAY",
              "INVALID_INTEREST_RATE",
              "INVALID_INSTALLMENTS",
              "MISSING_LINKED_ACCOUNT",
              "PREPAYMENT_NOT_ALLOWED_ERROR",
              "REPAYMENT_DATE_IN_THE_FUTURE_ERROR",
              "INVALID_DISBURSEMENT_DATE",
              "ILLEGAL_LOAN_PARAMETERS_MODIFICATION",
              "ORIGINAL_ACCOUNT_HAS_FUNDS",
              "INVALID_ACCOUNT_STATE_FOR_REPAYMENTS",
              "DISBURSEMENT_FEES_EXCEED_LOAN_AMOUNT",
              "INTEREST_CANNOT_BE_APPLIED",
              "ENTRY_DATE_BEFORE_OTHER_TRANSACTION",
              "INCONSISTENT_SCHEDULE_PRINCIPAL_DUE_WITH_LOAN_AMOUNT",
              "ACCOUNT_HAS_NO_ACCRUED_INTEREST",
              "INTEREST_ALREADY_APPLIED_ON_DISBURSEMENT_ACCOUNT",
              "INCONSISTENT_WITH_FIXED_DAYS_OF_MONTH",
              "NEGATIVE_PRINCIPAL_FOR_INSTALLMENT",
              "INVALID_TAX_RATE",
              "INSUFFICIENT_GUARANTEES",
              "MISSING_REPAYMENT_PERIOD_COUNT",
              "MISSING_REPAYMENT_INTERVAL",
              "FUTURE_PAYMENT_NOT_ALLOWED_ERROR",
              "DISBURSEMENT_WITH_ZERO_LOAN_AMOUNT_NOT_ALLOWED",
              "MINIMUM_ARREARS_DAYS_NOT_REACHED",
              "ACCOUNT_ALREADY_UNLOCKED",
              "LOAN_AMOUNT_DECIMALS_NOT_ALLOWED_WITH_ROUNDING",
              "RESCHEDULED_LOAN",
              "REFINANCED_LOAN",
              "INVALID_PRODUCT_WITH_FUNDING_SOURCE_DISABLED",
              "INVALID_ID",
              "FAILED_TO_GENERATE_IDENTIFIER",
              "INCONSISTENT_ACCOUNT_ID_WITH_ACCOUNT_HOLDER_TYPE",
              "INVALID_ASSET_NAME",
              "GUARANTOR_KEY_NOT_ALLOWED",
              "GUARANTOR_SAVINGS_KEY_NOT_ALLOWED",
              "INVALID_GUARANTOR_KEY",
              "INVALID_SAVINGS_ACCOUNT_KEY",
              "INVALID_GUARANTOR_STATE",
              "DUPLICATED_GUARANTOR_WITHOUT_SAVINGS_ACCOUNT",
              "DUPLICATED_SAVINGS_ACCOUNT",
              "INSUFFICIENT_SAVINGS_ACCOUNT_BALANCE",
              "INVALID_SAVINGS_ACCOUNT_STATE",
              "DUPLICATED_ASSET",
              "GUARANTOR_ASSET_NAME_NOT_ALLOWED",
              "TRANSACTION_NOT_FOUND",
              "INVALID_TRANSACTION_TYPE",
              "UNREVERSED_TRANSACTION_LOGGED_AFTER_CURRENT_ONE",
              "INVALID_GUARANTOR_PERMISSION",
              "INVALID_CLIENT_ROLE_PERMISSION_FOR_OPENING_ACCOUNTS",
              "MISSING_PENALTY_RATE",
              "INVALID_REPAYMENT_NUMBER",
              "MISSING_REPAYMENT_NUMBER",
              "INVALID_REPAYMENT_STATE",
              "CENTRE_MEETING_DAY_IN_NON_WORKING_DAY",
              "ARBITRARY_FEE_NOT_ALLOWED",
              "INVALID_REPAYMENT_ID",
              "ACCOUNT_BALANCE_OUTSIDE_CONSTRAINTS",
              "EDITING_DATE_NOT_IN_CENTER_MEETING_DAY",
              "CUSTOM_MADE_INSTALLMENT_ADDED_BEFORE_PAID_INSTALLMENT",
              "EDITING_REPAYMENTS_NOT_ALLOWED",
              "INTEREST_BALANCE_CANT_BE_EDITED_AT_SPECIFIED_DATE",
              "INVALID_DUE_DATE",
              "NEGATIVE_BALANCE",
              "NON_POSITIVE_TOTAL_BALANCE",
              "PARAMS_INCONSISTENT_WITH_PRODUCT_RULES",
              "INVALID_GRACE_PERIOD",
              "INVALID_ANTICIPATED_DISBURSEMENT",
              "INVALID_REPAYMENT_FREQUENCY",
              "INVALID_PRINCIPAL_REPAYMENT_INVERVAL",
              "INVALID_PRODUCT_STATE",
              "BALLOON_PAYMENTS_NOT_ALLOWED_BY_PRODUCT",
              "MANDATORY_PERIODIC_PAYMENT",
              "PERIODIC_PAYMENT_GREATER_THAN_LOAN_AMOUNT",
              "MISSING_INTEREST_RATE_SPREAD_ON_PRODUCT",
              "FIRST_REPAYMENT_DATE_BEFORE_EXPECTED_DISBURSEMENT_DATE",
              "INVALID_PENALTY_RATE",
              "CANNOT_EDIT_SOLIDARITY_LOANS",
              "INVALID_INTEREST_SPREAD",
              "INVALID_PERIODIC_PAYMENT",
              "UNKNOWN_LOAN_ACCOUNT_ERROR",
              "MISSING_GROUP_ID",
              "INVALID_GROUP_ID",
              "INVALID_FULL_DETAILS",
              "INVALID_INDICATORS",
              "GROUP_NOT_FOUND",
              "INVALID_PARAMATERS_FOR_PRODUCT",
              "INVALID_USER_WHO_APPROVED_THE_LOAN_CANNOT_DISBURSE_IT",
              "FOUR_EYES_PRINCIPLE_DISABLED_ON_GENERAL_SETTINGS",
              "USER_WHO_CREATED_OR_EDITED_THE_LOAN_ACCOUNT_CANNOT_APPROVE_IT",
              "INVALID_PRODUCT_CONFIGURATION_FOR_ADJUST_INTEREST_FOR_FIRST_INSTALLMENT_PARAMETER",
              "ADJUST_INTEREST_FOR_THE_FIRST_INSTALLMENT_WHEN_PERIOD_IS_DIFFERENT_THAN_THE_REPAYMENT_PERIOD_FEATURE_TOGGLE_IS_DISABLED",
              "ADJUST_TOTAL_DUE_FOR_INSTALLMENTS_WITH_DIFFERENT_INTERVAL_FEATURE_IS_DISABLED",
              "INVALID_PRODUCT_CONFIGURATION_FOR_ADJUST_TOTAL_DUE_FOR_INSTALLMENTS_WITH_DIFFERENT_INTERVAL_OPTION",
              "INVALID_CONFIGURATION_FOR_USE_INTEREST_ACCRUED_AS_TOTAL_DUE_WHEN_INTERVAL_IS_DIFFERENT_OPTION",
              "INVALID_GROUP_SIZE",
              "MULTIPLE_GROUP_MEMBERSHIP",
              "INVALID_GROUP_ROLE_NAME_KEY",
              "GROUP_ROLE_CLIENT_NOT_GROUP_MEMBER",
              "TRANSACTION_ALREADY_REVERSED",
              "INVALID_TRANSACTION_ID",
              "TRANSACTION_ID_AND_ACCOUNT_MISMATCH",
              "TRANSACTION_LOGGED_FOR_CLOSED_TILL",
              "TILL_BALANCE_ABOVE_MAX",
              "TILL_BALANCE_UNDER_MIN",
              "TRANSACTION_MADE_FROM_A_TRANSFER",
              "TRANSACTION_MADE_FROM_A_DISBURSEMENT",
              "DEPOSIT_ACCOUNT_HAS_MATURITY_DATE_SET",
              "BALANCE_IS_NULL",
              "GUARANTOR_NOT_ALLOWED_BY_PRODUCT",
              "COLLATERAL_NOT_ALLOWED_BY_PRODUCT",
              "CANNOT_CHANGE_TILL_BALANCE",
              "UNEXPECTED_ASYNC_TRANSACTION_ERROR",
              "DEDUCTED_FEES_TOTAL_MORE_THAN_LOAN_AMOUNT",
              "NO_CAPITALIZED_DISBURSEMENT_FESS_WHEN_ZERO_LOAN_AMOUNT",
              "DISBURSE_TO_SAVINGS_NOT_AVALAIBLE_WITH_INVESTOR_FUNDS",
              "TRANSACTION_CHANNEL_IS_MANDATORY",
              "TRANSACTION_CHANNEL_NOT_AVAILABLE_WHEN_DISBURSE_TO_SAVINGS",
              "GUARANTOR_CANNOT_BE_DELETED",
              "CUSTOM_AMOUNT_IS_MANDATORY",
              "INVALID_TRANSACTION_CHANNEL",
              "MISSING_FEE",
              "INCONSISTENT_ACCOUNT_FEE_WITH_PRODUCT_FEE",
              "FULL_TERM_FEE_CANNOT_BE_AMORTIZED_DUE_TO_APPLICATION_DATE",
              "CANNOT_USE_EFFECTIVE_INTEREST_RATE_FEE_WITHOUT_INTEREST_RATE_VALUE",
              "TRANSACTION_DETAILS_NOT_AVAILABLE_FOR_PRODUCT",
              "FEES_NOT_AVAILABLE_FOR_PRODUCT",
              "EXPECTED_DISBURSEMENT_DATE_NOT_AVAILABLE_FOR_PRODUCT",
              "FIRST_REPAYMENT_DATE_NOT_AVAILABLE_FOR_PRODUCT",
              "LOAN_PRODUCT_PREPAYMENT_OPTIONS_MISMATCH",
              "INVALID_LAST_REPAYMENT_DUE_DATE_CHANGE_BECAUSE_ACCOUNT_HAS_FULL_TERM_FEE_APPLIED",
              "INVALID_HOLIDAY_SETUP",
              "REDRAW_DISABLED",
              "INSUFFICIENT_REDRAW_BALANCE",
              "INVALID_FEES_DETAILS",
              "PRODUCT_DOES_NOT_ALLOW_WITHDRAWAL_TRANSACTIONS",
              "EXCESS_PAYMENT_MADE_AMOUNT",
              "PRODUCT_DOES_NOT_ALLOW_PAYMENT_MADE_TRANSACTIONS",
              "MISSING_FEE_KEY",
              "INVALID_FEE_KEY",
              "INCONSISTENT_FEE_AMOUNT_WITH_PRODUCT_FEE",
              "FEE_AMOUNT_MUST_BE_STRICTLY_POSITIVE",
              "REQUIRED_FEE_MISSING",
              "FEE_NOT_ACTIVE",
              "FEE_NOT_ALLOWED",
              "INCONSISTENT_FIRST_REPAYMENT_DATE_WITH_PRODUCT_OFFSET",
              "MISSING_ORIGINAL_TRANSACTION_ID",
              "NEGATIVE_LOAN_BALANCE",
              "REPAYMENT_WAS_FULLY_PAID",
              "REPAYMENT_HAS_INTEREST_APPLIED",
              "DUE_DATE_BEFORE_ACCOUNTING_CLOSURE",
              "DUE_DATE_BEFORE_LOGGED_TRANSACTION",
              "INVALID_PARENT_ACCOUNT_KEY",
              "AUTOMATICALLY_ADDED_INSTALLEMENTS_ARE_NOT_EDITABLE",
              "PURE_GRACE_INSTALLMENT_ARE_NOT_EDITABLE",
              "CUSTOM_PAYMENT_NOT_ALLOWED_BY_PRODUCT",
              "SAME_CUSTOM_PAYMENT_AMOUNT_TYPE_USED_MULTIPLE_TIMES",
              "CUSTOM_PAYMENT_AMOUNT_DIFFERENT_THAN_TOTAL_PAYMENT_AMOUNT",
              "ARREARS_TOLERANCE_PERIOD_OUTSIDE_CONSTRAINTS",
              "NEGATIVE_ARREARS_TOLERANCE_PERIOD",
              "REQUIRED_ARREARS_TOLERANCE_PERIOD_MISSING",
              "DUE_DATE_BEFORE_FEE_AMORTIZATION",
              "MAX_CLIENT_LIMIT_REACHED",
              "PENALTY_METHOD_NOT_ALLOWED_BY_PRODUCT",
              "CANNOT_REVERSE_TECHNICAL_OVERDRAFT",
              "INSUFFICIENT_BALANCE",
              "INVALID_PRODUCT_TYPE",
              "DUPLICATE_DISBURSEMENT_FEE",
              "NO_DUE_AMOUNT_TO_BE_PAID",
              "INVALID_AMORTIZATION_PERIOD",
              "UNKNOWN_GROUP_ERROR",
              "MISSING_CLIENT_ID",
              "INVALID_CLIENT_ID",
              "INVALID_CLIENT_KEY",
              "INVALID_PICTURE_KEY",
              "INVALID_SIGNATURE_KEY",
              "INVALID_CLIENT_STATE",
              "INVALID_CLIENT_ROLE_KEY",
              "INCONSISTENT_CLIENT_ROLE_WITH_CLIENT_TYPE",
              "INVALID_DEPENDENT_CUSTOM_FIELD_VALUE",
              "INVALID_BIRTH_DATE",
              "DUPLICATE_CLIENT",
              "INVALID_CLIENT_STATE_TYPE",
              "INVALID_CLIENT_STATE_TRANSITION",
              "CLIENT_IS_MEMBER_OF_A_GROUP",
              "CLIENT_IS_GUARANTOR",
              "CLIENT_HAS_ACCOUNTS",
              "CLIENT_ID_ALREADY_IN_USE",
              "GROUP_ID_ALREADY_IN_USE",
              "GROUP_HAS_ACCOUNTS",
              "MISSING_CLIENT_BASIC_DETAILS",
              "EMAIL_ADDRESS_SIZE_INVALID",
              "UNKNOWN_CLIENT_ERROR",
              "INVALID_SAVINGS_ACCOUNT_ID",
              "BALANCE_BELOW_ZERO",
              "MISSING_SAVINGS_ID",
              "BACKDATE_BEFORE_ACTIVATION",
              "BACKDATE_BEFORE_OTHER_OPERATION",
              "BACKDATE_SET_IN_THE_FUTURE",
              "INVALID_DEPOSIT_AMOUNT",
              "INVALID_DEPOSIT_ACCOUNT_STATE",
              "LOCKED_SAVINGS_AMOUNT",
              "SAVINGS_PRODUCT_MISMATCH",
              "SAVINGS_ACCOUNT_INVALID",
              "ACCOUNT_ID_ALREADY_IN_USE",
              "PRODUCT_DOESNT_ALLOW_WITHHOLDING_TAXES",
              "INVALID_WITHHOLDING_TAX_SOURCE_TYPE",
              "INVALID_INTEREST_CHARGE_FREQUENCY",
              "INVALID_INTEREST_CHARGE_FREQUENCY_COUNT",
              "INVALID_SAVINGS_ACCOUNT_STATE_TRANSITION",
              "MAXIMUM_WITHDRAWAL_AMOUNT_EXCEEDED",
              "MAXIMUM_OVERDRAFT_LIMIT_EXCEEDED",
              "OVERDRAFT_NOT_ALLOWED",
              "MISSING_INTEREST_RATE_FROM_SAVINGS_PRODUCT",
              "POSITIVE_SECURED_AMOUNT",
              "MINIMUM_OPENING_BALANCE_ACHIEVED",
              "ACCOUNT_HAS_TRANSACTIONS",
              "INVALID_OVERDRAFT_INTEREST_CHARGE_FREQUENCY",
              "INVALID_OVERDRAFT_INTEREST_CHARGE_FREQUENCY_COUNT",
              "RECOMMENDED_DEPOSIT_AMOUNT_INVALID",
              "MISSING_TYPE_PARAMETER",
              "INVALID_DEPOSIT_ACCOUNT_ID",
              "PRODUCT_SPECIFIES_OVERDRAFT_ALLOWED",
              "PRODUCT_SPECIFIES_OVERDRAFT_NOT_ALLOWED",
              "CURRENT_ACCOUNT_PRODUCT_DISABLED",
              "FIXED_DEPOSIT_PRODUCT_DISABLED",
              "COLLATERAL_FEATURE_DISABLED",
              "CREDIT_OFFICER_DISABLED",
              "DATA_EXPORT_DISABLED",
              "MAX_WITHDRAWAL_CANNOT_BE_NEGATIVE",
              "WITHHOLDING_TAXES_DISABLED",
              "FUNDING_SOURCE_DISABLED",
              "RESET_DATA_DISABLED",
              "SOLIDARITY_GROUP_DISABLED",
              "SAVINGS_PLAN_DISABLED",
              "SAVINGS_ACCOUNT_DISABLED",
              "REVOLVING_CREDIT_DISABLED",
              "INDICATORS_DISABLED",
              "FIXED_TERM_LOAN_DISABLED",
              "FLAT_INTEREST_DISABLED",
              "EFFECTIVE_INTEREST_RATE_DISABLED",
              "RISK_REPORTING_DISABLED",
              "WITHDRAWAL_PAST_OVERDRAFT_CONSTRAINTS",
              "INTEREST_FREE_LOAN_DISABLED",
              "MISSING_DEPOSIT_ID",
              "INVALID_DEPOSIT_ACCOUNT_NAME",
              "INTEREST_RATE_REVIEW_UNIT_NOT_AVAILABLE_FOR_FIXED_INTEREST_SOURCE",
              "INTEREST_RATE_REVIEW_COUNT_NOT_AVAILABLE_FOR_FIXED_INTEREST_SOURCE",
              "DEPOSIT_PRODUCT_IS_LINKED_BY_LOAN_PRODUCT",
              "ACTIVATION_DATE_BEFORE_INTEREST_SET_EXTERNALLY_START_DATE",
              "BACKDATE_EXCEEDS_PROFIT_SHARING_LIMIT",
              "INVALID_REVOLVING_SETTINGS",
              "INTEREST_ACCOUNT_SETTINGS_AVAILABILITY_NOT_FOUND",
              "INVALID_ACCOUNT_OWNERSHIP_TRANSFER",
              "INVALID_OPERATION_ON_TRANSFERRED_ACCOUNT",
              "UNKNOWN_SAVINGS_ACCOUNT_ERROR",
              "TRANSFER_CANT_BE_MADE",
              "CANNOT_MAKE_TRANSFER_TO_SOURCE_ACCOUNT",
              "INVALID_TARGET_ACCOUNTING_STATE",
              "INVALID_TARGET_ACCOUNTING_CURRENCY",
              "TRANSFER_AMOUNT_IS_NOT_POSITIVE",
              "INVALID_PRODUCT_ID",
              "TRANSFER_AS_POSTDATED_PAYMENT",
              "UNDEFINED_EXCHANGE_RATE_FOR_CURRENCY",
              "INVALID_PRODUCT_KEY",
              "CANNOT_MAKE_TRANSFER_TO_FUNDED_ACCOUNTS_WITH_ACCOUNTING_ENABLED",
              "LINKED_ACCOUNT_DELETION_ERROR",
              "ACCOUNT_HAS_REMAINING_BALANCE",
              "CANNOT_DISBURSE_LOCKED_ACCOUNTS",
              "DISBURSEMENT_DATE_AFTER_LAST_REPAYMENT_DUE_DATE",
              "INTEREST_RATE_NOT_AVAILABLE_FOR_INDEXED_RATES",
              "INTEREST_SPREAD_NOT_AVAILABLE_FOR_FIXED_RATES",
              "TRANCHES_EXPECTED_DISBURSMENT_DATES_NOT_ORDERED",
              "TRANCHES_NOT_ALLOWED",
              "TRANCHES_NOT_DEFINED",
              "MORE_TRANCHES_THAN_ALLOWED",
              "TOTAL_TRANCHES_AMOUNT_MORE_THAN_LOAN_AMOUNT",
              "TOTAL_AMOUNT_NOT_EQUAL_WITH_LOAN_AMOUNT",
              "TRANCHE_AMOUNT_SHOULD_BE_STRICT_POSITIVE",
              "INVALID_TRANCHE_KEY",
              "CANNOT_MODIFY_DISBURSED_TRANCHE",
              "DISBURSEMENT_DATE_BEFORE_NOT_REVERSED_TRANSACTION",
              "CANNOT_MODIFY_TRANCHES_ON_RESCHEDULED_REFINANCED_ACCOUNTS",
              "ALL_TRANCHES_ALREADY_DISBURSED",
              "TRANCHES_CANNOT_BE_EDITED",
              "INTEREST_RATE_SHOULD_BE_ZERO_OR_EMPTY",
              "INTEREST_SPREAD_SHOULD_BE_ZERO_OR_EMPTY",
              "INCONSISTENT_DATE_WITH_NEXT_TRANCHE",
              "INTEREST_RATE_CANNOT_BE_EDITED_FOR_TIERED_INTEREST_RATES",
              "INTEREST_SPREAD_CANNOT_BE_EDITED_FOR_TIERED_INTEREST_RATES",
              "INVALID_INTEREST_RATE_TIERS",
              "INVALID_OVERDRAFT_INTEREST_RATE_TIERS",
              "NEGATIVE_LOCKED_BALANCE",
              "PAY_OFF_INVALID_INTEREST_PAID",
              "PAY_OFF_INVALID_FEES_PAID",
              "PAY_OFF_INVALID_PENALTY_PAID",
              "INTEREST_TYPE_NOT_ALLOWED",
              "MISSING_CONTRACT",
              "MISSING_TRANCHE",
              "MISSING_TRANCHE_FEE",
              "CANNOT_ADD_NEW_TRANCHE",
              "INVALID_GL_ACCOUNT_ID",
              "INVALID_GL_ACCOUNT_TYPE",
              "JOURNAL_ENTRY_BEFORE_CLOSURE",
              "DEBITS_DO_NOT_MATCH_CREDITS",
              "JOURNAL_ENTRY_DATE_NOT_DEFINED",
              "GL_ACCOUNT_IS_HEADER",
              "GL_ACCOUNT_DOES_NOT_SUPPORT_MANUALLY_ENTRIES",
              "NO_INTER_BRANCH_GL_ACCOUNT",
              "INVALID_JOURNAL_TRANSACTION_ID",
              "DUPLICATE_JOURNAL_TRANSACTION_ID",
              "INVALID_ACCOUNTING_DATE_ORDER",
              "INVALID_ACCOUNTING_DATE_RANGE",
              "JOURNAL_ENTRY_DATE_IN_THE_FUTURE",
              "JOURNAL_ENTRY_DATE_IN_THE_PAST_BEFORE_THE_ALLOWED_LIMIT",
              "INVALID_BOOKING_DATE",
              "BOOKING_DATE_BEFORE_VALUE_DATE",
              "FROM_CURRENCY_NOT_DEFINED",
              "FROM_CURRENCY_IS_NOT_BASE_CURRENCY",
              "FROM_CURRENCY_DOES_NOT_EXIST",
              "CURRENCY_SHOULD_BE_DIFFERENT_THEN_ORGANISATION_BASE_CURRENCY",
              "START_DATE_SHOULD_BE_AFTER_LAST_ACCOUNTING_RATE",
              "RATE_SHOULD_BE_POSITIVE",
              "FUTURE_START_DATE_NOT_ALLOWED",
              "ACCOUNTING_IN_MULTICURRENCY_SHOULD_BE_ENABLED",
              "GL_JOURNAL_ENTRIES_USING_PREV_ACCOUNTING_RATE_SHOULD_NOT_EXISTS",
              "ACCOUNTING_REPORT_NOT_FOUND",
              "GL_ACCOUNT_CODE_IS_NOT_UNIQUE",
              "INVALID_CURRENCY_CODE",
              "CURRENCY_NOT_MATCHING",
              "ACCOUNT_CURRENCY_NOT_MATCH",
              "MISSING_CURRENCY",
              "INVALID_EXCHANGE_RATE_VALUE",
              "INCONSISTENT_START_DATE_WITH_TRANSACTIONS",
              "BUY_RATE_GREATER_THAN_SELL_RATE",
              "RATE_NOT_SET",
              "RATE_TO_SAME_CURRENCY",
              "DATE_BEFORE_LAST_RATE_DATE",
              "START_DATE_IN_FUTURE",
              "DATE_ON_LAST_RATE_DATE",
              "DELETE_BASE_CURRENCY",
              "CURRENCY_ASSOCIATED_WITH_TRANSACTION",
              "CURRENCY_USED_IN_PRODUCT_OR_GL_ACCOUNT",
              "UNDEFINED_ACCOUNTING_RATE_FOR_CURRENCY",
              "ACCOUNTING_TRANSACTION_CHANNEL_CURRENCY_MISMATCH",
              "ACCOUNTING_CURRENCIES_NOT_MATCHING",
              "TRANSACTION_AND_ACCOUNT_CURRENCY_MISMATCH",
              "CURRENCY_NOT_FOUND",
              "INVALID_USER_NAME",
              "INVALID_USER_ID",
              "INVALID_CREDIT_OFFICER_KEY",
              "INCONSISTENT_CREDIT_OFFICER_WITH_BRANCH",
              "MISSING_CREDIT_OFFICER_KEY",
              "MISSING_BRANCH_KEY",
              "MISSING_CENTRE_KEY",
              "INVALID_USER_ROLE_KEY",
              "USER_IS_LOCKED",
              "INVALID_PASSWORD",
              "EMAIL_ADDRESS_ALREADY_REGISTERED_WITH_ANOTHER_USER",
              "EMAIL_ADDRESS_FORMAT_IS_INVALID",
              "USERNAME_ALREADY_EXISTS",
              "MAX_USER_LIMIT_REACHED",
              "CANNOT_MANAGE_USER_BRANCH",
              "NOT_ENOUGH_PRIVILDGES_FOR_CHANGING_USER_SETTINGS",
              "ONLY_ONE_ROLE_ALLOWED",
              "INVALID_TRANSACTION_LIMIT_TYPE",
              "NOT_ENOUGH_PRIVILEDGES_TO_CREATE_ADMIN_USER",
              "CANNOT_HAVE_NEGATIVE_TRANSACTION_LIMITS",
              "INVALID_VALUE_FOR_MANAGED_BRANCHES",
              "CANNOT_HAVE_ADMIN_WITHOUT_FULL_BRANCHES_ACCESS",
              "CANNOT_HAVE_OFFICER_ADMIN_WITHOUT_MANAGE_OTHER_ENTITIES_ACCESS",
              "INCONSISTENT_CAN_MANAGE_BRANCHES_WITH_CAN_MANAGE_ENTITIES",
              "MISSING_EMAIL_ADDRESS",
              "MISSING_MOBILE_PHONE",
              "CANNOT_UPDATE_INACTIVE_OR_LOCKED_USERS",
              "ROLE_AND_ACCESS_MISMATCH",
              "MISSING_ACCESS_RIGHTS",
              "PHONE_NUMBER_IS_MISSING",
              "TWO_FACTOR_AUTHENTICATION_NOT_AVAILABLE",
              "EDIT_USERNAME_BY_NON_ADMIN",
              "INVALID_ACCESS_RIGHTS",
              "MISSING_ASSIGNED_BRANCH",
              "CANNOT_DELETE_LAST_USER",
              "CANNOT_DEACTIVATE_LAST_USER",
              "CANNOT_HAVE_ADMIN_WITHOUT_MAMBU_ACCESS",
              "CANNOT_UPDATE_FEDERATED_USER",
              "CANNOT_UPDATE_SUPPORT_USER",
              "CANNOT_CHANGE_ROLE_FOR_FEDERATED_USER",
              "CANNOT_LOCK_USER_FROM_API",
              "CANNOT_DELETE_SUPPORT_USER_BY_REGULAR_USER",
              "CANNOT_DELETE_ADMIN_USER",
              "CANNOT_DELETE_USER_WITH_PERFORMED_ACTIVITIES",
              "CANNOT_DELETE_SELF",
              "CANNOT_DEACTIVATE_SELF",
              "CANNOT_UPDATE_DELIVERY_USER",
              "CANNOT_DELETE_DELIVERY_USER_BY_REGULAR_USER",
              "CANNOT_DELETE_USED_USER",
              "CANNOT_CHANGE_BRANCH_IN_FEDERATED_CONTEXT",
              "INVALID_BRANCH_ID",
              "INVALID_BRANCH_KEY",
              "INVALID_MANAGED_BRANCH_ID",
              "BRANCH_IS_NOT_ACTIVE",
              "EMPTY_BRANCH_NAME",
              "ENCODED_KEY_NOT_NULL",
              "INVALID_CENTRE_KEY",
              "INVALID_CENTRE_ID",
              "INCONSISTENT_CENTRE_WITH_BRANCH",
              "CENTRE_IS_NOT_ACTIVE",
              "INCONSISTENT_VALUE_WITH_CUSTOM_FIELD_TYPE",
              "REQUIRED_CUSTOM_FIELD_MISSING",
              "INVALID_CUSTOM_FIELD_ID",
              "MAX_CUSTOM_FIELD_VALUE_LENGTH_EXCEEDED",
              "INVALID_CUSTOM_FIELD_ENTITY_KEY",
              "VIEW_TYPE_NOT_MATCHING_RESOURCE",
              "VIEW_NOT_ACCESSIBLE_FOR_USER",
              "CUSTOM_FIELD_DEACTIVATED",
              "CUSTOM_FIELD_REQUIRED",
              "CUSTOM_FIELD_NOT_AVAILABLE_FOR_ENTITY",
              "INVALID_CUSTOM_FIELD_LINKED_ENTITY_KEY",
              "DEPENDENT_CUSTOM_FIELD_VALUE_REQUIRED",
              "INCONSISTENT_VALUE_WITH_SET_TYPE",
              "GROUPED_INDEXES_NOT_CONSECUTIVE",
              "TO_MANY_VALUES_FOR_SAME_GROUPED_CUSTOM_FIELD",
              "INVALID_CUSTOM_FIELD_GROUP_INDEX",
              "INCONSISTENT_CUSTOM_FIELD_VALUE_WITH_PATTERN",
              "DUPLICATE_CUSTOM_FIELD_VALUES",
              "CUSTOM_FIELD_SET_CHANGE_NOT_ALLOWED",
              "CUSTOM_FIELD_SET_NULL",
              "CUSTOM_FIELD_USAGE_CHANGE_NOT_ALLOWED",
              "DATATYPE_OR_TYPE_CHANGED",
              "CUSTOM_FIELD_NAME_NOT_UNIQUE",
              "ENCODED_KEY_MUST_BE_EMPTY_ON_CREATE",
              "CUSTOM_FIELDS_NEED_CHANNEL_PROVIDED",
              "DUPLICATE_UNIQUE_VALUE",
              "REFERRED_IN_CUSTOM_FIELD",
              "TRANSACTION_TYPE_NOT_ACCEPTING_CUSTOM_FIELDS",
              "INVALID_CUSTOM_FIELD_KEY",
              "BUILT_IN_CUSTOM_FIELD_CHANGE_NOT_ALLOWED",
              "EITHER_LABEL_ID_OR_LABEL_VALUE_MUST_BE_PROVIDED_FOR_SELECTION",
              "INVALID_SELECTION_ID",
              "INVALID_ID_DOCUMENT",
              "REQUIRED_ID_DOCUMENT_MISSING",
              "ADDING_OTHER_ID_DOCUMENTS_IS_DISABLED",
              "INVALID_ID_DOCUMENT_TEMPLATE_KEY",
              "CORRUPTED_FILE",
              "DOCUMENT_CANNOT_BE_DELETED",
              "INVALID_DOCUMENT_ID",
              "INVALID_FILE_EXTENSION",
              "FILE_EXTENSION_NOT_ALLOWED",
              "INCONSISTENT_EXTENSION_WITH_FILE_CONTENT",
              "MALWARE_CONTENT_DETECTED",
              "INVALID_FILENAME",
              "NO_PROFILE_PICTURE_SET",
              "NO_PROFILE_SIGNATURE_SET",
              "HAS_DOCUMENT_ATTACHED",
              "UNSUPPORTED_IMAGE_TYPE",
              "INVALID_TASK_ID",
              "INVALID_TASK_STATE_AND_COMPLETION_DATE",
              "INVALID_TASK_FIELD_CHANGE",
              "INVALID_TASK_STATUS",
              "INVALID_TASK_TITLE_LENGTH",
              "HAS_TASK_ATTACHED",
              "EDITING_VIEW_TYPE_NOT_ALLOWED",
              "INVALID_CUSTOM_FIELD_SET_ID",
              "TRANSACTION_LINKED_TO_A_REPAYMENT",
              "ANTIVIRUS_NOT_AVAILABLE",
              "INVALID_BACKDATED_TRANSACTION",
              "CUSTOM_FIELD_LIMIT_EXCEEDED",
              "CONCURRENT_UPDATE",
              "MISSING_FROM_DATE",
              "MISSING_TO_DATE",
              "MAXIMUM_ONE_FILTER_ALLOWED",
              "TILL_BALANCE_OUTSIDE_CONSTRAINTS",
              "TRANSACTION_IS_NOT_WITHIN_CHANNEL_CONSTRAINTS",
              "INVALID_ADDRESS",
              "CLIENT_ROLE_DOES_NOT_ALLOW_ADDRESS",
              "ADDRESS_CHANGE_NOT_ALLOWED",
              "INVALID_ADDRESS_LINE1",
              "INVALID_ADDRESS_LINE2",
              "INVALID_CITY",
              "INVALID_REGION",
              "INVALID_POSTCODE",
              "INVALID_COUNTRY",
              "DATA_IMPORT_IN_PROGRESS",
              "DATABASE_BACKUP_IN_PROGRESS",
              "DATABASE_BACKUP_NOT_FOUND",
              "CLIENT_IN_MIGRATION",
              "INVALID_NUMBER_OF_SHEETS",
              "UNDEFINED_SHEET",
              "WRONG_SHEET_POSITION",
              "INVALID_NUMBER_OF_COLUMNS_FOR_SHEET",
              "UNDEFINED_COLUMN",
              "WRONG_COLUMN_POSITION",
              "INVALID_ASSIGNMENT",
              "INVALID_INDEX_RATE_SOURCE_ID",
              "START_DATE_BEFORE_LAST_INDEX_REVIEWD_DATE",
              "INVALID_INDEX_RATE_START_DATE",
              "NO_INDEX_RATE_AVAILABLE",
              "NO_TAX_RATE_AVAILABLE",
              "INVALID_INDEX_RATE_SOURCE",
              "INDEX_RATE_SOURCE_IN_USE",
              "NON_TAXABLE_FEE_NOT_ALLOWED",
              "NON_TAXABLE_FEE_NOT_ALLOWED_ON_FIXED_PRODUCT",
              "INVALID_INDEX_RATE_ID",
              "DUPLICATE_INDEX_RATE_ID",
              "DUPLICATE_INDEX_RATE_SOURCE_ID",
              "INCONSISTENT_GROUP_MEMBER_PARENT_KEY",
              "INCONSISTENT_GROUP_MEMBER_ENCODED_KEY",
              "INCONSISTENT_GROUP_ROLE_PARENT_KEY",
              "INCONSISTENT_GROUP_ROLE_ENCODED_KEY",
              "PRODUCT_LINE_OF_CREDIT_AFFILIATION_CONSTRAINT_MISMATCH",
              "DISBURSEMENT_DATE_BEFORE_LINE_OF_CREDIT_START_DATE",
              "MATURITY_DATE_AFTER_LINE_OF_CREDIT_END_DATE",
              "LINE_OF_CREDIT_AMOUNT_EXCEEDED",
              "LINE_OF_CREDIT_REQUIRED_EXCEPTION",
              "OVERDRAFT_EXPIRY_DATE_AFTER_LINE_OF_CREDIT_END_DATE",
              "CANNOT_CREATE_ACCOUNT_WITH_LINE_OF_CREDIT",
              "LINE_OF_CREDIT_REQUIRES_OVERDRAFT_MAX_LIMIT",
              "LINE_OF_CREDIT_REQUIRES_OVERDRAFT_EXPIRY_DATE",
              "INVALID_LINE_OF_CREDIT_ID",
              "ACCOUNT_ALREADY_ON_LINE_OF_CREDIT",
              "INCONSISTENT_LINE_OF_CREDIT_CLIENT_WITH_ACCOUNT_OWNER",
              "ACCOUNT_IS_NOT_PART_OF_LINE_OF_CREDIT",
              "INVALID_LINE_OF_CREDIT_STATE",
              "HAS_LINES_OF_CREDIT",
              "LINE_OF_CREDIT_ID_ALREADY_IN_USE",
              "EXPIRE_DATE_BEFORE_START_DATE",
              "INVALID_CLIENT_ROLE_PERMISSION_FOR_OPENING_LINES_OF_CREDIT",
              "MISSING_LINE_OF_CREDIT_START_DATE",
              "MISSING_LINE_OF_CREDIT_EXPIRE_DATE",
              "MISSING_LINE_OF_CREDIT_AMOUNT",
              "LINE_OF_CREDIT_AMOUNT_NOT_STRICTLY_POSITIVE",
              "INVALID_ACCOUNT_HOLDER_ID",
              "MISSING_ACCOUNT_HOLDER_KEY",
              "MISSING_ACCOUNT_HOLDER_TYPE",
              "ACCOUNT_HOLDER_NOT_FOUND",
              "INVALID_ACCOUNT_HOLDER_STATE",
              "NO_ORGANIZATION_ICON",
              "NO_ORGANIZATION_LOGO",
              "MISSING_TEXT",
              "MAX_TEXT_LENGTH_EXCEEDED",
              "NUM_INSTALLMENTS_NOT_AVAILABLE_FOR_REVOLVING_CREDIT",
              "PRINCIPAL_PAYMENT_INCONSISTENT_WITH_PRODUCT",
              "SCHEDULE_PREVIEW_NOT_AVAILABLE_FOR_REVOLVING_CREDIT",
              "AMOUNT_MORE_THAN_CURRENT_AVAILABLE_AMOUNT",
              "INCONSISTENT_WITH_CENTRE_MEETING_DAY",
              "FIELD_IS_NOT_EDITABLE",
              "RESCHEDULED_REPAYMENT_BEFORE_DISBURSEMENT_DATE",
              "INVALID_DISBURSEMENT_DATE_FOR_REVOLVING_PRODUCT",
              "FIELD_NOT_ALLOWED",
              "OPERATION_NOT_ALLOWED_ON_FIELD",
              "INVALID_FILTER_VALUES",
              "INVALID_FILTER_SELECTION",
              "INVALID_FILTER_ELEMENT",
              "INVALID_FILTER_VALUE",
              "INVALID_FILTER_SECOND_VALUE",
              "TOO_MANY_FILTERS_PROVIDED",
              "INVALID_FILTER_DATA_ITEM_TYPE",
              "INSUFFICIENT_FUNDS_ACCOUNT_BALANCE",
              "INSUFFICIENT_FUNDS_TOTAL_AMOUNT",
              "FUNDS_NOT_ALLOWED",
              "FUNDING_AMOUNT_MUST_BE_STRICTLY_POSITIVE",
              "FUNDER_INTEREST_COMMISSION_CONSTRAINTS_VALIDATION",
              "MISSING_FUNDER_INTEREST_COMMISSION",
              "INVALID_FUND_ENCODED_KEY",
              "INVESTORS_TOTAL_AMOUNT_MORE_THAN_LOAN_AMOUNT",
              "INVALID_FUND_ID",
              "INACTIVE_FUND_ID",
              "INVALID_FUNDED_ACCOUNT_STATE",
              "FUND_SELL_WITH_NO_PURCHASES",
              "FUND_OVERSELL",
              "INVALID_SELLER_FUND_AMOUNT",
              "INVALID_SELLER_FUND_STATE",
              "INVALID_SELLER_FUNDING_ACCOUNT",
              "INVALID_INVESTMENT_PERCENTAGES_FOR_AMOUNTS",
              "FUND_SELF_SELL",
              "INVALID_BUYER_FUNDING_ACCOUNT",
              "DUPLICATE_BUYER_FUNDING_ACCOUNT",
              "INVALID_BUYER_FUND_AMOUNT",
              "INVALID_FUND_PURCHASE_PRICE",
              "INSUFFICIENT_BUYER_FUNDING_ACCOUNT_FUNDS",
              "LOAN_ACCOUNT_NOT_FUNDED_BY_SAVINGS_ACCOUNT",
              "INVALID_INTEREST_RATE_AGAINST_INTEREST_COMMISSION",
              "INVALID_SAVINGS_ACCOUNT_TYPE_FOR_FUNDING",
              "DUPLICATED_SAVINGS_ACCOUNT_FOR_FUNDING",
              "INVALID_FIXED_DAYS_OF_MONTH",
              "INVALID_SORTING_COLUMN",
              "COLUMN_NOT_SORTABLE",
              "INVALID_SORTING_ORDER",
              "ACCOUNT_TYPE_DOES_NOT_ALLOW_FIELD",
              "INVALID_GUARANTY_ENCODED_KEY",
              "INVALID_GUARANTY_TYPE",
              "INVALID_GUARANTOR_TYPE",
              "GUARANTY_KEY_TYPE_MISMATCH",
              "LOAN_ACCOUNT_NOT_FUNDED_BY_DEPOSIT_ACCOUNT",
              "ORIGINAL_AMOUNT_AND_ORIGINAL_CURRENCY_NOT_ALLOWED",
              "INVALID_TEMPLATE_ID",
              "INVALID_TEMPLATE_TYPE",
              "MISSING_FIXED_DAYS_OF_MONTH",
              "FIXED_DAYS_OF_MONTH_NOT_ALLOWED",
              "REPAYMENT_FREQUENCY_NOT_ALLOWED",
              "REPAYMENT_PERIOD_COUNT_NOT_ALLOWED",
              "APPLIED_INTEREST_BALANCE_CANNOT_BE_REALLOCATED",
              "INVALID_NEW_TOTAL_LOAN_AMOUNT",
              "NEGATIVE_WRITE_OFF_AMOUNT",
              "POSITIVE_REDRAW_BALANCE_WITH_DUE_INSTALLMENTS",
              "CAPITALIZED_AMOUNTS_NOT_ALLOWED_DUE_TO_DIFFERENT_ACCOUNTING",
              "TOP_UP_AMOUNT_IS_MANDATORY",
              "RESTRUCTURE_DETAILS_ARE_MANDATORY",
              "NEGATIVE_TOP_UP_AMOUNT",
              "WRITE_OFF_AMOUNT_MORE_THAN_BALANCE_AMOUNT",
              "CANNOT_REFINANCE_REVOLVING_CREDIT_LOAN",
              "POSITIVE_CAPITALIZED_AMOUNTS_FOR_LOAN_FUNDED_NOT_ALLOWED",
              "WRITE_OFF_AMOUNT_FOR_LOAN_FUNDED_DIFFERENT_BY_BALANCE_AMOUNT",
              "CURRENCY_NOT_AVAILABLE_FOR_PRODUCT",
              "CURRENCY_NOT_EDITABLE",
              "TELLER_CANNOT_POST_TRANSACTION_IN_MULTI_CURRENCY",
              "NOT_ENOUGH_PRINCIPAL_TO_CONTINUE_FEE_AMORTIZATION",
              "MISSING_TEMPLATE_KEY",
              "TELLER_CANNOT_POST_TRANSACTION_WITHOUT_OPENED_TILL",
              "SETTINGS_ONLY_AVAILABLE_FOR_REVOLVING_CREDIT_ACCOUNTS",
              "INCONSISTENT_FLAT_AMOUNT_WITH_PRODUCT_CONSTRAINTS",
              "INCONSISTENT_PERCENTANGE_WITH_PRODUCT_CONSTRAINTS",
              "AMOUNT_REQUIRED_FOR_FLAT_PRINCIPAL_PAYMENT_METHOD",
              "PERCENTAGE_REQUIRED_FOR_PRINCIPAL_PAYMENT_PERCENTAGE_METHOD",
              "AMOUNT_ONLY_AVAILABLE_FOR_FLAT_PRINCIPAL_PAYMENT_METHOD",
              "PERCENTAGE_ONLY_AVAILABLE_FOR_PRINCIPAL_PERCENTAGE_METHOD",
              "INVALID_PRINCIPAL_PAYMENT_FLAT_AMOUNT_WITH_DECIMALS",
              "INVALID_PRINCIPAL_PAYMENT_PERCENTAGE_VALUE",
              "CANT_EDIT_LOCKED_OPERATIONS_IN_LOCKED_CAPPING_STATE",
              "CANT_UNLOCK_WHEN_INCOME_BALANCE_IS_OVER_PRINCIPAL_CAPPING_CONSTRAINTS",
              "CANNOT_BULK_REVERSE_INTERNAL_TRANSFER_REPAYMENT",
              "CANNOT_BULK_REAPPLY_TRANSACTION_BECAUSE_LOCKED_TRANSACTIONS_LOGGED_AFTER_IT",
              "CANNOT_BULK_REAPPLY_POSTDATED_REPAYMENTS",
              "CANNOT_BULK_REVERSE_ACTIVATION_TRANSACTION",
              "CLOSURE_DATE_AFTER_MAX_ALLOWED_UNDO_CLOSURE_PERIOD",
              "CLOSURE_DATE_BEFORE_GL_ACCOUNT_CLOSURE",
              "MISSING_ORGANIZATION_INTEREST_COMMISSION",
              "INSUFFICIENT_TRANSACTION_AMOUNT",
              "CANNOT_REVERSE_INTEREST_ON_DISBURSEMENT",
              "TRANSACTION_TYPE_IS_IRREVERSIBLE",
              "INTEREST_APPLIED_WITH_NULL_AMOUNT",
              "CANNOT_REVERSE_OFFSET_DEPOSIT_TRANSACTION",
              "CANNOT_LOCK_CAPPING_ACCOUNT_INVALID_ACCOUNT_ID",
              "CANNOT_LOCK_CAPPING_ACCOUNT_INVALID_ACCOUNT_STATE_FOR_LOCK",
              "INCOME_BALANCE_CONSTRAINTS_EXCEEDED",
              "CANNOT_BULK_REVERSE_LOAN_FRACTION_SOLD",
              "LATE_FEE_TRANSACTIONS_LOGGED_AFTER_REPAYMENT_TO_REAPPLY_ON_FIXED_ACCOUNT",
              "INVALID_ORGANIZATION_INTEREST_COMMISSION",
              "ACCOUNT_ALREADY_LOCKED",
              "CANNOT_BULK_ADJUST_ACTIVATION_TRANSACTION",
              "PAYMENT_DUE_FEE_APPLIED_ON_DUE_DATES_TRANSACTIONS_LOGGED_AFTER_REPAYMENT_TO_REAPPLY_ON_FIXED_ACCOUNT",
              "REALLOCATION_CAN_BE_DONE_ONLY_ON_FUTURE_REPAYMENTS",
              "REALLOCATION_NOT_ALLOWED_ON_GRACE_INSTALLMENTS",
              "INVALID_PRINCIPAL_PAYMENT_METHOD",
              "CANT_EDIT_LOCKED_ACCOUNT_DUE_AMOUNT_TYPE",
              "CANT_LOCK_MORTGAGES_ACCOUNT",
              "REPAYMENT_VALUE_CHANGE_NOT_ALLOWED",
              "NON_DYNAMIC_ACCOUNT_INSTALLMENT_DELETION_NOT_ALLOWED",
              "NON_DYNAMIC_ACCOUNT_INSTALLMENT_ADDITION_NOT_ALLOWED",
              "INTEREST_RATE_CHANGED_TRANSACTION_NOT_ALLOWED",
              "INTEREST_RATE_CHANGED_TRANSACTION_NOT_ALLOWED_FOR_LOAN_PRODUCT_TYPE",
              "INSTALLMENT_WITH_INTEREST_APPLIED_CANNOT_BE_EDITED",
              "UNABLE_TO_DETERMINE_DELETED_REPAYMENTS",
              "PAID_OR_PURE_GRACE_INSTALLMENT_CANNOT_BE_DELETED",
              "UNABLE_TO_DELETE_NON_CUSTOM_ADDED_REPAYMENT_FOR_REVOLVING_ACCOUNT",
              "INVALID_NUMBER_OF_INSTALLMENTS",
              "INVALID_PRINCIPAL_AMOUNT_WITH_DECIMALS",
              "INCONSISTENT_WITH_LINE_OF_CREDIT_VALID_UNTIL_DATE",
              "DUE_DATES_NOT_UNIQUE",
              "NON_ZERO_PRINCIPAL_REPAYMENT_CANNOT_BE_DELETED",
              "NON_DYNAMIC_ACCOUNT_REPAYMENT_DELETION_NOT_ALLOWED",
              "INVALID_LOAN_ACCOUNT_STATE_FOR_FUNDS_EDIT",
              "ENTRY_DATE_AFTER_MATURITY_DATE_WITH_LATE_FEES_AND_BULK_REVERSAL",
              "DIFFERENT_ACCOUNTING_STATE_BETWEEN_INVOLVED_PRODUCTS",
              "ACCOUNT_ALREADY_LINKED",
              "PRODUCT_DOES_NOT_ALLOW_LINKING",
              "UNLINKABLE_SAVINGS_PRODUCT",
              "INVALID_SAVINGS_ACCOUNT_HOLDER",
              "LINK_BETWEEN_ACCOUNTS_DOES_NOT_EXIST",
              "NON_NATIVE_GRACE_INSTALLMENT_CANNOT_BE_EDITED",
              "NON_NATIVE_GRACE_INSTALLMENT_CANNOT_BE_DELETED",
              "INSUFFICIENT_ACCOUNT_BALANCE",
              "INVALID_SAVINGS_ACCOUNT_TYPE",
              "MATURITY_PERIOD_ALREADY_STARTED",
              "LOAN_PRODUCT_PRINCIPAL_PAID_INSTALLMENT_STATUS_MISMATCH",
              "CANNOT_DELETE_LINK_FOR_ACTIVATED_OFFSET_LOAN",
              "INVALID_LANGUAGE",
              "INVALID_LINKED_SETTLEMENT_ACCOUNT_KEYS",
              "SAVINGS_ACCOUNT_ALREADY_LINKED",
              "INSTALLMENT_WITH_PENALTY_APPLIED_CANNOT_BE_EDITED",
              "INSTALLMENT_DUE_DATE_MOVED_BEFORE_LAST_PENALTY_APPLIED_DATE",
              "MATURITY_PERIOD_NOT_STARTED",
              "INVALID_AMOUNT_WITH_DECIMALS",
              "PAYMENT_HOLIDAY_INVALID_INSTALLMENT_STATE",
              "PAYMENT_HOLIDAYS_ARE_NOT_ALLOWED_FOR_INSTALLMENTS_THAT_ALREADY_HAVE_PAYMENT_HOLIDAYS",
              "PAYMENT_HOLIDAYS_ARE_NOT_ALLOWED_FOR_INSTALLMENTS_THAT_HAVE_INTEREST_APPLIED",
              "PAYMENT_HOLIDAYS_ARE_NOT_ALLOWED_FOR_INSTALLMENTS_THAT_HAVE_FEE_APPLIED",
              "PAYMENT_HOLIDAYS_ARE_NOT_ALLOWED_FOR_INSTALLMENTS_THAT_HAVE_PENALTY_APPLIED",
              "RESEND_FAILED_NOTIFICATION_FAILED",
              "INVALID_NOTIFICATION_MESSAGE_STATE",
              "DUPLICATED_NOTIFICATION_ENCODED_KEY",
              "MAXIMUM_NUMBER_OF_NOTIFICATIONS_TO_RESEND_EXCEEDED",
              "DUE_DATES_NOT_IN_ASCENDING_ORDER",
              "ACCOUNT_PRODUCT_BRANCH_AVAILABILITY_MISMATCH",
              "CLIENT_HAS_ACTIVE_ACCOUNTS_WITH_PRODUCT_BRANCH_AVAILABILITY_MISMATCH",
              "PRODUCT_HAS_ASSOCIATED_ACCOUNTS",
              "MAX_NUMBER_OF_FILTERS_REACHED",
              "MAX_NUMBER_OF_COLUMNS_REACHED",
              "USAGE_RIGHTS_ROLE_NOT_AVAILABLE",
              "CURRENCY_NOT_DEFINED",
              "BASE_CURRENCY_CANNOT_BE_REMOVED",
              "CURRENCY_IN_USE_CANNOT_BE_REMOVED",
              "CURRENCY_DOES_NOT_EXIST",
              "NON_ZERO_INTEREST_PAID_CANNOT_BE_DELETED",
              "INVALID_PRINCIPAL_AMOUNT",
              "INVALID_INSTALLMENT_DUE_DATES_ORDER",
              "INSTALLMENT_DUE_DATE_BEFORE_DISBURSEMENT",
              "INVALID_INSTALLMENT_INDEX",
              "INSTALLMENT_ADDED_BEFORE_INTEREST_APPLIED",
              "ONLY_ONE_INSTALLMENT_PER_OPERATION_FOR_DBEI",
              "MISSING_DUE_DATE_OF_ADDED_INSTALLMENT",
              "INVALID_REMOVED_INSTALLMENT",
              "INSTALLMENT_WITH_PAID_AMOUNTS_CANNOT_BE_REMOVED",
              "INSTALLMENT_ADDED_BEFORE_PAYMENT",
              "CURRENCY_CANNOT_BE_CHANGED",
              "ONLY_ORGANISATION_BASE_CURRENCY_IS_ALLOWED",
              "INVALID_COMMUNICATION_MESSAGE_ENCODED_KEY",
              "INVALID_EMAIL_SUBJECT",
              "CANNOT_ADJUST_OFFSET_DEPOSIT_TRANSACTION",
              "INVALID_CREDIT_ARRANGEMENT_ID",
              "INVALID_CREDIT_ARRANGEMENT_STATE",
              "CREDIT_ARRANGEMENT_ID_ALREADY_IN_USE",
              "INVALID_CLIENT_ROLE_PERMISSION_FOR_OPENING_CREDIT_ARRANGEMENTS",
              "CREDIT_ARRANGEMENT_AMOUNT_NOT_STRICTLY_POSITIVE",
              "PRODUCT_CREDIT_ARRANGEMENT_AFFILIATION_CONSTRAINT_MISMATCH",
              "ACCOUNT_ALREADY_ON_CREDIT_ARRANGEMENT",
              "INCONSISTENT_CREDIT_ARRANGEMENT_CLIENT_WITH_ACCOUNT_OWNER",
              "CREDIT_ARRANGEMENT_REQUIRES_OVERDRAFT_EXPIRE_DATE",
              "CREDIT_ARRANGEMENT_REQUIRES_OVERDRAFT_MAX_LIMIT",
              "CREDIT_ARRANGEMENT_AMOUNT_EXCEEDED",
              "MATURITY_DATE_AFTER_CREDIT_ARRANGEMENT_END_DATE",
              "OVERDRAFT_EXPIRY_DATE_AFTER_CREDIT_ARRANGEMENT_END_DATE",
              "DISBURSEMENT_DATE_BEFORE_CREDIT_ARRANGEMENT_START_DATE",
              "CREDIT_ARRANGEMENT_REQUIRED_EXCEPTION",
              "ACCOUNT_IS_NOT_PART_OF_CREDIT_ARRANGEMENT",
              "CREDIT_ARRANGEMENT_ILLEGAL_PARAMETER_MODIFICATION",
              "CREDIT_ARRANGEMENT_HAS_NON_CLOSED_ACCOUNTS",
              "BASE_CURRENCY_NOT_UNIQUE",
              "CURRENCY_SYMBOL_LENGTH_OUTSIDE_CONSTRAINTS",
              "INEXISTING_CURRENCY_SYMBOL",
              "INVALID_TO_INSTALLMENT_POSITION",
              "INVALID_PMT_VALUE",
              "PAYMENT_PLAN_NOT_AVAILABLE",
              "AT_LEAST_ONE_PERIODIC_PAYMENT_PLAN_MANDATORY",
              "SUM_OF_PERIODIC_PAYMENTS_LESS_OR_EQUAL_WITH_LOAN_AMOUNT",
              "PAYMENT_PLAN_ENTRIES_NOT_ORDERED",
              "INTEREST_RATE_COMPUTATION_ERROR",
              "INVALID_PERIODIC_PAYMENT_ENCODED_KEY",
              "DUPLICATED_PERIODIC_PAYMENT_ENCODED_KEY",
              "INVALID_INTEREST_CHARGE_FREQUENCY_METHOD_MUST_BE_NULL",
              "INVALID_DAYS_IN_YEARS_METHOD_MUST_BE_NULL",
              "PAYMENT_HOLIDAYS_INTEREST_CANT_BE_APPLIED_DURING_HOLIDAY_INSTALLMENTS",
              "PAYMENT_HOLIDAYS_ADJUSTMENT_IS_NOT_ALLOWED_FOR_ACCOUNTS_WITH_PAYMENT_DUE_FEE_APPLIED_ON_DUE_DATES",
              "ACCOUNT_HAS_NO_PAYMENT_HOLIDAYS_ACCRUED_INTEREST",
              "ACCOUNT_HAS_LESS_PAYMENT_HOLIDAY_ACCRUED_INTEREST_THAN_THE_PROVIDED_AMOUNT_TO_APPLY",
              "PAYMENT_HOLIDAYS_ADJUSTMENT_IS_NOT_ALLOWED_FOR_INSTALLMENTS_WITHOUT_PAYMENT_HOLIDAYS",
              "PAYMENT_HOLIDAYS_ADJUSTMENT_IS_NOT_ALLOWED_FOR_INSTALLMENTS_THAT_HAVE_REPAYMENTS_POSTED",
              "PAYMENT_HOLIDAYS_ADJUSTMENT_IS_NOT_ALLOWED_FOR_INSTALLMENTS_THAT_HAVE_INTEREST_APPLIED",
              "PAYMENT_HOLIDAYS_ADJUSTMENT_IS_NOT_ALLOWED_FOR_INSTALLMENTS_THAT_HAVE_FEE_APPLIED",
              "PAYMENT_HOLIDAYS_ADJUSTMENT_IS_NOT_ALLOWED_FOR_INSTALLMENTS_THAT_HAVE_PENALTY_APPLIED",
              "PRODUCT_ID_ALREADY_IN_USE",
              "INVALID_ROUNDING_REPAYMENT_CURRENCY_FOR_PRODUCT",
              "SDK_CLIENT_COULD_NOT_BE_GENERATED",
              "SDK_CLIENT_LANGUAGES_COULD_NOT_BE_OBTAINED",
              "MAXIMUM_NUMBER_OF_COMMUNICATION_MESSAGES_TO_RESEND_EXCEEDED",
              "RESEND_FAILED_COMMUNICATON_FAILED",
              "DUPLICATE_ENCODED_KEY",
              "MESSAGE_STATE_MUST_BE_FAILED",
              "NO_MESSAGE_FOUND",
              "MESSAGE_NOT_FOUND",
              "MISSING_ENCODED_KEY",
              "URL_CONTAINS_QUOTES",
              "MISSING_RECIPIENT",
              "RECIPIENT_NOT_ALLOWED",
              "INVALID_CLIENT_RECIPIENT",
              "INVALID_CREDIT_OFFICER_RECIPIENT",
              "INVALID_GROUP_ROLE_RECIPIENT",
              "INVALID_CUSTOM_FIELD_RECIPIENT",
              "INVALID_EVENT",
              "INVALID_TARGET",
              "INVALID_PLACEHOLDER",
              "INVALID_FIELD_LENGTH",
              "INVALID_WEBHOOK_REQUEST_TYPE",
              "URL_CONTAINS_INVALID_PLACEHOLDERS",
              "MESSAGE_BODY_SIZE_EXCEEDS_LIMIT",
              "INVALID_CUSTOM_REQUEST_HEADERS",
              "CARD_REFERENCE_TOKEN_FORMAT_INVALID",
              "CARD_REFERENCE_TOKEN_ALREADY_IN_USE",
              "CARD_REFERENCE_HAS_ASSOCIATED_HOLDS_OR_TRANSACTIONS",
              "CARD_REFERENCE_NOT_FOUND",
              "DUPLICATE_AUTHORIZATION_HOLD",
              "DUPLICATE_CARD_TRANSACTION",
              "AVAILABLE_BALANCE_BELOW_ZERO",
              "AUTHORIZATION_HOLD_NOT_FOUND",
              "INVALID_AUTHORIZATION_HOLD_STATE",
              "CARD_TRANSACTION_CANNOT_BE_ADJUSTED",
              "TECHNICAL_OVERDRAFT_IS_NOT_ALLOWED_FOR_PRODUCT",
              "CARD_TRANSACTION_NOT_FOUND",
              "CARD_TRANSACTION_MAX_REVERSAL_AMOUNT_EXCEEDED",
              "CARDS_FEATURE_DISABLED",
              "ACCOUNT_AUTHORIZATION_HOLD_NOT_FOUND",
              "INVALID_CUSTOM_EXPIRATION_PERIOD",
              "INVALID_ACCOUNT_TYPE_FOR_CARD_OPERATION",
              "INVALID_HOLD_STATUS_VALUE",
              "INVALID_CARD_TOKEN",
              "INSUFFICIENT_ACCOUNT_HOLD_BALANCE",
              "PRODUCT_MUST_BE_ACTIVE",
              "TARGET_AMOUNT_IS_NEGATIVE",
              "MAX_WITHDRAWAL_AMOUNT_OUTSIDE_CONSTRAINTS",
              "ACCOUNT_HOLDER_KEY_INVALID",
              "ACCOUNT_HOLDER_TYPE_INVALID",
              "INVALID_WITHHOLDING_TAX_SOURCE_KEY",
              "INTEREST_RATE_OUTSIDE_CONSTRAINTS",
              "INVALID_INTEREST_PAYMENT_POINT",
              "INVALID_INTEREST_PAYMENT_DATES",
              "REQUIRED_OVERDRAFT_INTEREST_RATE",
              "REQUIRED_OVERDRAFT_EXPIRY_DATE",
              "REQUIRED_OVERDRAFT_LIMIT",
              "DEPOSIT_ACCOUNT_FIELD_NOT_EDITABLE",
              "DEPOSIT_PRODUCT_MISMATCH",
              "ACCOUNT_TYPE_DOES_NOT_ALLOW_RECOMMENDED_DEPOSIT_AMOUNT",
              "ACCOUNT_TYPE_DOES_NOT_ALLOW_MAX_WITHDRAWAL_AMOUNT",
              "ACCOUNT_TYPE_DOES_NOT_ALLOW_TARGET_AMOUNT",
              "REQUIRED_INTEREST_RATE",
              "INTEREST_RATE_SHOULD_BE_NULL",
              "OVERDRAFT_INTEREST_RATE_SHOULD_BE_NULL",
              "OVERDRAFT_INTEREST_SPREAD_SHOULD_BE_NULL",
              "INVALID_ACCOUNT_TYPE",
              "INVALID_ACCOUNT_KEY",
              "INTEREST_RATE_SHOULD_BE_ZERO_FOR_DEPOSIT_ACCOUNTS_WITH_EXTERNAL_INTEREST",
              "UNABLE_TO_RECALCULATE_SCHEDULE",
              "UNABLE_TO_APPRAISE_LOAN_ACCOUNT",
              "TRANSACTION_MADE_BY_A_DISBURSEMENT_FEE",
              "INVALID_TARGET_ACCOUNT_TYPE",
              "NEGATIVE_TARGET_ACCOUNT_BALANCE",
              "ZERO_DISBURSE_AMOUNT",
              "INVESTOR_FUNDED_LOAN_ACCOUNT",
              "INVALID_TARGET_ACCOUNT_HOLDER_KEY",
              "TRANSFER_NOTES_LENGTH_EXCEEDS_MAXIMUM_SIZE",
              "CANNOT_MAKE_TRANSFER_FOR_FOREIGN_CURRENCY_IF_ACCOUNTING_ENABLED",
              "CARD_TRANSACTION_INVALID_REVERSAL_AMOUNT",
              "INVALID_AMORTIZATION_PROFILE",
              "AMORTIZATION_PROFILE_NOT_ALLOWED",
              "INVALID_AMORTIZATION_FREQUENCY",
              "INVALID_AMORTIZATION_FREQUENCY_CUSTOM_INTERVAL_PERIOD_COUNT",
              "INVALID_AMORTIZATION_SETTINGS",
              "AMORTIZATION_FREQUENCY_CUSTOM_INTERVAL_TOTAL_STEPS_NOT_ALLOWED",
              "AMORTIZATION_FREQUENCY_CUSTOM_INTERVAL_PERIOD_UNIT_NOT_ALLOWED",
              "AMORTIZATION_FREQUENCY_CUSTOM_INTERVAL_PERIOD_COUNT_NOT_ALLOWED",
              "INVALID_AMORTIZATION_FREQUENCY_CUSTOM_INTERVAL_TOTAL_STEPS",
              "INVALID_AMORTIZATION_FREQUENCY_CUSTOM_INTERVAL_PERIOD_UNIT",
              "AMORTIZATION_SETTINGS_NOT_ALLOWED",
              "INVALID_INTEREST_RATE_TERMS",
              "TRANSACTION_DISBURSEMENT_DATE_DOES_NOT_MATCH_WITH_TRANCH_EXPECTED_DATE",
              "DUPLICATE_TRANSACTION_CHANNEL_NAME",
              "DUPLICATE_TRANSACTION_CHANNEL_ID",
              "TRANSACTION_CHANNEL_ID_CONTAINS_SPACES",
              "INVALID_TRANSACTION_CHANNEL_LOAN_CONSTRAINTS",
              "INVALID_TRANSACTION_CHANNEL_SAVINGS_CONSTRAINTS",
              "INVALID_TRANSACTION_CHANNEL_ACCOUNT_USAGE",
              "CANNOT_DELETE_DEFAULT_TRANSACTION_CHANNEL",
              "TRANSACTION_CHANNEL_IN_USE",
              "TRANSACTION_CHANNEL_CANNOT_BE_DEACTIVATED",
              "INCONSISTENT_TRANSACTION_USER_KEY_WITH_ACCOUNT_USER",
              "INCONSISTENCY_BETWEEN_CHANNEL_KEY_AND_ID",
              "INCONSISTENT_TRANSACTION_PRODUCT_KEY_WITH_ACCOUNT_PRODUCT",
              "DUPLICATE_ID",
              "DUPLICATE_NAME",
              "ID_CONTAINS_SPACES",
              "INVALID_EXTERNAL_ID",
              "EXTERNAL_ID_ALREADY_EXISTS",
              "INVALID_ASSIGNMENT_FROM_NO_MEETING_DAY",
              "HOLDER_HAS_ACCOUNTS_IN_DIFFERENT_BRANCH_WITH_CENTRE_OR_CREDITOFFICER_MISMATCH",
              "ACCOUNT_ALREADY_DISBURSED",
              "ACCOUNT_APPROVED_AMOUNT_HAS_BEEN_EXCEEDED",
              "AMORTIZATION_FREQUENCY_INTERVAL_TYPE_NOT_ALLOWED",
              "AMORTIZATION_FREQUENCY_INTERVAL_COUNT_NOT_ALLOWED",
              "INVALID_AMORTIZATION_FREQUENCY_INTERVAL_TYPE",
              "INVALID_AMORTIZATION_FREQUENCY_PREDEFINED_INTERVALS_UNIT",
              "NEGATIVE_DEFAULT_INTEREST_RATE",
              "NEGATIVE_MIN_INTEREST_RATE",
              "NEGATIVE_MAX_INTEREST_RATE",
              "INVALID_INTEREST_RATE_MIN_MAX_DEFAULT_TUPLE",
              "DEFAULT_MIN_MAX_NOT_AVAILABLE",
              "INTEREST_RATE_TERMS_ARE_READONLY",
              "INTEREST_CALCULATION_BALANCE_METHOD_READONLY",
              "INTEREST_CALCULATION_BALANCE_METHOD_NOT_ALLOWED",
              "INTERNAL_TRANSFER_CANNOT_USE_CUSTOM_FIELDS",
              "INCONSISTENT_FEE_CALCULATION_METHOD_WITH_INCLUDE_FEE_IN_FLOOR_AMOUNT_OPTION_ENABLED",
              "INCONSISTENT_FEE_CALCULATION_METHOD_WITH_TOTAL_BALANCE_OPTION_ENABLED",
              "INCONSISTENT_LATE_REPAYMENT_FEE_TRIGGER_WITH_TOTAL_BALANCE_OPTION_ENABLED",
              "INACTIVE_ACCOUNT_BRANCH",
              "INCONSISTENT_ACCOUNT_BRANCH_ASSOCIATION_CENTRE_OR_CREDITOFFICER_MISMATCH",
              "INVALID_ACCOUNT_BRANCH_ASSIGNMENT_DUE_CENTRE_MEETING_DAY_MISMATCH",
              "CANNOT_CHANGE_LOAN_GROUP_BRANCH_FOR_A_SOLIDARITY_GROUP",
              "CANNOT_CHANGE_LOAN_ACCOUNT_BRANCH_WHEN_RESHEDULE_REFINANCE",
              "INVALID_FEE_APPLICATION",
              "INVALID_FEE_AMORTIZATION_UPON_RESCHEDULE_REFINANCE_OPTION",
              "FEE_AMORTIZATION_UPON_RESCHEDULE_REFINANCE_OPTION_IS_MANDATORY",
              "FEE_TRIGGER_NOT_ALLOWED",
              "NOT_ADJUSTED_TRANSACTION_LOGGED_AFTER_CURRENT_ONE",
              "CANNOT_ADJUST_INTEREST_ON_DISBURSEMENT",
              "TRANSACTION_TYPE_DOES_NOT_ALLOW_ADJUSTMENT",
              "TRANSACTION_ALREADY_ADJUSTED",
              "PAYMENT_DUE_FEES_ON_DUE_DATES_TRIGGER_NOT_ALLOWED",
              "DEPOSIT_INTEREST_FEATURE_DISABLED",
              "INVALID_FEE_AMOUNT_CALCULATION_FUNCTION",
              "COULD_NOT_INVOKE_FEE_AMOUNT_CALCULATION_FUNCTION",
              "FUNCTION_CALCULATED_FEE_AMOUNT_IS_ZERO",
              "INACTIVE_DEPOSIT_ACCOUNT_BRANCH",
              "CANNOT_CREATE_NEW_USER_IN_FEDERATED_CONTEXT",
              "EMPTY_CUSTOM_FIELD_ID",
              "ACCOUNT_ALREADY_CLOSED",
              "INVALID_GUARANTEE_TYPE",
              "ORIGINAL_ACCOUNT_NOT_FOUND",
              "INVALID_ORIGINAL_ACCOUNT_STATE",
              "INCONSISTENT_AMORTIZATION_ACCOUNTING_SETUP",
              "PAYMENT_DUE_FEES_ON_DUE_DATES_NOT_ALLOWED_AT_RESCHEDULE_REFINANCE",
              "TAXES_ON_PRODUCT_NOT_ALLOWED",
              "TAX_CALCULATION_METHOD_NOT_ALLOWED",
              "TAXES_NOT_EDITABLE",
              "CANNOT_APPLY_REPAYMENT_ON_ZERO_BALANCE_ACCOUNT",
              "LOCKED_BALANCE_NOT_ALLOWED",
              "INEXISTING_TOLERANCE_CALCULATION_METHOD",
              "ARREARS_TOLERANCE_DAY_OUTSIDE_CONSTRAINTS",
              "INCONSISTENT_ARREARS_TOLERANCE_VALUES_WITH_ARREARS_TOLERANCE_METHOD",
              "SAVINGS_PRODUCT_DOES_NOT_ALLOW_OFFSET_LINKING",
              "INVALID_SETTLEMENT_ACCOUNT_KEY",
              "INVALID_SETTLEMENT_ACCOUNT_STATE",
              "INVALID_DATA_MIGRATION_EVENT_KEY",
              "ANOTHER_TASK_IN_PROGRESS",
              "INVALID_DATA_IMPORT_TASK_KEY",
              "DEPOSIT_ACCOUNT_LINKED_TO_LOAN_ACCOUNTS_ON_DIFFERENT_BRANCHES",
              "SAVINGS_ACCOUNT_LINKED_TO_LOAN_ACCOUNTS_ON_DIFFERENT_BRANCHES",
              "INVALID_DEPOSIT_ACCOUNT_HOLDER",
              "UNLINKABLE_DEPOSIT_PRODUCT",
              "INEXISTING_DATE_CALCULATION_METHOD",
              "INEXISTING_NON_WORKING_DAYS_METHOD",
              "MESSAGE_SENDING_ERROR",
              "CONNECTION_CLOSING_ERROR",
              "CONSUMER_SERVICE_STARTING_ERROR",
              "CONSUMER_SERVICE_ALREADY_STARTED",
              "CONSUMER_UNSUBSCRIPTION_FAILED",
              "CONSUMER_SUBSCRIPTION_FAILED",
              "INVALID_SUPPORT_ROLE_ASSOCIATION",
              "INVALID_SUPPORT_ROLE_NAME",
              "INVALID_SUPPORT_ROLE_USER_RIGHTS",
              "INVALID_SUPPORT_ROLE_PERMISSIONS",
              "LOAN_ACCOUNT_FIELD_NOT_EDITABLE",
              "INCOMPATIBLE_ARREARS_TOLERANCE_METHOD_AND_PRODUCT_TYPE",
              "TRANSACTION_CHANNEL_NOT_ALLOWED_WHEN_DISBURSE_TO_DEPOSIT",
              "INVALID_TARGET_ACCOUNT_STATE_FOR_DEPOSIT",
              "FEE_AMOUNT_ALREADY_DEFINED_IN_PRODUCT",
              "MANDATORY_FEE_AMOUNT",
              "INVALID_SORTING_SELECTION",
              "BLACKLISTED_CLIENT_NOT_EDITABLE",
              "INVALID_STRING_VALUE",
              "NOTIFICATION_STATE_IS_REQUIRED",
              "NOTIFICATION_EVENT_MESSAGE_IS_REQUIRED",
              "INSTALLMENT_NUMBER_MANDATORY_FOR_FIXED_ACCOUNTS",
              "CLIENT_ID_ANONYMIZATION_ERROR",
              "INSTALLMENT_NUMBER_NOT_ALLOWED_FOR_DYNAMIC_ACCOUNTS",
              "INVALID_INSTALLMENT_NUMBER",
              "CANNOT_APPLY_FEE_ON_PAID_INSTALLMENT",
              "MANDATORY_ACCOUNT_HOLDER_TYPE",
              "CLIENT_DOES_NOT_HAVE_EXITED_STATE",
              "UNSUBSCRIBE_CLIENT_FROM_NOTIFICATIONS_ERROR",
              "CLIENT_PERSONAL_INFORMATION_ANONYMIZATION_ERROR",
              "CLIENT_LOAN_ACCOUNTS_ANONYMIZATION_ERROR",
              "CLIENT_SAVINGS_ACCOUNTS_ANONYMIZATION_ERROR",
              "CLIENT_LINES_OF_CREDIT_ANONYMIZATION_ERROR",
              "CLIENT_GUARANTEES_ANONYMIZATION_ERROR",
              "CLIENT_NOTIFICATION_MESSAGES_ANONYMIZATION_ERROR",
              "CLIENT_ASSOCIATED_TASKS_ANONYMIZATION_ERROR",
              "INVALID_API_KEY",
              "API_KEY_REFRESH_ERROR",
              "FILE_NOT_FOUND",
              "UPLOADED_FILE_NOT_FOUND",
              "MISSING_CLIENT_ROLE",
              "BACKGROUND_PROCESS_STATE_IS_REQUIRED",
              "BACKGROUND_PROCESS_STATE_CANNOT_BE_IN_PROGRESS",
              "BACKGROUND_PROCESS_STATE_IS_NOT_QUEUED_OR_IN_PROGRESS",
              "BACKGROUND_PROCESS_CANCELING_FEATURE_IS_DISABLED",
              "BACKGROUND_PROCESS_HAS_NOT_EXCEEDED_MAXIMUM_DURATION",
              "BACKGROUND_PROCESS_IS_NOT_THE_LATEST",
              "NOT_ALLOWED_TO_CREATE_REOPEN_ACCOUNTS_WITH_RECALCULATE_SCHEDULE_KEEP_SAME_TOTAL_REPAYMENT_AMOUNT",
              "NOT_ALLOWED_TO_CREATE_REOPEN_ACCOUNTS_WITH_DEPRECATED_REDUCE_NUMBER_OF_INSTALLMENTS",
              "NOT_ALLOWED_TO_REOPEN_REVOLVING_ACCOUNTS_WITHOUT_KEEP_EMPTY_INSTALLMENTS_SCHEDULE",
              "DISBURSEMENT_THAT_WAS_REFUNDED_CANNOT_BE_ADJUSTED",
              "FEE_CAPITALISATION_CANNOT_BE_REVERSED_AFTER_A_FINANCIAL_TRANSACTION_IS_POSTED_AFTER_IT",
              "PRINCIPAL_OVERPAYMENT_CANNOT_BE_REVERSED_IF_IT_IS_LINKED_TO_REPAYMENT",
              "FEATURE_NOT_ENABLED",
              "INVALID_SESSION",
              "UNSUPPORTED_EOD_METHOD_FOR_EARLY_MANUAL_EXECUTION",
              "UNSUPPORTED_EOD_METHOD_FOR_MANUAL_EXECUTION",
              "AUTOMATIC_END_OF_DAY_PROCESSING",
              "NOT_END_OF_DAY_PROCESS",
              "ACCOUNT_NOT_ACTIVE",
              "DUPLICATE_ENTRY_FOR_CUSTOM_FIELD_VALUE",
              "ACCOUNT_ACTIVATION_FAILED",
              "INSUFFICIENT_AVAILABLE_AMOUNT_FOR_AUTHORIZATION_HOLD_ON_LOANS",
              "INVALID_MCC_EXPIRATION_ENTRY",
              "MCC_ALREADY_EXISTS",
              "MCC_EXPIRATION_ENTRY_NOT_FOUND",
              "PRODUCT_DISBURSEMENT_FEES_PREVENT_CARD_ATTACHMENT",
              "INVALID_API_CONSUMER_USERNAME",
              "YAML_PROCESSING_FAILED",
              "CARD_TRANSACTION_REVERSAL_CANNOT_BE_ADJUSTED",
              "DUPLICATE_CUSTOM_FIELD_SELECTION_ID",
              "INVALID_CREDIT_DEBIT_INDICATOR_FOR_OPERATION",
              "CREDIT_DEBIT_INDICATOR_MISMATCH",
              "INVALID_CREDIT_DEBIT_INDICATOR_FOR_LOANS",
              "INVALID_ADVICE",
              "CREDIT_DEBIT_CARD_TRANSACTION_FEATURE_DISABLED",
              "BLANK_INSTITUTION_NAME",
              "INSTITUTION_NAME_LENGTH",
              "BLANK_DECIMAL_SEPARATOR",
              "INVALID_DECIMAL_SEPARATOR",
              "BLANK_DATE",
              "INVALID_DATE_FORMAT",
              "HAS_INVALID_DATE_CHARACTER",
              "MISSING_REQUIRED_DATE_CHARACTER",
              "BLANK_DATE_TIME",
              "INVALID_DATE_TIME_FORMAT",
              "HAS_INVALID_DATE_TIME_CHARACTER",
              "MISSING_REQUIRED_DATE_TIME_CHARACTER",
              "INVALID_TERMINATION_DATE",
              "LOAN_ACCOUNT_ALREADY_FULLY_PAID",
              "TERMINATE_LOAN_ACCOUNT_FEATURE_DISABLED",
              "LATE_REPAYMENT_FEES_PRODUCT_NOT_ALLOWED",
              "LOAN_ACCOUNT_SCHEDULE_EDITING_NOT_ALLOWED",
              "AGGREGATOR_INSTALLMENT_ALREADY_HAS_CUSTOM_DUE_DATE",
              "TERMINATED_ACCOUNT_DOES_NOT_ALLOW_EDITING_AGGREGATOR_INSTALLMENT",
              "INVALID_SETUP_OF_LOAN_ACCOUNT_TO_TERMINATE",
              "LOAN_ACCOUNT_TERMINATION_AFTER_LAST_INSTALLMENT_DUE_DATE",
              "LOAN_ACCOUNT_ALREADY_TERMINATED",
              "ROLE_ID_ALREADY_IN_USE",
              "INVALID_CHARACTERS_IN_ROLE_ID",
              "ROLE_NAME_ALREADY_IN_USE",
              "REMOVED_ADMIN_FOR_CURRENT_USER",
              "ADDED_ADMIN_FOR_CURRENT_USER",
              "REMOVED_MAMBU_ACCESS_RIGHT_FOR_CURRENT_USER",
              "MISSING_REQUIRED_BRANCH",
              "CANNOT_REMOVE_TELLER_PROPERTY",
              "CANNOT_CHANGE_BRANCH_ASSIGNMENT",
              "CANNOT_DELETE_TELLER",
              "A_TELLER_CANNOT_BE_ADMINISTRATOR",
              "CREDIT_OFFICER_PROPERTY_REMOVED",
              "CREDIT_OFFICER_PROPERTY_REMOVED_FROM_ROLE",
              "USER_BRANCH_CHANGE",
              "USER_DEACTIVATED",
              "USER_DELETED",
              "SUPPORT_ROLE_CANNOT_BE_ASSIGNED_TO_AN_ADMINISTRATOR",
              "SUPPORT_ROLE_CANNOT_BE_ASSIGNED_TO_A_TELLER",
              "SUPPORT_ROLE_CANNOT_BE_ASSIGNED_TO_A_REGULAR_USER",
              "SUPPORT_ROLE_NAME_CANNOT_BE_CHANGED",
              "SUPPORT_ROLE_USER_RIGHTS_CANNOT_BE_CHANGED",
              "SUPPORT_ROLE_PERMISSIONS_MUST_BE_VIEW_ONLY",
              "INVALID_ROLE_NAME",
              "ROLES_CONFIGURATION_EMPTY",
              "INVALID_ROLE_ID",
              "ROLE_IN_USE",
              "SUPPORT_ROLE_CANNOT_BE_DELETED",
              "NULL_OR_EMPTY_ID",
              "MISSING_ROLE_NAME",
              "DELIVERY_ROLE_CANNOT_BE_DELETED",
              "DELIVERY_ROLE_NAME_CANNOT_BE_CHANGED",
              "DELIVERY_ROLE_USER_RIGHTS_CANNOT_BE_CHANGED",
              "DELIVERY_ROLE_CANNOT_BE_ASSIGNED_TO_A_REGULAR_USER",
              "DELIVERY_ROLE_CANNOT_BE_ASSIGNED_TO_AN_ADMINISTRATOR",
              "DELIVERY_ROLE_CANNOT_BE_ASSIGNED_TO_A_TELLER",
              "EDIT_USERNAME_WHEN_FA_ENABLED",
              "HYBRID_GROUP_NOT_AVAILABLE_FOR_DBEI_CAPITALIZED_INTEREST",
              "HYBRID_GROUP_NOT_AVAILABLE_WHEN_REDRAW_ENABLED",
              "PRODUCT_LINKING_NOT_AVAILABLE_WHEN_REDRAW_ENABLED",
              "FUNDING_SOURCES_NOT_AVAILABLE_WHEN_REDRAW_ENABLED",
              "TAXES_NOT_AVAILABLE_WHEN_REDRAW_ENABLED",
              "REDRAW_AND_OFFSET_SETTINGS_ENABLED_SIMULTANEOUSLY",
              "HYBRID_GROUP_NOT_AVAILABLE_FOR_OFFSET_LOAN",
              "INCONSISTENT_OFFSET_SETTINGS_WITH_PRODUCT_CONFIGURATION",
              "INCONSISTENT_OFFSET_SETTINGS_WITH_OFFSET_FEATURE",
              "PRODUCT_LINKING_IS_MANDATORY_WHEN_OFFSET_ENABLED",
              "LINKED_DEPOSIT_PRODUCT_DOES_NOT_ALLOW_OFFSET",
              "LINKED_DEPOSIT_PRODUCT_DOES_NOT_EXIST",
              "FUNDING_SOURCES_NOT_AVAILABLE_WHEN_OFFSET_ENABLED",
              "TAXES_NOT_AVAILABLE_WHEN_OFFSET_ENABLED",
              "ACCOUNT_HAS_POSITIVE_OR_ZERO_BALANCE",
              "ACCOUNT_DOES_NOT_ALLOW_OVERDRAFT",
              "INVALID_NOTES_LENGTH",
              "FEE_AMORTIZATION_PROFILE_CANNOT_BE_CHANGED",
              "FEE_AMORTIZATION_FREQUENCY_CANNOT_BE_CHANGED",
              "FEE_AMORTIZATION_PROFILE_IS_NOT_PROVIDED",
              "WITHDRAWAL_AMOUNT_GREATER_THAN_DUE_AMOUNT",
              "WITHDRAWAL_COVERING_LATE_REPAYMENTS_NOT_ALLOWED_WITHOUT_REDRAW_REPAYMENT",
              "OFFSET_NOT_ALLOWED_FOR_PRODUCT_IN_FOREIGN_CURRENCY",
              "REDRAW_OFFSET_SIMULTANEOUSLY_INVALID_SETTLEMENT_OPTIONS",
              "INTEREST_RATE_CHANGED_TRANSACTION_NOT_ALLOWED_FOR_DEPOSIT_PRODUCT_SETTINGS",
              "INTEREST_RATE_CHANGED_NOT_ALLOWED_INTEREST_APPLIANCE_TRANSACTIONS_AFTER_VALUE_DATE",
              "BLOCKED_BALANCE_SHOULD_BE_ZERO_OR_NULL",
              "FORWARD_AVAILABLE_BALANCE_SHOULD_BE_ZERO_OR_NULL",
              "CUSTOM_FIELD_DEFAULT_SET_CANNOT_BE_MORE_THAN_ONE",
              "CUSTOM_FIELD_DEFAULT_SET_ID_CANNOT_BE_CHANGED",
              "CUSTOM_FIELD_DEFAULT_SET_NAME_CANNOT_BE_CHANGED",
              "CUSTOM_FIELD_DEFAULT_DESCRIPTION_CANNOT_BE_CHANGED",
              "CUSTOM_FIELD_DEFAULT_SET_TYPE_CANNOT_BE_CHANGED",
              "CUSTOM_FIELD_SET_BLANK_ID",
              "CUSTOM_FIELD_SET_INVALID_ID_LENGTH",
              "CUSTOM_FIELD_SET_INVALID_ID_FORMAT",
              "CUSTOM_FIELD_SET_MISSING_ID_PREFIX",
              "CUSTOM_FIELD_SET_DUPLICATE_ID",
              "CUSTOM_FIELD_SET_ID_RESERVED_KEYWORD",
              "CUSTOM_FIELD_SET_BLANK_NAME",
              "CUSTOM_FIELD_SET_NAME_LENGTH",
              "CUSTOM_FIELD_SET_DUPLICATE_NAME",
              "CUSTOM_FIELD_SET_TYPE_REQUIRED",
              "CUSTOM_FIELD_SET_TYPE_CANNOT_BE_CHANGED",
              "CUSTOM_FIELD_SET_AVAILABLE_FOR_REQUIRED",
              "CUSTOM_FIELD_SET_AVAILABLE_FOR_CANNOT_BE_CHANGED",
              "CUSTOM_FIELD_BLANK_ID",
              "CUSTOM_FIELD_INVALID_ID_LENGTH",
              "CUSTOM_FIELD_INVALID_ID_FORMAT",
              "CUSTOM_FIELD_DUPLICATE_ID",
              "CUSTOM_FIELD_RESERVED_ID",
              "CUSTOM_FIELD_BLANK_NAME",
              "CUSTOM_FIELD_NAME_LENGTH",
              "CUSTOM_FIELD_DUPLICATE_NAME",
              "CUSTOM_FIELD_DEPENDENT_INVALID_TYPE_FOR_FIELD_WITH_DEPENDENT_FIELD",
              "CUSTOM_FIELD_DEPENDENT_FIELD_DOES_NOT_EXIST_IN_SET",
              "CUSTOM_FIELD_DEPENDENT_INVALID_TYPE_FOR_THE_DEPENDENT_FIELD",
              "CUSTOM_FIELD_SELECTIONS_OPTION_CANNOT_BE_DELETED",
              "CUSTOM_FIELD_SELECTIONS_FOR_SELECTION_ID_PRESENT_BUT_NO_DEPENDENT_FIELD",
              "CUSTOM_FIELD_SELECTIONS_DEPENDENT_FIELD_PRESENT_BUT_FOR_SELECTION_IS_MISSING",
              "CUSTOM_FIELD_SELECTIONS_FOR_SELECTION_ID_COULD_NOT_BE_FOUND_IN_THE_DEPENDENT_FIELD",
              "CUSTOM_FIELD_SELECTIONS_DUPLICATED_SELECTION_IDS",
              "CUSTOM_FIELD_SELECTIONS_SELECTION_ID_SHOULD_NOT_BE_EMPTY",
              "CUSTOM_FIELD_SELECTIONS_SELECTION_ID_CONTAINS_INVALID_CHARACTERS",
              "CUSTOM_FIELD_SELECTIONS_INVALID_SCORE_NUMBER",
              "CUSTOM_FIELD_SELECTIONS_DEPENDENT_FIELD_OPTIONS_NOT_COVERED",
              "CUSTOM_FIELD_SELECTIONS_DUPLICATE_OPTION_VALUES",
              "CUSTOM_FIELD_SELECTIONS_VALUE_CANNOT_BE_EMPTY",
              "CUSTOM_FIELD_SELECTIONS_CIRCULAR_DEPENDENCY",
              "CUSTOM_FIELD_SELECTION_OPTIONS_ARE_REQUIRED",
              "CUSTOM_FIELD_ACCESS_RIGHTS_INVALID_ROLE_ID",
              "CUSTOM_FIELD_SUPPORT_ROLE_INVALID_RIGHTS",
              "CUSTOM_FIELD_BLANK_ROLE_ID",
              "CUSTOM_FIELD_USAGE_BLANK_ID",
              "CUSTOM_FIELD_USAGE_ID_NOT_FOUND",
              "CUSTOM_FIELD_INVALID_USAGE_FOR_RECORD_TYPE",
              "CUSTOM_FIELD_INVALID_USAGE_FOR_FIELD",
              "CUSTOM_FIELD_USAGE_FOR_RECORD_TYPE_NOT_ALLOWED",
              "CUSTOM_FIELD_USAGE_FOR_RECORD_TYPE_REQUIRED",
              "CUSTOM_FIELD_SELECTION_USAGE_NOT_ALLOWED",
              "CUSTOM_FIELD_SELECTION_REQUIRED_NOT_ALLOWED",
              "CUSTOM_FIELD_SELECTION_DEFAULT_NOT_ALLOWED",
              "CUSTOM_FIELD_BLANK_TYPE",
              "CUSTOM_FIELD_TYPE_CHANGED",
              "CUSTOM_FIELD_VALIDATION_RULES_NOT_ALLOWED",
              "CUSTOM_FIELD_VALIDATION_RULES_DUPLICATE_VALUES",
              "CUSTOM_FIELD_STATE_REQUIRED",
              "CUSTOM_FIELD_DISPLAY_SETTINGS_REQUIRED",
              "CUSTOM_FIELD_DESCRIPTION_LENGTH_EXCEEDED",
              "CUSTOM_FIELD_SIZE_REQUIRED",
              "CUSTOM_FIELD_SET_BUILT_IN_USAGE",
              "CUSTOM_FIELD_DUPLICATE_USAGE_ID",
              "CUSTOM_FIELD_DUPLICATE_ROLE_ID",
              "CUSTOM_FIELD_ACCESS_RIGHTS_REQUIRED",
              "CUSTOM_FIELD_ACCESS_RIGHTS_ROLES_REQUIRED",
              "CUSTOM_FIELD_ACCESS_RIGHTS_ALL_USERS_REQUIRED",
              "CUSTOM_FIELD_ACCESS_RIGHTS_ALL_USERS_FALSE_WHEN_ROLES_SPECIFIED",
              "CUSTOM_FIELD_SELECTION_OPTIONS_NULL",
              "CUSTOM_FIELD_AVAILABLE_OPTIONS_NULL",
              "CUSTOM_FIELD_NULL_USAGE",
              "CUSTOM_FIELD_SET_NULL_FIELD",
              "CUSTOM_FIELDS_CONFIGURATION_EMPTY",
              "CUSTOM_FIELD_SET_NULL_ENTRY",
              "CONFIGURATION_AS_CODE_UPDATE_IN_PROGRESS",
              "CONFIGURATION_AS_CODE_CUSTOM_FIELD_SEARCHABILITY_VALIDATION_FAILED",
              "CONFIGURATION_AS_CODE_FEATURE_DISABLED",
              "PREPAYMENT_RECALCULATION_METHOD_ON_REPAYMENT_NOT_ALLOWED_FOR_LOAN_ACCOUNT",
              "PREPAYMENT_RECALCULATION_METHOD_ON_REPAYMENT_NOT_SUPPORTED",
              "CONFLICT_BETWEEN_EDIT_SCHEDULE_OPERATIONS_AND_ATTEMPTED_PREPAYMENT_RECALCULATION_METHOD",
              "CONFLICT_BETWEEN_PREPAYMENT_RECALCULATION_METHOD_FROM_TRANSACTIONS_AND_NEW_SCHEDULE_EDIT",
              "EDITING_INSTALLMENTS_DUE_BEFORE_LAST_PAID_INSTALLMENT_IS_NOT_ALLOWED",
              "INVALID_INSTALLMENT_KEY",
              "INVALID_REPAYMENT_AMOUNT_FOR_SPECIFIC_INSTALLMENT",
              "SPECIFIC_INSTALLMENT_REPAYMENTS_NOT_ALLOWED_IF_GENERIC_REPAYMENTS_EXIST",
              "GENERIC_REPAYMENTS_NOT_ALLOWED_IF_SPECIFIC_INSTALLMENT_REPAYMENTS_EXIST",
              "INSTALLMENT_ALREADY_PAID",
              "PREPAYMENT_RECALCULATION_METHOD_NOT_SUPPORTED",
              "ONLY_IOI_METHOD_SUPPORTED",
              "ACCRUE_LATE_INTEREST_NOT_SUPPORTED",
              "ONLY_PARTIALLY_PAID_STATUS_SUPPORTED",
              "ONLY_NO_PENALTY_PRODUCTS_SUPPORTED",
              "ACCOUNT_IS_LOCKED",
              "ONLY_STANDARD_PAYMENTS_SUPPORTED",
              "ARBITRARY_FEES_NOT_SUPPORTED",
              "TAXES_ON_INTEREST_NOT_SUPPORTED",
              "REPAYMENT_DUE_DATE_DUPLICATED",
              "TAXES_ON_FEE_NOT_SUPPORTED",
              "CHANGING_NO_OF_POSITIVE_PRINCIPAL_INSTALLMENTS_NOT_ALLOWED",
              "INSTALLMENTS_ADJUSTMENT_DETAILS_NOT_EXPECTED",
              "INSTALLMENTS_ADJUSTMENT_DETAILS_NOT_EXPECTED_BULK",
              "INSTALLMENTS_ADJUSTMENT_DETAILS_MISSING",
              "INSTALLMENT_NOT_FOUND",
              "INSTALLMENT_DUPLICATED",
              "INSTALLMENT_STATE_NOT_ALLOWED",
              "NOT_ALLOWED_FOR_CURRENT_ACCOUNT_TYPE",
              "NOT_ALLOWED_BEFORE_ACTIVATION_DATE",
              "NOT_ALLOWED_BEFORE_OR_DURING_PAID_INSTALLMENT",
              "GET_NOTIFICATION_MESSAGE_UPDATE_FAILURE",
              "INVALID_CUSTOM_FILTER_CONSTRAINT_OPERATOR",
              "EMPTY_CUSTOM_FILTER_CONSTRAINT_VALUE",
              "INVALID_CUSTOM_FILTER_CONSTRAINT_VALUE",
              "INVALID_CUSTOM_FILTER_CONSTRAINT_OPERATOR_USAGE",
              "EMPTY_TRANSACTION_CHANNEL_NAME",
              "EMPTY_TRANSACTION_CHANNEL_ID",
              "INVALID_CUSTOM_FILTER_CONSTRAINT_TYPE",
              "INVALID_CUSTOM_FILTER_USAGE",
              "INVALID_CUSTOM_FILTER_CRITERIA",
              "INTEREST_ACCRUAL_BREAKDOWN_INTERNAL_ERROR",
              "INTEREST_ACCRUAL_BREAKDOWN_BAD_REQUEST",
              "INTEREST_VALID_FROM_DATE_BEFORE_INDEX_INTEREST_RATE_DATE",
              "DISBURSEMENT_DATE_DIFFERENT_THAN_FIRST_INTEREST_RATE_SETTINGS_VALID_FROM_DATE",
              "ANTICIPATED_DISBURSEMENT_DATE_NOT_EQUAL_WITH_FIRST_INTEREST_RATE_SETTINGS_VALID_FROM_DATE",
              "ACCOUNT_INTEREST_SPREAD_IS_NOT_BETWEEN_LIMITS",
              "ACCOUNT_INTEREST_RATE_IS_NOT_BETWEEN_LIMITS",
              "PRODUCT_DOES_NOT_SUPPORT_ADJUSTABLE_RATES",
              "MISSING_ADJUSTABLE_RATES",
              "NOT_ALLOW_NEGATIVE_FLOOR_OR_CEILING_VALUE",
              "FLOOR_VALUE_GREATER_THAN_CEILING_VALUE_ERROR",
              "INCONSISTENT_INDEX_SOURCE_KEY_ON_ACCOUNT_LEVEL",
              "INCONSISTENT_FIXED_INTEREST_RATE_SOURCE_SETUP_ON_ACCOUNT_LEVEL",
              "INVALID_DISBURSEMENT_DATE_NOT_EQUAL_WITH_FIRST_INTEREST_RATE_SETTINGS_VALID_FROM_DATE",
              "FLOOR_VALUE_MUST_BE_PROVIDED_FOR_NEGATIVE_SPREAD_ERROR",
              "DUPLICATE_BLOCK_ID",
              "INVALID_BLOCK_FUND_STATE",
              "BLOCK_FUND_DOES_NOT_EXIST",
              "S3_REGION_NOT_FOUND",
              "INVALID_TRANSACTION_CHANNEL_ID",
              "INVALID_ACCOUNTING_METHOD",
              "MISSING_RULE",
              "NOT_REQUIRED_RULE",
              "HEADER_ACCOUNT_NOT_ALLOWED",
              "INVALID_GLACCOUNT_TYPE",
              "RULE_WITHOUT_GLACCOUNT",
              "INVALID_INTEREST_ACCRUED_METHOD",
              "GLACCOUNTS_ARE_NOT_IN_ORGANIZATION_OR_PRODUCT_CURRENCY",
              "INCONSISTENT_GLACCOUNTS_CURRENCY_SETUP",
              "INCONSISTENT_FEE_GLACCOUNTS_CURRENCY_SETUP",
              "INVALID_GL_ACCOUNT_CURRENCY",
              "CANNOT_EDIT_GL_ACCOUNT_CURRENCY_AS_ACCOUNT_IS_IN_USE",
              "FOREIGN_CURRENCY_IS_NOT_ALLOWED",
              "INEXISTING_GLACCOUNT",
              "GLACCOUNTS_ARE_NOT_IN_PRODUCT_CURRENCY",
              "DUPLICATE_FINANCIAL_RESOURCE_ACCOUNTING_RULE",
              "CHANGE_ARREARS_SETTINGS_NOT_ALLOWED_FOR_PRODUCT_TOLERANCE_CALCULATION_METHOD",
              "INVALID_BULK_PROCESS_KEY",
              "BULK_API_REQUEST_SIZE_LIMIT_REACHED",
              "POSITIVE_AMOUNT_REQUIRED",
              "ID_NOT_UNIQUE",
              "ENCODED_KEY_NOT_FOUND",
              "CHANGE_MONTHLY_REPAYMENT_DAY_NOT_ALLOWED_FOR_ACCOUNTS_WITH_CUSTOM_SCHEDULE",
              "CHANGE_MONTHLY_REPAYMENT_DAY_ALLOWED_ONLY_FOR_ACCOUNTS_WITH_A_SINGLE_FIXED_DAY_OF_MONTH",
              "INVALID_INTEREST_ROUNDING_VERSION",
              "FEE_NOT_AVAILABLE_FOR_PRODUCT",
              "MAXIMUM_DEPOSIT_BALANCE_EXCEEDED",
              "MAX_DEPOSIT_BALANCE_NOT_AVAILABLE_FOR_INVESTOR_ACCOUNTS",
              "INTEREST_TYPE_NOT_SUPPORTED",
              "PRODUCT_DOES_NOT_ALLOW_INTEREST_SETTINGS",
              "PRODUCT_DOES_NOT_ALLOW_NEGATIVE_INTEREST_RATE",
              "INVALID_INTEREST_RATE_SETTINGS",
              "DELETE_FIRST_INTEREST_AVAILABILITY_NOT_ALLOWED",
              "INTEREST_AVAILABILITY_DOES_NOT_BELONG_TO_SAVINGS_ACCOUNT",
              "INTEREST_RATE_TERMS_NOT_SUPPORTED",
              "OPERATIONS_ON_BACKDATED_INTEREST_AVAILABILITY_NOT_ALLOWED_FOR_CURRENT_ACCOUNT_STATE",
              "BULK_INTEREST_AVAILABILITY_ACCOUNTS_LIMIT_REACHED",
              "BRANCHES_CONFIGURATION_EMPTY",
              "NULL_BRANCH_ENTRY",
              "BRANCH_NAME_LENGTH",
              "BLANK_BRANCH_NAME",
              "BRANCH_ID_LENGTH",
              "BLANK_BRANCH_ID",
              "DUPLICATE_BRANCH_ID",
              "BRANCH_EMAIL_FORMAT",
              "BRANCH_EMAIL_LENGTH",
              "BRANCH_PHONE_LENGTH",
              "ADDRESS_FIELD_LENGTH",
              "BLANK_HOLIDAY_ID",
              "INVALID_HOLIDAY_ID",
              "DUPLICATE_HOLIDAY_ID",
              "BLANK_HOLIDAY_NAME",
              "HOLIDAY_NAME_LENGTH",
              "HOLIDAY_DAY_OF_MONTH_ERROR",
              "HOLIDAY_MONTH_OF_YEAR_ERROR",
              "HOLIDAY_YEAR_ERROR",
              "HOLIDAY_VALID_DATE_ERROR",
              "CANNOT_DEACTIVATE_BRANCH",
              "HOLIDAY_EMPTY_ANNUALLY_RECURRING",
              "HOLIDAY_EMPTY_DATE",
              "CENTRE_CONFIGURATION_EMPTY",
              "CENTRE_ID_LENGTH",
              "BLANK_CENTRE_ID",
              "DUPLICATE_CENTRE_ID",
              "CENTRE_NAME_LENGTH",
              "BLANK_CENTRE_NAME",
              "INVALID_CENTRE_MEETING_DAY",
              "BLANK_CENTRE_BRANCH_ID",
              "BRANCH_IS_INACTIVE",
              "BRANCH_DOES_NOT_EXIST",
              "CENTRE_STATE_BLANK",
              "NULL_CENTRE_ENTRY",
              "DEPOSIT_PRODUCT_CONFIGURATION_EMPTY",
              "BLANK_DEPOSIT_PRODUCT_NAME",
              "BLANK_DEPOSIT_PRODUCT_ID",
              "DEPOSIT_PRODUCT_ID_LENGTH",
              "DEPOSIT_PRODUCT_DUPLICATE_ID",
              "DEPOSIT_PRODUCT_CONFIGURATION_NULL_ENTRY",
              "DEPOSIT_PRODUCT_NAME_LENGTH",
              "BLANK_DEPOSIT_PRODUCT_TYPE",
              "BLANK_DEPOSIT_PRODUCT_CATEGORY",
              "BLANK_DEPOSIT_PRODUCT_NEW_ACCOUNT_SETTINGS",
              "BLANK_DEPOSIT_PRODUCT_ID_PATTERN",
              "DEPOSIT_PRODUCT_ID_PATTERN_LENGTH",
              "DEPOSIT_PRODUCT_INVALID_ID_PATTERN_FORMAT",
              "DEPOSIT_PRODUCT_INVALID_ID_PATTERN_NUMBER",
              "BLANK_DEPOSIT_PRODUCT_ID_GENERATOR_TYPE",
              "DEPOSIT_PRODUCT_AVAILABILITY_SETTINGS_BLANK",
              "DEPOSIT_PRODUCT_BRANCH_AVAILABILITY_SETTINGS_BLANK",
              "DEPOSIT_PRODUCT_AVAILABILITY_ALL_BRANCHES_BLANK",
              "DEPOSIT_PRODUCT_AVAILABILITY_BRANCH_DOES_NOT_EXIST",
              "DEPOSIT_PRODUCT_AVAILABILITY_ALL_BRANCHES_FALSE",
              "DEPOSIT_PRODUCT_AVAILABILITY_ALL_BRANCHES_TRUE",
              "DEPOSIT_PRODUCT_AVAILABILITY_DUPLICATE_BRANCH",
              "DEPOSIT_PRODUCT_AVAILABILITY_INACTIVE_BRANCH",
              "DEPOSIT_PRODUCT_AVAILABILITY_FOR_INDIVIDUALS_BLANK",
              "DEPOSIT_PRODUCT_AVAILABILITY_FOR_GROUPS_BLANK",
              "DEPOSIT_PRODUCT_CURRENCY_NOT_DEFINED",
              "BLANK_DEPOSIT_PRODUCT_CURRENCY",
              "DEPOSIT_PRODUCT_MULTIPLE_CURRENCIES_NOT_ALLOWED",
              "DEPOSIT_PRODUCT_INVALID_MATURITY_MIN_MAX",
              "DEPOSIT_PRODUCT_INVALID_WITHHOLDING_TAX_ENABLED",
              "DEPOSIT_PRODUCT_NEGATIVE_TERM_LENGTH",
              "DEPOSIT_PRODUCT_FIELD_NOT_EDITABLE",
              "DEPOSIT_PRODUCT_INTERNAL_CONTROL_DORMANCY_RANGE",
              "DEPOSIT_PRODUCT_INTERNAL_CONTROL_RECOMMENDED_AMOUNT_RANGE",
              "DEPOSIT_PRODUCT_INTERNAL_CONTROL_MAX_WITHDRAWAL_AMOUNT_RANGE",
              "DEPOSIT_PRODUCT_INTERNAL_CONTROL_INVALID_OPENING_BALANCE",
              "DEPOSIT_PRODUCT_INTERNAL_CONTROL_ALLOW_OFFSET_NOT_AVAILABLE",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_NEGATIVE_FREQUENCY",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_DAYS_IN_YEAR_METHOD_NOT_ALLOWED",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_EMPTY_DAYS_IN_YEAR",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_NEGATIVE_DEFAULT_INTEREST_RATE",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_INVALID_INTEREST_RATE_MIN_MAX_DEFAULT_TUPLE",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_NEGATIVE_MAX_INTEREST_RATE",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_NEGATIVE_MIN_INTEREST_RATE",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_DEFAULT_MIN_MAX_NOT_AVAILABLE",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_INDEX_INTEREST_RATE_NOT_AVAILABLE",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_EMPTY_INDEX_RATE_SOURCE_KEY",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_MANDATORY_NEGATIVE_INTEREST_RATE",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_INTEREST_RATE_MANDATORY_REVIEW_UNIT",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_INTEREST_RATE_MANDATORY_REVIEW_COUNT",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_INVALID_INTEREST_REVIEW_COUNT",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_INDEX_RATE_FOR_REGULAR_INTEREST_FEATURE_DISABLED",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_READONLY_INTEREST_RATE_TERMS",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_INDEXED_INTEREST_RATE_SOURCE_DEFINED_FOR_FIXED_INTEREST_RATE_SOURCE",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_INVALID_MAXIMUM_BALANCE_VALUE",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_MAXIMUM_BALANCE_NOT_AVAILABLE",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_INTEREST_CALCULATION_BALANCE_METHOD_NOT_ALLOWED",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_TIERED_BAND_NOT_AVAILABLE_FOR_INTEREST",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_TIERS_NOT_AVAILABLE",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_EMPTY_TIERS",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_TIER_ENDING_DAY_NOT_AVAILABLE",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_TIER_NEGATIVE_ENDING_BALANCE",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_TIER_ENDING_BALANCE_NOT_AVAILABLE",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_TIER_NEGATIVE_INTEREST_RATE",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_TIER_DOES_NOT_ALLOW_NEGATIVE_INTEREST_RATE",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_TIER_NEGATIVE_ENDING_DAY",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_NEGATIVE_INTEREST_RATE_NOT_ENABLED",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_NEGATIVE_INTEREST_RATE_MAMBU_NOT_ENABLED",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_CANNOT_DISABLE_NEGATIVE_INTEREST_RATE",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_NEGATIVE_INTEREST_RATE_NOT_ALLOWED_FOR_INTEREST_RATE_TERM",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_PRODUCT_TYPE_NOT_ALLOWS_NEGATIVE_INTEREST_RATE",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_NOT_ALLOWED_WITHHOLDING_TAXES_AND_NEGATIVE_INTEREST_RATE",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_WITHHOLDING_TAX_NOT_AVAILABLE_INTEREST_TIERED_BAND",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_INTEREST_RATE_SETTINGS_NOT_ALLOWED",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_INVALID_DAYS_IN_YEAR_METHOD",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_INVALID_INDEX_RATE_SOURCE_KEY",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_ENDING_DAY_LESS_THAN_STARTING_DAY",
              "DEPOSIT_PRODUCT_INTEREST_SETTINGS_ENDING_BALANCE_LESS_THAN_STARTING_BALANCE",
              "SAVINGS_FEE_INCOMPATIBLE_INPUT",
              "ARBITRARY_SAVINGS_FEE_NOT_ALLOWED",
              "SAVINGS_FEE_BLANK_ID",
              "CANNOT_DELETE_SAVINGS_FEE",
              "INTEREST_ACCRUED_METHOD_INVALID",
              "INVALID_INTEREST_ACCRUAL_CALCULATION",
              "ACCOUNTING_RULE_WITHOUT_GLACCOUNT",
              "HEADER_GL_ACCOUNT_NOT_ALLOWED",
              "DISABLED_DEPOSIT_INTEREST_FEATURE",
              "NOT_REQUIRED_ACCOUNTING_RULE",
              "INVALID_RULE_GLACCOUNT_TYPE",
              "INVALID_GLACCOUNT_CURRENCY",
              "INCONSISTENT_CURRENCY_SETUP_FOR_GLACCOUNTS",
              "INCONSISTENT_CURRENCY_SETUP_ON_FEE_GLACCOUNTS",
              "MISSING_ACCOUNTING_RULE",
              "ACCOUNTING_ACTIONS_NOT_FULLY_DEFINED",
              "ACCOUNTING_RULE_CURRENCY_NOT_DEFINED",
              "GL_RULE_CURRENCY_NOT_DEFINED",
              "DEPOSIT_PRODUCT_OVERDRAFT_NEGATIVE_MAX_LIMIT",
              "DEPOSIT_PRODUCT_OVERDRAFT_EMPTY_MAX_LIMIT",
              "DEPOSIT_PRODUCT_OVERDRAFT_ALLOW_TECHNICAL_OVERDRAFT_CANNOT_BE_DISABLED",
              "DEPOSIT_PRODUCT_OVERDRAFT_EMPTY_INTEREST_SETTINGS",
              "DEPOSIT_PRODUCT_OVERDRAFT_NEGATIVE_MIN_INTEREST_RATE",
              "DEPOSIT_PRODUCT_OVERDRAFT_NEGATIVE_MAX_INTEREST_RATE",
              "DEPOSIT_PRODUCT_OVERDRAFT_INVALID_INTEREST_RATE_MIN_MAX_DEFAULT_TUPLE",
              "DEPOSIT_PRODUCT_OVERDRAFT_EMPTY_INDEX_RATE",
              "DEPOSIT_PRODUCT_OVERDRAFT_EMPTY_INTEREST_REVIEW_UNIT",
              "DEPOSIT_PRODUCT_OVERDRAFT_NEGATIVE_INTEREST_REVIEW_COUNT",
              "DEPOSIT_PRODUCT_OVERDRAFT_EMPTY_DAYS_IN_YEAR",
              "DEPOSIT_PRODUCT_OVERDRAFT_INVALID_DAYS_IN_YEAR_VALUE",
              "DEPOSIT_PRODUCT_OVERDRAFT_TIERED_BAND_NOT_AVAILABLE",
              "DEPOSIT_PRODUCT_OVERDRAFT_TIERED_PERIOD_NOT_AVAILABLE",
              "UPDATE_DEPOSIT_PRODUCTS_ERROR",
              "DEPOSIT_PRODUCT_INTEREST_RATE_SETTINGS_NOT_ALLOWED_FOR_PRODUCT_WITH_CRYPTOCURRENCIES",
              "DEPOSIT_PRODUCT_OVERDRAFT_INTEREST_RATE_SETTINGS_NOT_ALLOWED_FOR_PRODUCT_WITH_CRYPTOCURRENCIES",
              "DEPOSIT_PRODUCT_INTEREST_RATE_SETTINGS_NOT_ALLOWED_FOR_PRODUCT_WITH_NON_TRADITIONAL_CURRENCIES",
              "DEPOSIT_PRODUCT_OVERDRAFT_INTEREST_RATE_SETTINGS_NOT_ALLOWED_FOR_PRODUCT_WITH_NON_TRADITIONAL_CURRENCIES",
              "DEPOSIT_PRODUCT_OVERDRAFT_INDEX_RATE_AVAILABLE_ONLY_FOR_FIXED_TERMS",
              "DEPOSIT_PRODUCT_HAS_ASSOCIATED_LOAN_PRODUCTS",
              "DEPOSIT_PRODUCT_INTEREST_RATE_MUST_BE_ZERO_FOR_PRODUCTS_WITH_EXTERNAL_INTEREST",
              "DEPOSIT_PRODUCT_OVERDRAFT_NEGATIVE_DEFAULT_INTEREST_RATE",
              "DEPOSIT_PRODUCT_OVERDRAFT_INTEREST_RATE_SOURCE_IS_MANDATORY",
              "DEPOSIT_PRODUCT_TECHNICAL_OVERDRAFT_NEGATIVE_MIN_INTEREST_RATE",
              "DEPOSIT_PRODUCT_TECHNICAL_OVERDRAFT_NEGATIVE_MAX_INTEREST_RATE",
              "DEPOSIT_PRODUCT_TECHNICAL_OVERDRAFT_NEGATIVE_DEFAULT_INTEREST_RATE",
              "DEPOSIT_PRODUCT_TECHNICAL_OVERDRAFT_INVALID_INTEREST_RATE_MIN_MAX_DEFAULT_TUPLE",
              "DEPOSIT_PRODUCT_TECHNICAL_OVERDRAFT_MIN_MAX_DEFAULT_TUPLE_NOT_AVAILABLE",
              "DEPOSIT_PRODUCT_TECHNICAL_OVERDRAFT_EMPTY_INTEREST_SETTINGS",
              "DEPOSIT_PRODUCT_TECHNICAL_OVERDRAFT_INDEX_INTEREST_NOT_AVAILABLE",
              "DEPOSIT_PRODUCT_TECHNICAL_OVERDRAFT_INTEREST_RATE_SOURCE_IS_MANDATORY",
              "DEPOSIT_PRODUCT_TECHNICAL_OVERDRAFT_NEGATIVE_CALCULATION_FREQUENCY",
              "INCONSISTENT_DEPOSIT_ACCOUNT_BRANCH_ASSOCIATION_CENTRE_OR_CREDIT_OFFICER_MISMATCH",
              "CF_SET_ID_ERROR",
              "CF_SET_INVALID_ID",
              "CF_SET_DUPLICATE_ID",
              "CF_GROUPED_SET_EMPTY_ERROR",
              "CF_GROUPED_SET_INDEX_DUPLICATE_ERROR",
              "CF_STANDARD_VALUES_DEFINED_FOR_GROUPED_SET_ERROR",
              "CF_GROUPED_VALUES_DEFINED_FOR_STANDARD_SET_ERROR",
              "CF_GROUPED_SET_CF_ID_DUPLICATE_ERROR",
              "CF_STANDARD_SET_CF_ID_DUPLICATE_ERROR",
              "CUSTOM_FIELD_ID_BLANK_ERROR",
              "CUSTOM_FIELD_ID_INVALID_ERROR",
              "CF_VALUE_CHECKBOX_TYPE_INVALID_ERROR",
              "CF_VALUE_CLIENT_LINK_TYPE_INVALID_ERROR",
              "CF_VALUE_DATE_TYPE_INVALID_ERROR",
              "CF_VALUE_GROUP_LINK_TYPE_INVALID_ERROR",
              "CF_VALUE_NUMBER_TYPE_INVALID_ERROR",
              "CF_VALUE_SELECTION_TYPE_INVALID_ERROR",
              "CF_VALUE_USER_LINK_TYPE_INVALID_ERROR",
              "CF_VALUES_EMPTY_ERROR",
              "CF_GROUPED_SET_NULL_INDEX_ERROR",
              "CF_GROUPED_SET_INDEX_UNORDERED_ERROR",
              "DUPLICATE_NON_WORKING_DAYS",
              "INVALID_GENERAL_HOLIDAY_IDENTIFIER",
              "HOLIDAY_ID_NOT_UNIQUE_INVALID_OPERATION",
              "HOLIDAY_ID_OUT_OF_LIMITS",
              "CLIENT_ROLE_EMPTY_CONFIGURATION",
              "CLIENT_ROLE_NULL_ROLES_CONFIG",
              "CLIENT_ROLE_NULL_ROLES",
              "CLIENT_ROLE_ID_LENGTH",
              "CLIENT_ROLE_BLANK_ID",
              "CLIENT_ROLE_DUPLICATE_ID",
              "CLIENT_ROLE_NAME_LENGTH",
              "CLIENT_ROLE_BLANK_NAME",
              "CLIENT_ROLE_DUPLICATE_NAME",
              "CLIENT_ROLE_IDENTIFICATION_DOCUMENT_ERROR",
              "CLIENT_ROLE_ID_TEMPLATE_LENGTH",
              "CLIENT_ROLE_ID_TEMPLATE_FORMAT",
              "CLIENT_ROLE_DESCRIPTION_LENGTH",
              "CLIENT_ROLE_DEFAULT_ROLE_REQUIRED",
              "CLIENT_ROLE_BLANK_TYPE",
              "CLIENT_ROLE_DUPLICATE_TYPES",
              "DEFAULT_ROLE_ID",
              "EXPOSURE_AMOUNT_RANGE_VIOLATION",
              "EXPOSURE_AMOUNT_REQUIRED",
              "ARREARS_DAYS_BEFORE_WRITE_OFF_RANGE_VIOLATION",
              "MAX_ALLOWED_UNDO_CLOSURE_PERIOD_RANGE_VIOLATION",
              "MIN_GROUP_SIZE_LIMIT_RANGE_VIOLATION",
              "MIN_GROUP_SIZE_LIMIT_REQUIRED",
              "MAX_GROUP_SIZE_LIMIT_RANGE_VIOLATION",
              "MAX_LOWER_THAN_MIN_GROUP_SIZE_LIMIT",
              "MAX_GROUP_SIZE_LIMIT_REQUIRED",
              "LOAN_RISK_LEVELS_CONFIGURATION_EMPTY",
              "NULL_LOAN_RISK_LEVEL_ENTRY",
              "LOAN_RISK_LEVEL_ID_LENGTH",
              "BLANK_LOAN_RISK_LEVEL_ID",
              "DUPLICATE_LOAN_RISK_LEVEL_ID",
              "NON_ALPHANUMERIC_LOAN_RISK_LEVEL_ID",
              "LOAN_RISK_LEVEL_NAME_LENGTH",
              "LOAN_RISK_LEVEL_NAME_BLANK",
              "NEGATIVE_ARREARS_DAYS_NUMBER",
              "EMPTY_ARREARS_DAYS_NUMBER",
              "ARREARS_DAYS_NUMBER_SIZE",
              "BLANK_PROVISIONING_PERCENT",
              "GROUP_ROLE_NAMES_EMPTY_CONFIGURATION",
              "GROUP_ROLE_NAMES_NULL_CONFIG",
              "GROUP_ROLE_NAME_BLANK_ID",
              "GROUP_ROLE_NAME_ID_LENGTH",
              "GROUP_ROLE_NAME_DUPLICATE_ID",
              "GROUP_ROLE_NAME_BLANK_NAME",
              "GROUP_ROLE_NAME_LENGTH",
              "OBJECT_LABELS_CONFIGURATION_EMPTY",
              "NULL_OBJECT_LABELS_ENTITY",
              "DUPLICATE_OBJECT_LABEL_PAIR",
              "INVALID_NUMBER_OF_OBJECT_LABEL_PAIRS",
              "NULL_OBJECT_LABELS_VALUE_ENTITY",
              "MISSING_LANGUAGE",
              "DUPLICATE_LANGUAGE",
              "EMPTY_SINGULAR_OBJECT_LABEL_VALUE",
              "EMPTY_PLURAL_OBJECT_LABEL_VALUE",
              "ACCOUNTING_RULE_BLANK_ID",
              "ID_NOT_ALPHANUMERIC",
              "INVALID_ID_LENGTH",
              "ACCOUNTING_RULE_DUPLICATE_ID",
              "ACCOUNTING_RULES_CONFIGURATION_EMPTY",
              "NULL_CUSTOM_ACCOUNTING_RULE_ENTRY",
              "DUPLICATE_RULE_FOR_CURRENCY",
              "BRANCHES_ARE_EQUAL",
              "GLACCOUNT_NOT_SET",
              "BRANCHES_NOT_SET",
              "GLACCOUNT_DOESNT_EXIST",
              "BRANCHES_MUST_BE_SET",
              "BOTH_BRANCHES_MUST_BE_SET_OR_BOTH_BRANCHES_NOT_SET",
              "DEFAULT_RULE_ALLOWS_ONLY_GLACCOUNT_IN_ORGBASE_CURRENCY",
              "ONLY_FOREIGN_CURRENCY_ALLOWED_FOR_ALL_BRANCHES_TO_ALL_BRANCHES_RULE",
              "GLACCOUNT_MUST_HAVE_ORGBASE_CURRENCY",
              "NEGATIVE_AUTOMATED_ACCOUNTING_CLOSURES_INTERVAL",
              "AUTOMATED_ACCOUNTING_CLOSURES_INTERVAL_EXCEEDS_LIMIT",
              "DEFAULT_GLACCOUNT_DOESNT_EXIST",
              "ACCOUNTING_RULE_INVALID_BRANCH_ID",
              "ACCOUNTING_RULE_EMPTY_BRANCH_ID",
              "AUTHORIZATION_HOLDS_CONFIGURATION_EMPTY",
              "NULL_AUTHORIZATION_HOLD_ENTITY",
              "NULL_DEFAULT_AUTHORIZATION_HOLD_ENTITY",
              "NON_EMPTY_MCC_FOR_DEFAULT_AUTHORIZATION_HOLD",
              "NON_EMPTY_DESCRIPTION_FOR_DEFAULT_AUTHORIZATION_HOLD",
              "INVALID_DAYS_TO_EXPIRE_FOR_DEFAULT_AUTHORIZATION_HOLD",
              "EMPTY_MCC_FOR_AUTHORIZATION_HOLD",
              "INVALID_DAYS_TO_EXPIRE_FOR_AUTHORIZATION_HOLD",
              "INVALID_DESCRIPTION_FOR_AUTHORIZATION_HOLD",
              "NON_UNIQUE_MCC_FOR_AUTHORIZATION_HOLD",
              "ID_DOCUMENT_TEMPLATES_CONFIGURATION_EMPTY",
              "NULL_ID_DOCUMENT_TEMPLATE_ENTRY",
              "ID_DOCUMENT_TEMPLATE_ID_LENGTH",
              "BLANK_ID_DOCUMENT_TEMPLATE",
              "DUPLICATE_ID_DOCUMENT_TEMPLATE_ID",
              "NON_ALPHANUMERIC_ID_DOCUMENT_TEMPLATE_ID",
              "BLANK_DOCUMENT_TYPE",
              "DOCUMENT_TYPE_LENGTH",
              "BLANK_DOCUMENT_ID_TEMPLATE",
              "DOCUMENT_ID_TEMPLATE_LENGTH",
              "BLANK_ISSUING_AUTHORITY",
              "ISSUING_AUTHORITY_LENGTH",
              "BLANK_MANDATORY_FOR_CLIENT",
              "BLANK_ALLOW_ATTACHMENTS",
              "BASE_CURRENCY",
              "BASE_CURRENCY_REQUIRED",
              "BASE_CURRENCY_EDITED",
              "CURRENCY_CODE_REQUIRED",
              "CURRENCY_NAME_REQUIRED",
              "CURRENCY_SYMBOL_REQUIRED",
              "SYMBOL_POSITION_REQUIRED",
              "CURRENCY_NAME_LENGTH",
              "CURRENCY_SYMBOL_LENGTH",
              "CURRENCY_REQUIRED",
              "FOREIGN_CURRENCY_NULL_ENTRIES",
              "DUPLICATE_BASE_CURRENCY",
              "DUPLICATE_FOREIGN_CURRENCY",
              "EXCHANGE_RATE_REQUIRED",
              "BUY_EXCHANGE_RATE_REQUIRED",
              "SELL_EXCHANGE_RATE_REQUIRED",
              "ACCOUNTING_RATES_REQUIRED",
              "ACCOUNTING_RATE_REQUIRED",
              "ACCOUNTING_RATE_CAN_NOT_BE_SET",
              "BUY_EXCHANGE_RATE_RANGE_VIOLATION",
              "SELL_EXCHANGE_RATE_RANGE_VIOLATION",
              "ACCOUNTING_RATE_RANGE_VIOLATION",
              "RATE_START_DATE_REQUIRED",
              "EXCHANGE_RATES_NULL_ENTRIES",
              "BUY_RATE_GRATER_THAN_SELL_RATE",
              "ACCOUNTING_RATES_NULL_ENTRIES",
              "START_DATE_BEFORE_PREVIOUS_RATE",
              "EDIT_EXISTING_RATE_NOT_ALLOWED",
              "EXISTING_RATES_REMOVAL_NOT_ALLOWED",
              "GL_JOURNAL_ENTRIES_USING_CURRENT_RATES",
              "BEFORE_CONFIGURATION_START_DATE",
              "MULTICURRENCY_FEATURE_IS_DISABLED",
              "DUPLICATE_RATE_START_DATE",
              "CUSTOM_PAYMENT_AMOUNT_DUPLICATE_PREDEFINED_FEE",
              "CUSTOM_PAYMENT_AMOUNT_TYPE_DISALLOWS_PREDEFINED_FEE",
              "CUSTOM_PAYMENT_AMOUNT_TYPE_DOES_NOT_MATCH_PREDEFINED_FEE",
              "CUSTOM_PAYMENT_AMOUNT_TYPE_SHOULD_HAVE_FEE_NAME_FIRST",
              "EXCHANGE_RATE_SHOULD_BE_EMPTY",
              "EXCHANGE_RATE_CAN_NOT_BE_SET",
              "CURRENCY_CODE_LENGTH",
              "CURRENCY_CODE_INVALID_CHARACTERS",
              "INVALID_CURRENCY_TYPE",
              "INVALID_YAML_SYNTAX",
              "LOAN_PRODUCT_CONFIGURATION_EMPTY",
              "LOAN_PRODUCT_CONFIGURATION_NULL_ENTRY",
              "LOAN_PRODUCT_DUPLICATE_ID",
              "LOAN_PRODUCT_ID_LENGTH",
              "LOAN_PRODUCT_NAME_LENGTH",
              "BLANK_LOAN_PRODUCT_ID",
              "BLANK_LOAN_PRODUCT_NAME",
              "BLANK_LOAN_PRODUCT_TYPE",
              "BLANK_LOAN_PRODUCT_CATEGORY",
              "UPDATE_LOAN_PRODUCTS_ERROR",
              "UPDATE_LOAN_PRODUCTS_UNKNOWN_ERROR",
              "LOAN_PRODUCT_FEE_BLANK_ID",
              "LOAN_PRODUCT_GL_ACCOUNT_CODE_IS_NOT_PRESENT",
              "LOAN_PRODUCT_TRANSACTION_CHANNEL_ID_IS_NOT_PRESENT",
              "LOAN_PRODUCT_FEE_TRIGGER_MANDATORY",
              "LOAN_PRODUCT_FEE_APPLICATION_MANDATORY",
              "LOAN_PRODUCT_FEE_STATE_MANDATORY",
              "ARREARS_SETTINGS_INEXISTING_ARREARS_SETTINGS",
              "ARREARS_SETTINGS_INEXISTING_TOLERANCE_CALCULATION_METHOD",
              "ARREARS_SETTINGS_INEXISTING_DATE_CALCULATION_METHOD",
              "ARREARS_SETTINGS_INEXISTING_NON_WORKING_DAYS_METHOD",
              "ARREARS_SETTINGS_NON_POSITIVE_ARREARS_TOLERANCE_PERIOD",
              "ARREARS_SETTINGS_NON_POSITIVE_ARREARS_TOLERANCE_AMOUNT_PERCENTAGE",
              "ARREARS_SETTINGS_TOLERANCE_DAY_OUTSIDE_CONSTRAINTS",
              "ARREARS_SETTINGS_TOLERANCE_CALCULATION_METHOD_CAN_NOT_BE_CHANGED",
              "ARREARS_SETTINGS_INCOMPATIBLE_TOLERANCE_METHOD_AND_PRODUCT_TYPE",
              "ARREARS_SETTINGS_INCONSISTENT_TOLERANCE_VALUES_WITH_ARREARS_TOLERANCE_METHOD",
              "ARREARS_SETTINGS_INVALID_TOLERANCE_PERIOD_MIN_MAX_DEFAULT_TUPLE",
              "ARREARS_SETTINGS_NON_POSITIVE_TOLERANCE_FLOOR_AMOUNT",
              "ARREARS_SETTINGS_INVALID_TOLERANCE_PERCENTAGE_OF_OUTSTANDING_BALANCE_MIN_MAX_DEFAULT_TUPLE",
              "ARREARS_SETTINGS_TOLERANCE_AMOUNT_FEATURE_NOT_ENABLED",
              "ARREARS_SETTINGS_DATE_CALCULATION_METHOD_NOT_ALLOWED",
              "ARREARS_SETTINGS_INVALID_TOLERANCE_AMOUNT_SETTINGS",
              "PRODUCT_LINKING_INCONSISTENT_LINKABLE_SAVINGS_PRODUCT_KEY_WITH_LINKING_STATE",
              "PRODUCT_LINKING_INCONSISTENT_AUTO_LINK_ACCOUNTS_WITH_LINKING_STATE",
              "PRODUCT_LINKING_INCONSISTENT_AUTO_CREATE_LINKED_ACCOUNTS_WITH_LINKING_STATE",
              "PRODUCT_LINKING_INCONSISTENT_AUTO_LINK_ACCOUNTS_WITH_LINKING_PRODUCT",
              "PRODUCT_LINKING_INCONSISTENT_AUTO_CREATE_LINKED_ACCOUNTS_WITH_LINKING_PRODUCT",
              "PRODUCT_LINKING_PRODUCTS_HOLDER_INCOMPATIBILITY",
              "PRODUCT_LINKING_LOAN_HOLDER_INCOMPATIBILITY",
              "PRODUCT_LINKING_OVERDRAFT_INCOMPATIBILITY",
              "PRODUCT_LINKING_ACCOUNTING_INCOMPATIBILITY",
              "PRODUCT_LINKING_NON_OFFSET_SAVING_PRODUCT",
              "PRODUCT_LINKING_INVALID_PRODUCT_LINKING_STATE",
              "PRODUCT_LINKING_LINKED_PRODUCT_CURRENCY_MISMATCH",
              "PRODUCT_LINKING_LINKED_PRODUCT_ACCOUNTING_CURRENCY_MISMATCH",
              "LOAN_PRODUCT_ACCOUNT_LINK_CONFIGURATION_INVALID_DEPOSIT_PRODUCT_ID",
              "LOAN_PRODUCT_ACCOUNT_LINK_CONFIGURATION_SETTLEMENT_METHOD_CANNOT_BE_NULL",
              "FUNDING_SETTINGS_ORGANIZATION_MIN_INTEREST_COMMISSION_GREATER_THAN_MAX_INTEREST",
              "FUNDING_SETTINGS_FUNDER_MIN_INTEREST_COMMISSION_GREATER_THAN_MAX_INTEREST",
              "FUNDING_SETTINGS_FUNDER_AND_ORGANIZATION_MIN_INTEREST_COMMISSION_SUM_GREATER_THAN_MAX_INTEREST_RATE",
              "FUNDING_SETTINGS_INVALID_ORGANIZATION_MIN_MAX_DEFAULT_ORDER",
              "FUNDING_SETTINGS_INVALID_FUNDER_MIN_MAX_DEFAULT_ORDER",
              "FUNDING_SETTINGS_FUNDER_INTEREST_COMMISSION_MUST_BE_NULL",
              "FUNDING_SETTINGS_NULL_FUNDER_INTEREST_COMMISSION_ALLOCATION_TYPE_FOR_ENABLED_FUNDING",
              "FUNDING_SETTINGS_NEGATIVE_ORGANIZATION_INTEREST_COMMISSION_MIN_VALUE",
              "FUNDING_SETTINGS_NEGATIVE_ORGANIZATION_INTEREST_COMMISSION_DEFAULT_VALUE",
              "FUNDING_SETTINGS_NEGATIVE_ORGANIZATION_INTEREST_COMMISSION_MAX_VALUE",
              "FUNDING_SETTINGS_NEGATIVE_FUNDER_INTEREST_COMMISSION_MIN_VALUE",
              "FUNDING_SETTINGS_NEGATIVE_FUNDER_INTEREST_COMMISSION_DEFAULT_VALUE",
              "FUNDING_SETTINGS_NEGATIVE_FUNDER_INTEREST_COMMISSION_MAX_VALUE",
              "FUNDING_SETTINGS_LOCK_FUNDS_AT_APPROVAL_NOT_AVAILABLE_FOR_PRODUCT",
              "FUNDING_SETTINGS_LOCK_FUNDS_AT_APPROVAL_MISSING_FOR_PRODUCT",
              "FUNDING_SETTINGS_LOCK_FUNDS_AT_APPROVAL_ALTERED",
              "FUNDING_SETTINGS_INVALID_ID",
              "LOAN_PRODUCT_FUNDING_SETTINGS_ORGANIZATION_INTEREST_COMMISSION_CANNOT_BE_NULL",
              "LOAN_PRODUCT_FUNDING_SETTINGS_FUNDER_INTEREST_COMMISSION_CANNOT_BE_NULL",
              "LOAN_PRODUCT_INTERNAL_CONTROLS_DORMANCY_PERIOD_RANGE_VIOLATION",
              "LOAN_PRODUCT_INTERNAL_CONTROLS_LOCK_PERIOD_RANGE_VIOLATION",
              "LOAN_PRODUCT_INTERNAL_CONTROLS_CAPPING_PERCENTAGE_RANGE_VIOLATION",
              "LOAN_PRODUCT_INTERNAL_CONTROLS_INCONSISTENT_CAPPING_SETTINGS",
              "LOAN_PRODUCT_INTERNAL_CONTROLS_INCONSISTENT_CAPPING_METHOD",
              "LOAN_PRODUCT_INTERNAL_CONTROLS_FOUR_EYES_PRINCIPLE_NOT_ENABLED",
              "LOAN_PRODUCT_TAX_CONFIGURATION_TAXES_NOT_EDITABLE",
              "LOAN_PRODUCT_TAX_CONFIGURATION_TAXES_NOT_ALLOWED",
              "LOAN_PRODUCT_TAX_CONFIGURATION_TAXES_NOT_ALLOWED_ON_PRODUCT_WITH_PAYMENT_DUE_FEES_ON_DUE_DATES",
              "LOAN_PRODUCT_TAX_CONFIGURATION_TAX_CALCULATION_METHOD_NOT_ALLOWED",
              "LOAN_PRODUCT_TAX_CONFIGURATION_INVALID_TAX_SOURCE_ID",
              "LOAN_PRODUCT_INTEREST_SETTINGS",
              "LOAN_PRODUCT_INTEREST_SETTINGS_INTEREST_APPLICATION_METHOD",
              "LOAN_PRODUCT_INTEREST_SETTINGS_INTEREST_CALCULATION_METHOD",
              "LOAN_PRODUCT_INTEREST_SETTINGS_INTEREST_BALANCE_CALCULATION_METHOD",
              "LOAN_PRODUCT_INTEREST_SETTINGS_INTEREST_TYPE",
              "LOAN_PRODUCT_INTEREST_SETTINGS_DAYS_IN_YEAR",
              "LOAN_PRODUCT_INTEREST_SETTINGS_SCHEDULE_INTEREST_DAYS_COUNT_METHOD",
              "LOAN_PRODUCT_INTEREST_SETTINGS_INTEREST_RATE_SOURCE",
              "LOAN_PRODUCT_INTEREST_SETTINGS_INDEX_RATE_INTEREST_RATE_INVALID",
              "LOAN_PRODUCT_INTEREST_SETTINGS_INDEX_RATE_INDEX_SOURCE_ID",
              "LOAN_PRODUCT_INTEREST_SETTINGS_INTEREST_RATE_TERMS",
              "LOAN_PRODUCT_INTEREST_SETTINGS_INTEREST_RATES_MISMATCH",
              "LOAN_PRODUCT_INTEREST_SETTINGS_INTEREST_RATE_SETTINGS_DUPLICATE_ID",
              "LOAN_PRODUCT_INTEREST_SETTINGS_INTEREST_RATE_SETTINGS_ID",
              "LOAN_PRODUCT_INTEREST_SETTINGS_INTEREST_CALCULATION_METHOD_MISMATCH",
              "LOAN_PRODUCT_INTEREST_SETTINGS_APPLICATION_METHOD_MISMATCH",
              "LOAN_PRODUCT_INDEX_RATE_SETTINGS_ACCRUE_INTEREST_AFTER_MATURITY",
              "LOAN_PRODUCT_INDEX_RATE_SETTINGS_ACCRUE_INTEREST_AFTER_MATURITY_MISMATCH",
              "LOAN_PRODUCT_NON_POSITIVE_FLOOR_OR_CEILING_VALUE",
              "LOAN_PRODUCT_FLOOR_VALUE_GREATER_THAN_CEILING_VALUE",
              "LOAN_PRODUCT_PAYMENT_SETTINGS_PAYMENT_METHOD",
              "LOAN_PRODUCT_PAYMENT_SETTINGS_AMORTIZATION_METHOD",
              "LOAN_PRODUCT_PAYMENT_SETTINGS_LATE_PAYMENT_RECALCULATION_METHOD",
              "LOAN_PRODUCT_PAYMENT_SETTINGS_REPAYMENT_ALLOCATION_ORDER",
              "LOAN_PRODUCT_PAYMENT_SETTINGS_PREPAYMENT_SETTINGS_PREPAYMENT_ACCEPTANCE",
              "LOAN_PRODUCT_PAYMENT_SETTINGS_PREPAYMENT_SETTINGS_FUTURE_PAYMENTS_ACCEPTANCE",
              "LOAN_PRODUCT_PAYMENT_SETTINGS_PRINCIPAL_PAYMENT_SETTINGS_AMOUNT_INVALID",
              "LOAN_PRODUCT_PAYMENT_SETTINGS_PRINCIPAL_PAYMENT_SETTINGS_PERCENTAGE_INVALID",
              "LOAN_PRODUCT_PAYMENT_SETTINGS_PRINCIPAL_PAYMENT_SETTINGS_PAYMENT_METHOD_MISMATCH",
              "LOAN_PRODUCT_PAYMENT_SETTINGS_PRINCIPAL_PAYMENT_SETTINGS_FLOOR_MISMATCH",
              "LOAN_PRODUCT_PAYMENT_SETTINGS_PRINCIPAL_PAYMENT_SETTINGS_TOTAL_PAYMENT_AND_PRINCIPAL_PAYMENT_PAIR_CANNOT_BE_NULL",
              "LOAN_PRODUCT_ACCOUNTING_SETTINGS_ACCOUNTING_METHOD",
              "LOAN_PRODUCT_ACCOUNTING_SETTINGS_INTEREST_ACCRUAL_CALCULATION_CANNOT_BE_NULL",
              "LOAN_PRODUCT_ACCOUNTING_RULES_GL_ACCOUNT_CODE_MANDATORY",
              "LOAN_PRODUCT_ACCOUNTING_RULES_FINANCIAL_RESOURCE_MANDATORY",
              "LOAN_PRODUCT_PENALTY_SETTINGS_PENALTY_CALCULATION_METHOD",
              "LOAN_PRODUCT_AVAILABILITY_SETTINGS_AVAILABLE_FOR_ENTRY_CANNOT_BE_NULL",
              "LOAN_PRODUCT_AVAILABILITY_SETTINGS_BRANCH_ID_DOES_NOT_EXIST",
              "LOAN_PRODUCT_AVAILABILITY_SETTINGS_ALL_BRANCHES_CANNOT_BE_NULL",
              "LOAN_PRODUCT_AVAILABILITY_SETTINGS_ALL_BRANCHES_MUST_BE_SET",
              "LOAN_PRODUCT_CREDIT_ARRANGEMENT_REQUIREMENT_SETTINGS",
              "LOAN_PRODUCT_OFFSET_SETTINGS_ALLOW_OFFSET",
              "LOAN_PRODUCT_REDRAW_SETTINGS_ALLOW_REDRAW",
              "LOAN_PRODUCT_LOAN_AMOUNT_SETTINGS_MAX_NUMBER_OF_TRANCHES",
              "LOAN_PRODUCT_GRACE_PERIOD_SETTINGS_GRACE_PERIOD_TYPE",
              "LOAN_PRODUCT_NEW_ACCOUNT_SETTINGS_ID_GENERATOR_TYPE",
              "LOAN_PRODUCT_NEW_ACCOUNT_SETTINGS_ID_PATTERN",
              "LOAN_PRODUCT_NEW_ACCOUNT_SETTINGS_ACCOUNT_INITIAL_STATE",
              "LOAN_PRODUCT_CURRENCY_CODE",
              "LOAN_PRODUCT_CURRENCY_CODE_INVALID",
              "LOAN_PRODUCT_SCHEDULE_SETTINGS_CANNOT_BE_NULL",
              "LOAN_PRODUCT_SCHEDULE_SETTINGS_REPAYMENT_ELEMENTS_ROUNDING_METHOD_CANNOT_BE_NULL",
              "LOAN_PRODUCT_SCHEDULE_SETTINGS_BILLING_CYCLES_ENABLED_CANNOT_BE_NULL",
              "LOAN_PRODUCT_SCHEDULE_SETTINGS_PREVIEW_SCHEDULE_CANNOT_BE_NULL",
              "LOAN_PRODUCT_SCHEDULE_SETTINGS_PREVIEW_SCHEDULE_ENABLED_CANNOT_BE_NULL",
              "DUPLICATE_ID_WHEN_CREATING_LOAN_ACCOUNT",
              "LOAN_PRODUCT_CREDIT_BALANCE_INVALID_CONFIGURATION",
              "INVALID_API_CONSUMER_ID",
              "API_CONSUMER_BRANCH_CHANGE",
              "API_CONSUMER_HAS_ASSIGNED_CLIENTS_OR_GROUPS",
              "CANNOT_DELETE_SUPPORT_USER_BY_REGULAR_API_CONSUMER",
              "CANNOT_DELETE_DELIVERY_USER_BY_REGULAR_API_CONSUMER",
              "CANNOT_DELETE_API_CONSUMER_WITH_PERFORMED_ACTIVITIES",
              "API_CONSUMER_ALREADY_EXISTS",
              "CANNOT_UPDATE_API_CONSUMER_NAME",
              "INVALID_API_CONSUMER_NAME_FORMAT",
              "INVALID_API_KEY_ID",
              "MISSING_API_CONSUMER_NAME",
              "ROLE_DOES_NOT_HAVE_APIS_ACCESS",
              "INVALID_API_CONSUMER_ROLE_KEY",
              "API_CONSUMER_INVALID_PERMISSIONS",
              "API_CONSUMER_MISSING_PERMISSIONS",
              "DEADLOCK_ERROR",
              "TRANSACTION_CHANNELS_CONFIGURATION_EMPTY",
              "TRANSACTION_CHANNEL_NULL_ROLES_CONFIG",
              "DEFAULT_TRANSACTION_CHANNEL_ID",
              "BLANK_TRANSACTION_CHANNEL_ID",
              "TRANSACTION_CHANNEL_ID_LENGTH",
              "DEFAULT_TRANSACTION_CHANNEL_CONFIG_ID",
              "DEFAULT_TRANSACTION_CHANNEL_STATE",
              "DEFAULT_TRANSACTION_CHANNEL_REQUIRED",
              "TRANSACTION_CHANNEL_NAME_LENGTH",
              "TRANSACTION_CHANNEL_BLANK_NAME",
              "TRANSACTION_CHANNEL_DUPLICATE_NAME",
              "TRANSACTION_CHANNEL_STATE_BLANK",
              "TRANSACTION_CHANNEL_GL_ACCOUNT_DOES_NOT_EXIST",
              "CONSTRAINTS_BLOCK_NULL",
              "CONSTRAINT_ENTRY_NULL",
              "CONSTRAINT_USAGE_NULL",
              "INVALID_UNCONSTRAINED_USAGE",
              "INVALID_LIMITED_USAGE",
              "CONSTRAINT_MATCH_FILTER_INVALID",
              "CONSTRAINT_MATCH_FILTER_NULL",
              "AMOUNT_CONSTRAINT_INVALID_FILTER",
              "TRANSACTION_CONSTRAINT_INVALID_FILTER",
              "PRODUCT_CONSTRAINT_INVALID_FILTER",
              "BETWEEN_FILTER_INVALID_VALUES",
              "EXISTENCE_FILTER_INVALID_VALUES",
              "COMPARATOR_FILTER_INVALID_VALUES",
              "IN_FILTER_INVALID_VALUES",
              "LOANS_IN_FILTER_INVALID_ID",
              "SAVINGS_IN_FILTER_INVALID_ID",
              "LOANS_IN_FILTER_INVALID_TYPE_VALUE",
              "SAVINGS_IN_FILTER_INVALID_TYPE_VALUE",
              "ACCESS_RIGHTS_BLANK",
              "ACCESS_RIGHTS_ALL_USERS_BLANK",
              "ACCESS_RIGHTS_ALL_USERS_FALSE",
              "ACCESS_RIGHTS_BLANK_ROLE_ID",
              "ACCESS_RIGHTS_DUPLICATE_ROLE_ID",
              "ACCESS_RIGHTS_INVALID_ROLE_ID",
              "ACCESS_RIGHTS_ALL_USERS_TRUE",
              "END_OF_DAY_PROCESSING_NULL_PROCESSING_METHOD",
              "END_OF_DAY_PROCESSING_INVALID_FORMAT",
              "END_OF_DAY_PROCESSING_ACCOUNTING_CUT_OFF_FEATURE",
              "END_OF_DAY_PROCESSING_METHOD_NOT_ENABLED",
              "END_OF_DAY_PROCESSING_METHOD_ENABLED",
              "INDEX_RATES_EMPTY_CONFIGURATION",
              "INDEX_RATE_SOURCE_NULL_ENTRY",
              "INDEX_RATE_SOURCE_NULL_RATES",
              "INDEX_RATE_SOURCE_ID_INVALID",
              "INDEX_RATE_SOURCE_ID_DUPLICATE",
              "INDEX_RATE_SOURCE_NAME_EMPTY",
              "INDEX_RATE_SOURCE_NAME_TOO_LONG",
              "INDEX_RATE_SOURCE_NOTES_TOO_LONG",
              "INDEX_RATE_SOURCE_NAME_DUPLICATE",
              "INDEX_RATE_SOURCE_TYPE_INCORRECT",
              "INDEX_RATE_SOURCE_TYPE_IN_USE",
              "INDEX_RATE_CANNOT_BE_CHANGED",
              "INDEX_RATE_ID_INVALID",
              "INDEX_RATE_ID_DUPLICATE",
              "INDEX_RATE_RATE_EMPTY",
              "INDEX_RATE_RATE_RANGE_VIOLATION",
              "INDEX_RATE_NOTES_TOO_LONG",
              "INDEX_RATE_START_DATE_EMPTY",
              "INDEX_RATE_START_DATE_DUPLICATE",
              "INDEX_RATE_START_DATE_BEFORE_REVIEWED_DATE",
              "PAYMENT_HOLIDAYS_ARE_NOT_ALLOWED_FOR_INSTALLMENTS_THAT_HAVE_PLANNED_FEE_DEFINED",
              "PAYMENT_HOLIDAYS_ADJUSTMENT_IS_NOT_ALLOWED_FOR_INSTALLMENTS_THAT_HAVE_PLANNED_FEE_DEFINED",
              "INSTALLMENT_WITH_PLANNED_FEES_DELETED",
              "PRODUCT_DOES_NOT_ALLOW_PLANNED_FEES",
              "DUPLICATE_PLANNED_INSTALLMENT_FEES",
              "PLANNED_FEE_INSTALLMENT_NUMBER_INVALID",
              "UPDATE_ONLY_PLANNED_FEES_MODE",
              "CREATE_ONLY_PLANNED_FEES_MODE",
              "PLANNED_FEE_ENCODED_KEY_INVALID",
              "CANNOT_APPLY_PLANNED_FEES",
              "APPLY_ON_DATE_INVALID",
              "APPLY_ON_DATE_MUST_BE_NULL",
              "CANNOT_UNDO_DISBURSMENT_WITH_PLANNED_FEES_APPLY_ON_DATE",
              "PAYMENT_HOLIDAYS_ADJUSTMENT_IS_NOT_ALLOWED_FOR_LAST_INSTALLMENT_WITH_KEEP_SAME_LOAN_TERM_ENABLED",
              "LOAN_PRODUCT_INVALID_NUMBER_OF_IOF_FEES",
              "LOAN_PRODUCT_IOF_FEES_NOT_ALLOWED_FOR_PRODUCT",
              "LOAN_PRODUCT_NO_TAX_CALCULATION_ALLOWED_FOR_IOF_FEES",
              "LOAN_ACCOUNT_CREATION_NOT_ALLOWED_FOR_PRODUCT_WITH_IOF_FEES",
              "LOAN_PRODUCT_INVALID_IOF_FEE_PERCENTAGE",
              "CURRENCY_CODE_EXCEEDS_LENGTH",
              "CURRENCY_CODE_CANNOT_BE_BLANK",
              "CURRENCY_CODE_CONTAINS_INVALID_CHARACTERS",
              "CURRENCY_NAME_LENGTH_OUTSIDE_CONSTRAINTS",
              "DECIMAL_DIGITS_OUTSIDE_CONSTRAINTS",
              "CUSTOMISABLE_CURRENCIES_FEATURES_NOT_ENABLED",
              "DUPLICATE_CURRENCY_CODE",
              "CURRENCY_TYPE_REQUIRED",
              "INVALID_FIAT_CURRENCY_TYPE",
              "INVALID_CUSTOM_CURRENCY_TYPE",
              "CURRENCY_CRYPTO_FEATURE",
              "CURRENCY_NON_TRADITIONAL_CURRENCIES_FEATURE",
              "CURRENCY_CANNOT_BE_FIAT",
              "CURRENCY_TYPE_NULL",
              "CURRENCY_INVALID_FIAT_TYPE",
              "CURRENCY_INVALID_DIGITS_AFTER_DECIMAL",
              "INVALID_CURRENCY_HOLIDAYS",
              "LOAN_PRODUCT_NO_OPTION_SPECIFIED",
              "LOAN_PRODUCT_HYBRID_GROUP_AND_INDIVIDUAL_OR_PURE_GROUP",
              "LOAN_PRODUCT_HYBRID_GROUP_NOT_AVAILABLE_FOR_TRANCHED_LOAN",
              "LOAN_PRODUCT_HYBRID_GROUP_NOT_AVAILABLE_FOR_OFFSET_LOAN",
              "LOAN_PRODUCT_HYBRID_GROUP_NOT_AVAILABLE_FOR_DBEI_CAPITALIZED_INTEREST",
              "LOAN_PRODUCT_HYBRID_GROUP_NOT_AVAILABLE_WHEN_REDRAW_ENABLED",
              "LOAN_PRODUCT_DOES_NOT_EXIST",
              "LOAN_PRODUCT_NOT_ACTIVATED",
              "LOAN_PRODUCT_EMPTY_ID",
              "LOAN_PRODUCT_EMPTY_NAME",
              "LOAN_PRODUCT_USER_NOT_AUTHORIZED",
              "LOAN_PRODUCT_LOAN_AMOUNT_OUTSIDE_CONSTRAINTS",
              "LOAN_PRODUCT_NON_POSITIVE_LOAN_AMOUNT",
              "LOAN_PRODUCT_NON_POSITIVE_MIN_LOAN_AMOUNT",
              "LOAN_PRODUCT_NON_POSITIVE_MAX_LOAN_AMOUNT",
              "LOAN_PRODUCT_INVALID_LOAN_AMOUNT_MIN_MAX_DEFAULT_TUPLE",
              "LOAN_PRODUCT_LOAN_AMOUNT_DECIMALS_NOT_ALLOWED_WITH_ROUNDING",
              "LOAN_PRODUCT_NON_POSITIVE_DEFAULT_INTEREST_RATE",
              "LOAN_PRODUCT_NON_POSITIVE_MIN_INTEREST_RATE",
              "LOAN_PRODUCT_NON_POSITIVE_MAX_INTEREST_RATE",
              "LOAN_PRODUCT_INVALID_INTEREST_RATE_MIN_MAX_DEFAULT_TUPLE",
              "LOAN_PRODUCT_NEGATIVE_PENALTY_RATE",
              "LOAN_PRODUCT_PENALTY_RATE_OUTSIDE_CONSTRAINTS",
              "LOAN_PRODUCT_INVALID_PENALTY_RATE",
              "LOAN_PRODUCT_NON_POSITIVE_DEFAULT_PENALTY_RATE",
              "LOAN_PRODUCT_NON_POSITIVE_MIN_PENALTY_RATE",
              "LOAN_PRODUCT_NON_POSITIVE_MAX_PENALTY_RATE",
              "LOAN_PRODUCT_INVALID_PENALTY_RATE_MIN_MAX_DEFAULT_TUPLE",
              "LOAN_PRODUCT_PENALTY_METHOD_NOT_ALLOWED_BY_PRODUCT",
              "LOAN_PRODUCT_NON_POSITIVE_DEFAULT_INSTALLMENT",
              "LOAN_PRODUCT_NON_POSITIVE_MIN_INSTALLMENT",
              "LOAN_PRODUCT_NON_POSITIVE_MAX_INSTALLMENT",
              "LOAN_PRODUCT_INVALID_INSTALLMENTS_MIN_MAX_DEFAULT_TUPLE",
              "LOAN_PRODUCT_SCHEDULE_DUE_DATES_METHOD_MISMATCH",
              "LOAN_PRODUCT_FIXED_DAYS_OF_MONTH_MISMATCH",
              "LOAN_PRODUCT_SHORT_MONTH_HANDLING_METHOD_MISMATCH",
              "LOAN_PRODUCT_NUMBER_OF_REPAYMENTS_OUTSIDE_CONSTRAINTS",
              "LOAN_PRODUCT_NON_POSITIVE_NUMBER_OF_REPAYMENTS",
              "LOAN_PRODUCT_NON_ZERO_NUMBER_OF_REPAYMENTS",
              "LOAN_PRODUCT_REPAYMENT_PERIOD_UNIT_MISMATCH",
              "LOAN_PRODUCT_INVALID_PERIOD_UNIT",
              "LOAN_PRODUCT_REPAYMENT_PERIOD_COUNT_MISMATCH",
              "LOAN_PRODUCT_EMPTY_NUMBER_OF_REPAYMENTS",
              "LOAN_PRODUCT_INVALID_FIRST_REPAYMENT_DATE",
              "LOAN_PRODUCT_PRINCIPAL_PAYMENT_INTERVAL_MISMATCH",
              "LOAN_PRODUCT_EMPTY_PRINCIPAL_PAYMENT_INTERVAL",
              "LOAN_PRODUCT_GRACE_PERIOD_TYPE_MISMATCH",
              "LOAN_PRODUCT_NON_POSITIVE_GRACE_PERIOD",
              "LOAN_PRODUCT_NON_POSITIVE_MIN_GRACE_PERIOD",
              "LOAN_PRODUCT_NON_POSITIVE_MAX_GRACE_PERIOD",
              "LOAN_PRODUCT_GRACE_PERIOD_TYPE_NOT_ALLOWED_BY_PRODUCT",
              "LOAN_PRODUCT_DEFAULT_GRACE_PERIOD_VALUE_NOT_ALLOWED",
              "LOAN_PRODUCT_MIN_GRACE_PERIOD_VALUE_NOT_ALLOWED",
              "LOAN_PRODUCT_MAX_GRACE_PERIOD_VALUE_NOT_ALLOWED",
              "LOAN_PRODUCT_GRACE_PERIOD_LENGTH_OUTSIDE_CONSTRAINTS",
              "LOAN_PRODUCT_LOAN_TYPE_MISMATCH",
              "LOAN_PRODUCT_INVALID_FIRST_REPAYMENT_DATE_OFFSET",
              "LOAN_PRODUCT_OFFSET_APPLICABLE_ONLY_FOR_INTERVAL_SCHEDULE_DUE_DATE_METHOD",
              "LOAN_PRODUCT_NON_POSITIVE_INTEREST_RATE",
              "LOAN_PRODUCT_INTEREST_RATE_OUTSIDE_CONSTRAINTS",
              "LOAN_PRODUCT_INTEREST_RATE_SHOULD_BE_ZERO",
              "LOAN_PRODUCT_INTEREST_CHARGE_FREQUENCY_MISMATCH",
              "LOAN_PRODUCT_INTEREST_RATE_SOURCE",
              "LOAN_PRODUCT_INTEREST_RATE_REVIEW_COUNT",
              "LOAN_PRODUCT_INTEREST_RATE_REVIEW_UNIT",
              "LOAN_PRODUCT_NULL_INTEREST_RATE",
              "LOAN_PRODUCT_NOT_NULL_INTEREST_RATE",
              "LOAN_PRODUCT_NULL_INTEREST_SPREAD",
              "LOAN_PRODUCT_NOT_NULL_INTEREST_SPREAD",
              "LOAN_PRODUCT_REPAYMENT_SCHEDULE_TYPE_MISMATCH",
              "LOAN_PRODUCT_PAYMENT_METHOD_MISMATCH",
              "LOAN_PRODUCT_INCONSISTENT_MAX_INSTALLMENTS_WITH_DEFAULT_PRINCIPAL_PAYMENT",
              "LOAN_PRODUCT_GRACE_MAX_INSTALLMENTS_IS_OVER_NUM_MAX_INSTALLEMENT",
              "LOAN_PRODUCT_GRACE_INSTALLMENTS_IS_OVER_NUM_INSTALLMENT",
              "LOAN_PRODUCT_EMPTY_ARREARS_TOLERANCE_PERIOD",
              "LOAN_PRODUCT_EMPTY_ARREARS_TOLERANCE_AMOUNT_PERCENTAGE",
              "LOAN_PRODUCT_ARREARS_TOLERANCE_PERIOD_OUTSIDE_CONSTRAINTS",
              "LOAN_PRODUCT_ARREARS_TOLERANCE_AMOUNT_PERCENTAGE_OUTSIDE_CONSTRAINTS",
              "LOAN_PRODUCT_INCONSISTENT_ARREARS_TOLERANCE_PERIOD_SETUP",
              "LOAN_PRODUCT_INCONSISTENT_TOLERANCE_PERCENTAGE_WITH_FLOOR_AMOUNT",
              "LOAN_PRODUCT_NOT_A_READ_ONLY_FIELD",
              "LOAN_PRODUCT_EMPTY_REPAYMENT_PERIOD",
              "LOAN_PRODUCT_NON_POSITIVE_REQUIRED_GUARANTY_PERCENTAGE",
              "LOAN_PRODUCT_GUARANTORS_NOT_ALLOWED_FOR_PRODUCT_IN_FOREIGN_CURRENCY",
              "LOAN_PRODUCT_INVALID_ELEMENTS_ROUNDING_METHOD",
              "LOAN_PRODUCT_LOCKED_LOAN_ACCOUNT",
              "LOAN_PRODUCT_INVESTOR_FUNDED_LOAN_ACCOUNT",
              "LOAN_PRODUCT_INVALID_PRODUCT_WITH_FUNDING_SOURCE_DISABLED",
              "LOAN_PRODUCT_PAYMENT_PLAN_NOT_ALLOWED_FOR_PRODUCT_TYPE",
              "LOAN_PRODUCT_PAYMENT_PLAN_NOT_EDITABLE",
              "LOAN_PRODUCT_CUSTOM_PAYMENT_ALLOCATION_NOT_ALLOWED_FOR_PRODUCT_TYPE",
              "LOAN_PRODUCT_INVALID_PENALTY_CALCULATION_METHOD_FOR_REPAYMENTS_SCHEDULE_METHOD",
              "LOAN_PRODUCT_INVALID_ROUNDING_REPAYMENT_SCHEDULE_METHOD",
              "LOAN_PRODUCT_INVALID_ROUNDING_REPAYMENT_CURRENCY_FOR_PRODUCT",
              "LOAN_PRODUCT_INVALID_NEW_ACCOUNT_STATE",
              "LOAN_PRODUCT_EMPTY_INTEREST_SETTINGS",
              "LOAN_PRODUCT_INTEREST_APPLICATION_METHOD_NOT_EDITABLE",
              "LOAN_PRODUCT_REPAYMENT_RESCHEDULING_METHOD_NOT_EDITABLE",
              "LOAN_PRODUCT_EMPTY_REPAYMENT_RESCHEDULING_METHOD",
              "LOAN_PRODUCT_INVALID_PRINCIPAL_PAYMENT_FLAT_AMOUNTS_TUPLE",
              "LOAN_PRODUCT_INVALID_PRINCIPAL_PAYMENT_PERCENTAGE_TUPLE",
              "LOAN_PRODUCT_INVALID_PRINCIPAL_PAYMENT_PERCENTAGE_VALUE",
              "LOAN_PRODUCT_INVALID_PRINCIPAL_PAYMENT_FLOOR_AMOUNT",
              "LOAN_PRODUCT_INVALID_PRINCIPAL_PAYMENT_CEILING_AMOUNT",
              "LOAN_PRODUCT_INCONSISTENT_PRINCIPAL_PAYMENT_FLOOR_CEILING_AMOUNTS",
              "LOAN_PRODUCT_MISSING_FIXED_DAYS_OF_MONTH",
              "LOAN_PRODUCT_INTEREST_BALANCE_CALCULATION_METHOD_NOT_ALLOWED",
              "LOAN_PRODUCT_DAYS_IN_YEAR_METHOD_NOT_ALLOWED",
              "LOAN_PRODUCT_AMORTIZATION_PROFILE_ON_FEES_NOT_ALLOWED",
              "LOAN_PRODUCT_INCONSISTENT_INTEREST_CALCULATION_METHOD",
              "LOAN_PRODUCT_INCONSISTENT_INTEREST_RATE_SOURCE_TYPE",
              "LOAN_PRODUCT_INCONSISTENT_SCHEDULE_DUE_DATES_METHOD",
              "LOAN_PRODUCT_INCONSISTENT_SCHEDULE_EDIT_OPTIONS",
              "LOAN_PRODUCT_INCONSISTENT_LATE_REPAYMENTS_RECALCULATION_METHOD",
              "LOAN_PRODUCT_FUTURE_PREPAYMENTS_NOT_ALLOWED",
              "LOAN_PRODUCT_NON_POSITIVE_CAPPING_PERCENTAGE",
              "LOAN_PRODUCT_NON_POSITIVE_INTEREST_COMMISSION",
              "LOAN_PRODUCT_ORGANIZATION_INTEREST_COMMISSION_INTERVAL_MISMATCH",
              "LOAN_PRODUCT_ORGANIZATION_INTEREST_COMMISSION_MUST_BE_ZERO",
              "LOAN_PRODUCT_ORGANIZATION_INTEREST_COMMISSION_MUST_BE_NULL",
              "LOAN_PRODUCT_MISSING_REPAYMENT_AMOUNT_FLOOR",
              "LOAN_PRODUCT_PRINCIPAL_PAYMENT_METHOD_CANNOT_BE_CHANGED_FOR_PRODUCTS_WITH_ACCOUNTS",
              "LOAN_PRODUCT_INVALID_PREPAYMENT_RECALCULATION_METHOD",
              "LOAN_PRODUCT_PRINCIPAL_PAID_INSTALLMENT_STATUS_SHOULD_BE_NULL",
              "LOAN_PRODUCT_INVALID_PRINCIPAL_PAID_INSTALLMENT_STATUS",
              "LOAN_PRODUCT_APPLY_INTEREST_ON_PREPAYMENT_METHOD_CANNOT_BE_NULL",
              "LOAN_PRODUCT_APPLY_INTEREST_ON_PREPAYMENT_METHOD_SHOULD_BE_NULL",
              "LOAN_PRODUCT_INVALID_APPLY_INTEREST_ON_PREPAYMENT_METHOD",
              "LOAN_PRODUCT_INTEREST_RATE_SHOULD_BE_NULL",
              "LOAN_PRODUCT_NUMBER_OF_INSTALLMENTS_SHOULD_BE_NULL",
              "LOAN_PRODUCT_INVALID_REPAYMENT_INTEREST_DAYS_COUNT_METHOD",
              "LOAN_PRODUCT_INVALID_PRINCIPAL_REPAYMENT_INTERVAL",
              "LOAN_PRODUCT_INVALID_INTEREST_CHARGE_FREQUENCY_METHOD_MUST_BE_NULL",
              "LOAN_PRODUCT_INVALID_DAYS_IN_YEARS_METHOD_MUST_BE_NULL",
              "LOAN_PRODUCT_INCONSISTENT_FEE_CALCULATION_METHOD_WITH_INCLUDE_FEE_IN_FLOOR_AMOUNT_OPTION_ENABLED",
              "LOAN_PRODUCT_INCONSISTENT_FEE_CALCULATION_METHOD_WITH_TOTAL_BALANCE_OPTION_ENABLED",
              "LOAN_PRODUCT_INCONSISTENT_LATE_REPAYMENT_FEE_TRIGGER_WITH_TOTAL_BALANCE_OPTION_ENABLED",
              "LOAN_PRODUCT_INCONSISTENT_AMORTIZATION_ACCOUNTING_SETUP",
              "LOAN_PRODUCT_PAYMENT_DUE_FEES_ON_DUE_DATES_NOT_ALLOWED_AT_RESCHEDULE_REFINANCE",
              "LOAN_PRODUCT_ONLY_ACCRUE_LATE_INTEREST_OPTION_IS_ALLOWED",
              "LOAN_PRODUCT_INTEREST_TYPE_NOT_ALLOWED",
              "LOAN_PRODUCT_INCONSISTENT_PRINCIPAL_PAYMENT_SETTINGS_FIELD_VALUE_WITH_PAYMENT_METHOD_TYPE",
              "LOAN_PRODUCT_AMOUNT_ONLY_AVAILABLE_FOR_FLAT_PRINCIPAL_PAYMENT_METHOD",
              "LOAN_PRODUCT_PERCENTAGE_ONLY_AVAILABLE_FOR_PERCENTAGE_PRINCIPAL_PAYMENT_METHOD",
              "LOAN_PRODUCT_INVALID_PRODUCT_CONFIGURATION_FOR_ADJUST_INTEREST_FOR_FIRST_INSTALLMENT_OPTION",
              "LOAN_PRODUCT_INVALID_SCHEDULE_DAYS_COUNT_FOR_ADJUST_INTEREST_FOR_FIRST_INSTALLMENT_OPTION",
              "LOAN_PRODUCT_ADJUST_INTEREST_FOR_THE_FIRST_INSTALLMENT_WHEN_PERIOD_IS_DIFFERENT_THAN_THE_REPAYMENT_PERIOD_FEATURE_IS_DISABLED",
              "LOAN_PRODUCT_INVALID_ACCOUNTING_METHOD",
              "LOAN_PRODUCT_MISSING_RULE",
              "LOAN_PRODUCT_NOT_REQUIRED_RULE",
              "LOAN_PRODUCT_HEADER_ACCOUNT_NOT_ALLOWED",
              "LOAN_PRODUCT_INVALID_GLACCOUNT_TYPE",
              "LOAN_PRODUCT_RULE_WITHOUT_GLACCOUNT",
              "LOAN_PRODUCT_INVALID_INTEREST_ACCRUED_METHOD",
              "LOAN_PRODUCT_DEPOSIT_INTEREST_FEATURE_IS_DISABLED",
              "LOAN_PRODUCT_INVALID_INTEREST_ACCRUAL_CALCULATION",
              "LOAN_PRODUCT_GLACCOUNTS_ARE_NOT_IN_ORGANIZATION_OR_PRODUCT_CURRENCY",
              "LOAN_PRODUCT_GLACCOUNTS_ARE_NOT_IN_PRODUCT_CURRENCY",
              "LOAN_PRODUCT_INCONSISTENT_GLACCOUNTS_CURRENCY_SETUP",
              "LOAN_PRODUCT_INCONSISTENT_FEE_GLACCOUNTS_CURRENCY_SETUP",
              "LOAN_PRODUCT_EMPTY_BRANCHES_LIST_AND_ALL_BRANCHES_IS_FALSE",
              "LOAN_PRODUCT_NON_EMPTY_BRANCHES_LIST_AND_ALL_BRANCHES_IS_TRUE",
              "LOAN_PRODUCT_DUPLICATES_IN_THE_BRANCHES_LIST",
              "LOAN_PRODUCT_INACTIVE_BRANCH_IN_BRANCHES_LIST",
              "LOAN_PRODUCT_INCONSISTENT_REDRAW_SETTINGS_WITH_PRODUCT_CONFIGURATION",
              "LOAN_PRODUCT_INCONSISTENT_REDRAW_SETTINGS_WITH_REDRAW_FACILITY",
              "LOAN_PRODUCT_REDRAW_AND_OFFSET_SETTINGS_ENABLED_SIMULTANEOUSLY",
              "LOAN_PRODUCT_LINKING_NOT_AVAILABLE_WHEN_REDRAW_ENABLED",
              "LOAN_PRODUCT_FUNDING_SOURCES_NOT_AVAILABLE_WHEN_REDRAW_ENABLED",
              "LOAN_PRODUCT_TAXES_NOT_AVAILABLE_WHEN_REDRAW_ENABLED",
              "LOAN_PRODUCT_INCONSISTENT_OFFSET_SETTINGS_WITH_PRODUCT_CONFIGURATION",
              "LOAN_PRODUCT_INCONSISTENT_OFFSET_SETTINGS_WITH_OFFSET_FEATURE",
              "LOAN_PRODUCT_FUNDING_SOURCES_NOT_AVAILABLE_WHEN_OFFSET_ENABLED",
              "LOAN_PRODUCT_TAXES_NOT_AVAILABLE_WHEN_OFFSET_ENABLED",
              "LOAN_PRODUCT_LINKING_IS_MANDATORY_WHEN_OFFSET_ENABLED",
              "LOAN_PRODUCT_LINKED_DEPOSIT_PRODUCT_DOES_NOT_EXIST",
              "LOAN_PRODUCT_LINKED_DEPOSIT_PRODUCT_DOES_NOT_ALLOW_OFFSET",
              "LOAN_PRODUCT_OFFSET_NOT_ALLOWED_FOR_PRODUCT_IN_FOREIGN_CURRENCY",
              "LOAN_PRODUCT_REDRAW_OFFSET_SIMULTANEOUSLY_INVALID_SETTLEMENT_OPTIONS",
              "LOAN_PRODUCT_INVALID_SETTINGS",
              "LOAN_PRODUCT_TOTAL_AMOUNT_NOT_EQUAL_WITH_LOAN_AMOUNT",
              "LOAN_PRODUCT_TOTAL_AMOUNT_MORE_THAN_LOAN_AMOUNT",
              "LOAN_PRODUCT_INVALID_TOTAL_AMOUNT",
              "LOAN_PRODUCT_INVALID_DISBURSEMENT_DATE",
              "LOAN_PRODUCT_DISBURSEMENT_DATE_IN_HOLIDAY",
              "LOAN_PRODUCT_NO_TRANCHE_ALLOWED",
              "LOAN_PRODUCT_NO_TRANCHE_DEFINED",
              "LOAN_PRODUCT_MORE_TRANCHES_THAN_ALLOWED",
              "LOAN_PRODUCT_AMOUNT_DECIMALS_NOT_ALLOWED_WITH_ROUNDING",
              "LOAN_PRODUCT_DISBURSEMENT_DATE_AFTER_LAST_REPAYMENT_DUE_DATE",
              "LOAN_PRODUCT_NO_INSTALLMENT_TO_ALLOCATE_PRINCIPAL",
              "LOAN_PRODUCT_NOT_FOUND",
              "LOAN_PRODUCT_ALREADY_DISBURSED",
              "LOAN_PRODUCT_INVALID_INDEX",
              "LOAN_PRODUCT_DISBURSED_FOR_LOAN_GROUP",
              "LOAN_PRODUCT_CANNOT_DELETE_DISBURSED_TRANCHE",
              "LOAN_PRODUCT_DISBURSED_TRANCHE_AFTER_NOT_DISBURSED_TRANCHE",
              "LOAN_PRODUCT_DISBURSEMENT_DATE_BEFORE_NOT_REVERSED_TRANSACTION",
              "LOAN_PRODUCT_INVALID_ACCOUNT_STATE",
              "LOAN_PRODUCT_CANNOT_MODIFY_TRANCHES_ON_RESCHEDULED_REFINANCED_ACCOUNTS",
              "LOAN_PRODUCT_AMOUNT_SHOULD_BE_STRICT_POSITIVE",
              "LOAN_PRODUCT_BALLOON_PAYMENT_NOT_ALLOWED",
              "LOAN_PRODUCT_OPTIMIZED_PAYMENT_NOT_ALLOWED",
              "LOAN_PRODUCT_OPTIMIZED_PAYMENT_ALLOWED_ONLY_WITH_FIXED_INTEREST_SOURCE_RATE",
              "LOAN_PRODUCT_OPTIMIZED_PAYMENT_ALLOWED_ONLY_WITH_INTERVAL_SCHEDULE_DUE_DATES_METHOD",
              "LOAN_PRODUCT_OPTIMIZED_PAYMENT_ALLOWED_ONLY_WITH_TAXES_DISABLED",
              "LOAN_PRODUCT_ACCRUE_INTEREST_AFTER_MATURITY_IS_MANDATORY",
              "LOAN_PRODUCT_ACCRUE_INTEREST_AFTER_MATURITY_AVALAIBLE_ONLY_FOR_FIXED_LOANS_WITH_INTEREST_APPLIED_ON_REPAYMENT",
              "LOAN_PRODUCT_ARBITRARY_FEE_NOT_ALLOWED",
              "LOAN_PRODUCT_INCOMPATIBLE_FIELDS",
              "LOAN_PRODUCT_INVALID_FIXED_ACCOUNT_REPAYMENT",
              "LOAN_PRODUCT_NOT_POSITIVE_LOAN_BALANCE",
              "LOAN_PRODUCT_INVALID_AMOUNT",
              "LOAN_PRODUCT_FULL_TERM_FEE_CANNOT_BE_AMORTIZED_DUE_TO_APPLICATION_DATE",
              "LOAN_PRODUCT_INVALID_AMORTIZATION_PROFILE",
              "LOAN_PRODUCT_AMORTIZATION_PROFILE_NOT_ALLOWED",
              "LOAN_PRODUCT_INVALID_AMORTIZATION_FREQUENCY",
              "LOAN_PRODUCT_INVALID_AMORTIZATION_FREQUENCY_CUSTOM_INTERVAL_PERIOD_COUNT",
              "LOAN_PRODUCT_INVALID_AMORTIZATION_FREQUENCY_INTERVAL_TYPE",
              "LOAN_PRODUCT_INVALID_AMORTIZATION_FREQUENCY_CUSTOM_INTERVAL_PERIOD_UNIT",
              "LOAN_PRODUCT_INVALID_AMORTIZATION_FREQUENCY_PREDEFINED_INTERVALS_UNIT",
              "LOAN_PRODUCT_AMORTIZATION_FREQUENCY_CUSTOM_INTERVAL_PERIOD_COUNT_NOT_ALLOWED",
              "LOAN_PRODUCT_AMORTIZATION_FREQUENCY_CUSTOM_INTERVAL_PERIOD_UNIT_NOT_ALLOWED",
              "LOAN_PRODUCT_INVALID_AMORTIZATION_SETTINGS",
              "LOAN_PRODUCT_AMORTIZATION_SETTINGS_NOT_ALLOWED",
              "LOAN_PRODUCT_CANNOT_USE_EFFECTIVE_INTEREST_RATE_FEE_WITHOUT_INTEREST_RATE_VALUE",
              "LOAN_PRODUCT_AMORTIZATION_FREQUENCY_INTERVAL_TYPE_NOT_ALLOWED",
              "LOAN_PRODUCT_AMORTIZATION_FREQUENCY_INTERVAL_COUNT_NOT_ALLOWED",
              "LOAN_PRODUCT_INVALID_FEE_APPLICATION",
              "LOAN_PRODUCT_INCONSISTENT_STATE_OF_ORIGINAL_SCHEDULE_FOR_FEE_APPLICATION",
              "LOAN_PRODUCT_INVALID_FEE_AMORTIZATION_UPON_RESCHEDULE_OPTION",
              "LOAN_PRODUCT_FEE_AMORTIZATION_UPON_RESCHEDULE_OPTION_IS_MANDATORY",
              "LOAN_PRODUCT_FEE_TRIGGER_NOT_ALLOWED",
              "LOAN_PRODUCT_FEE_AMOUNT_ALREADY_DEFINED_IN_PRODUCT",
              "LOAN_PRODUCT_CUSTOM_AMOUNT_IS_MANDATORY",
              "LOAN_PRODUCT_FEE_AMOUNT_MUST_BE_STRICTLY_POSITIVE",
              "LOAN_PRODUCT_INVALID_FEE_KEY",
              "LOAN_PRODUCT_FEE_NOT_ALLOWED",
              "LOAN_PRODUCT_FEE_NOT_ACTIVE",
              "LOAN_PRODUCT_PAYMENT_DUE_FEES_ON_DUE_DATES_TRIGGER_NOT_ALLOWED",
              "LOAN_PRODUCT_FEE_AMORTIZATION_PROFILE_CANNOT_BE_CHANGED",
              "LOAN_PRODUCT_FEE_AMORTIZATION_FREQUENCY_CANNOT_BE_CHANGED",
              "LOAN_PRODUCT_FEE_AMORTIZATION_PROFILE_IS_NOT_PROVIDED",
              "LOAN_PRODUCT_MANUAL_PLANNED_NOT_ALLOWED_FOR_PRODUCT",
              "LOAN_PRODUCT_NEGATIVE_DEFAULT_INTEREST_RATE",
              "LOAN_PRODUCT_NEGATIVE_MIN_INTEREST_RATE",
              "LOAN_PRODUCT_NEGATIVE_MAX_INTEREST_RATE",
              "LOAN_PRODUCT_DEFAULT_MIN_MAX_NOT_AVAILABLE",
              "LOAN_PRODUCT_INTEREST_RATE_TERMS_ARE_READONLY",
              "LOAN_PRODUCT_INTEREST_CALCULATION_BALANCE_METHOD_READONLY",
              "LOAN_PRODUCT_INTEREST_CALCULATION_BALANCE_METHOD_NOT_ALLOWED",
              "LOAN_PRODUCT_NO_INDEX_RATE_AVAILABLE",
              "LOAN_PRODUCT_INVALID_INTEREST_RATE_SOURCE",
              "LOAN_PRODUCT_INVALID_INTEREST_REVIEW_COUNT",
              "LOAN_PRODUCT_INVALID_INTEREST_REVIEW_UNIT",
              "LOAN_PRODUCT_INVALID_INTEREST_PAYMENT_POINT",
              "LOAN_PRODUCT_INVALID_COMPOUNDING_FREQUENCY",
              "LOAN_PRODUCT_INVALID_INTEREST_TYPE",
              "LOAN_PRODUCT_TIERED_BAND_AVAILABLE_ONLY_FOR_CURRENT_ACCOUNT",
              "LOAN_PRODUCT_OVERDRAFT_OR_TECHNICAL_OVERDRAFT_MANDATORY_FOR_TIERED_BAND",
              "LOAN_PRODUCT_ADJUSTABLE_INTEREST_RATES_TOGGLE_NOT_ENABLED",
              "LOAN_PRODUCT_INCONSISTENT_INTEREST_SETTINGS_WITH_ADJUSTABLE_INTEREST_RATES",
              "LOAN_PRODUCT_INVALID_INTEREST_FLOOR_VALUE",
              "LOAN_PRODUCT_INVALID_INTEREST_CEILING_VALUE",
              "LOAN_PRODUCT_INVALID_INDEX_RATE_SOURCE_KEY",
              "LOAN_PRODUCT_ADJUSTABLE_INTEREST_RATES_NOT_SUPPORTED_FOR_PRODUCT_SETUP",
              "LOAN_PRODUCT_DOES_NOT_ALLOW_MULTIPLE_FIXED_INTEREST_RATES",
              "LOAN_PRODUCT_DOES_NOT_ALLOW_SAME_INDEX_SOURCE_FOR_MULTIPLE_INDEX_INTEREST_RATES",
              "LOAN_PRODUCT_DELETING_ADJUSTABLE_INTEREST_RATES_NOT_ALLOWED_FOR_PRODUCT_WITH_ACTIVE_ACCOUNTS",
              "LOAN_PRODUCT_INTEREST_RATE_REVIEW_UNIT_IS_MANDATORY_FOR_INDEX_INTEREST_RATE",
              "LOAN_PRODUCT_INTEREST_RATE_REVIEW_COUNT_IS_MANDATORY_FOR_INDEX_INTEREST_RATE",
              "LOAN_PRODUCT_INVALID_ENCODED_KEY_FOR_INTEREST_RATE",
              "LOAN_PRODUCT_NO_INDEX_RATE_SOURCE_AVAILABLE",
              "LOAN_PRODUCT_INDEX_INTEREST_RATE_AVAILABLE_ONLY_FOR_FIXED_INTEREST_TERMS",
              "LOAN_PRODUCT_NEGATIVE_INTEREST_RATE_MANDATORY_FOR_INDEX_INTEREST_RATE",
              "LOAN_PRODUCT_INDEX_RATE_FOR_REGULAR_INTEREST_FEATURE_DISABLED",
              "LOAN_PRODUCT_SETTINGS_FOR_INDEXED_INTEREST_RATE_SOURCE_DEFINED_FOR_FIXED_INTEREST_RATE_SOURCE",
              "LOAN_PRODUCT_READONLY_INTEREST_SETTINGS_FIELDS",
              "LOAN_PRODUCT_INTEREST_RATE_SOURCE_IS_MANDATORY",
              "LOAN_PRODUCT_CURRENCY_NOT_DEFINED",
              "LOAN_PRODUCT_BASE_CURRENCY_CANNOT_BE_REMOVED",
              "LOAN_PRODUCT_CURRENCY_IN_USE_CANNOT_BE_REMOVED",
              "LOAN_PRODUCT_CURRENCY_CANNOT_BE_CHANGED",
              "LOAN_PRODUCT_ONLY_ORGANISATION_BASE_CURRENCY_IS_ALLOWED",
              "LOAN_PRODUCT_MULTIPLE_CURRENCIES_NOT_ALLOWED_FOR_DEPOSIT_PRODUCT",
              "LOAN_PRODUCT_TRANSACTION_AND_ACCOUNT_CURRENCY_MISMATCH",
              "LOAN_PRODUCT_CURRENCY_NOT_FOUND",
              "LOAN_PRODUCT_DUPLICATE_CLIENT_ID",
              "LOAN_PRODUCT_ACCOUNT_ID_ALREADY_IN_USE",
              "LOAN_PRODUCT_INVALID_GROUP_ID",
              "LOAN_PRODUCT_GROUP_ID_ALREADY_IN_USE",
              "LOAN_PRODUCT_ID_ALREADY_IN_USE",
              "LOAN_PRODUCT_ROLE_ID_ALREADY_IN_USE",
              "LOAN_PRODUCT_LATE_PAYMENT_RECALCULATION_METHOD_INVALID_VALUE",
              "LOAN_PRODUCT_LATE_PAYMENT_RECALCULATION_METHOD_NULL_VALUE",
              "LOAN_PRODUCT_NON_TAXABLE_FEE_NOT_ALLOWED",
              "LOAN_PRODUCT_NON_TAXABLE_FEE_NOT_ALLOWED_ON_FIXED_PRODUCT",
              "LOAN_PRODUCT_FEATURE_IS_DISABLED",
              "LOAN_PRODUCT_ACCOUNTING_ACTIONS_NOT_DEFINED",
              "LOAN_PRODUCT_LOAN_ACCOUNT_CREATION_NOT_ALLOWED_FOR_PRODUCT_WITH_IOF_FEES",
              "LOAN_PRODUCT_DUPLICATED_DISBURSEMENT_DATE",
              "LOAN_PRODUCT_DISBURSEMENT_DATES_ARE_NOT_IN_ORDER",
              "LOAN_PRODUCT_CANNOT_MODIFY_DISBURSED_TRANCHE",
              "LOAN_PRODUCT_DUPLICATE_TRANCHE_KEY",
              "LOAN_PRODUCT_CANNOT_MODIFY_TRANCHE",
              "LOAN_PRODUCT_MISSING_TRANCHE",
              "LOAN_PRODUCT_MISSING_TRANCHE_FEE",
              "LOAN_PRODUCT_NEGATIVE_LOAN_BALANCE",
              "LOAN_PRODUCT_REVIEW_COUNT_MUST_BE_GREATER_THAN_ZERO",
              "LOAN_PRODUCT_INTEREST_SETTINGS_APPLICATION_METHOD_INVALID_PARAMETERS",
              "LOAN_PRODUCT_INTEREST_APPLICATION_METHOD_MISMATCH_WITH_APPLY_INTEREST_ON_PREPAYMENT",
              "LOAN_PRODUCT_INVALID_PRODUCT_CONFIGURATION_FOR_ADJUST_TOTAL_DUE_FOR_INSTALLMENTS_WITH_DIFFERENT_INTERVAL_OPTION",
              "LOAN_PRODUCT_ADJUST_TOTAL_DUE_FOR_INSTALLMENTS_WITH_DIFFERENT_INTERVAL_FEATURE_IS_DISABLED",
              "LOAN_PRODUCT_INVALID_CONFIGURATION_FOR_USE_INTEREST_ACCRUED_AS_TOTAL_DUE_WHEN_INTERVAL_IS_DIFFERENT_OPTION",
              "LOAN_PRODUCT_PAYMENT_SETTINGS_METHOD_INVALID",
              "LOAN_PRODUCT_PMT_ADJUSTMENT_THRESHOLD_FEATURE_IS_DISABLED",
              "LOAN_PRODUCT_PMT_ADJUSTMENT_THRESHOLD_DAYS_BIGGER_THAT_INSTALLMENT_DURATION",
              "PMT_ADJUSTMENT_THRESHOLD_MISSING_VALUE",
              "PMT_ADJUSTMENT_THRESHOLD_INVALID_NUMBER_OF_DAYS",
              "ACCOUNT_WITH_NO_REPAYMENT_SCHEDULE_VERSIONING",
              "LOAN_PRODUCT_PENALTY_SETTINGS_PENALTY_CALCULATION_FUNCTION_MISSING",
              "OVERDUE_PENALTIES_ACCRUAL_MECHANISM_FEATURE_IS_DISABLED",
              "LOAN_ACCOUNT_IS_MISSING_PMT_ADJUSTMENT_THRESHOLD",
              "LOAN_ACCOUNT_IS_NOT_EDITABLE",
              "LOAN_PRODUCT_AMORTIZATION_PERIOD_OUTSIDE_CONSTRAINTS",
              "LOAN_PRODUCT_AMORTIZATION_PERIOD_IS_LESS_THAN_NUM_INSTALLMENT",
              "PMT_ADJUSTMENT_THRESHOLD_IS_NOT_SUPPORTED",
              "LOAN_ACCOUNT_NUMBER_OF_INSTALMENTS_OUTSIDE_AMORTIZATION_CONSTRAINTS",
              "INVALID_REPAYMENT_ALLOCATION_ORDER",
              "LOAN_PRODUCT_DUPLICATE_FINANCIAL_RESOURCE_ACCOUNTING_RULE",
              "LOAN_PRODUCT_DECOUPLE_INTEREST_FROM_ARREARS_IS_NOT_SUPPORTED",
              "LOAN_PRODUCT_DECOUPLE_INTEREST_FROM_ARREARS_OPTION_DISABLED",
              "LOAN_PRODUCT_DISABLING_DECOUPLE_INTEREST_FROM_ARREARS_AND_ACCRUE_LATE_INTEREST_NOT_SUPPORTED_DUE_TO_EXISTING_ACCOUNTS",
              "LOAN_PRODUCT_DECOUPLE_INTEREST_FROM_ARREARS_IS_NOT_SUPPORTED_WITHOUT_CUSTOM_REPAYMENTS",
              "FEE_CAPITALISATION_IS_ALLOWED_FOR_PRODUCTS_WITH_AT_LEAST_ONE_MANUAL_FEE",
              "FEE_CAPITALISATION_IS_ALLOWED_FOR_MANUAL_FEES",
              "FEE_CAPITALISATION_IS_NOT_ALLOWED_FOR_THIS_PRODUCT",
              "FEE_CAPITALISATION_PREDEFINED_FEE_KEY_IS_NOT_VALID",
              "FEE_CAPITALISATION_IS_NOT_ALLOWED",
              "FEES_BY_INSTALLMENT_NUMBER_IS_ONLY_APPLICABLE_FOR_LATE_INSTALLMENTS",
              "INTEREST_ONLY_EQUAL_INSTALLMENTS_LOAN_DISABLED",
              "COMPOUNDING_INTEREST_REST_METHODOLOGY_FOR_LOAN_DISABLED",
              "FEE_ALLOCATION_METHOD_ONLY_ALLOWED_WITH_MANUAL_FEE_TYPE",
              "FEE_ALLOCATION_METHOD_IS_NOT_ALLOWED_FOR_THIS_PRODUCT",
              "FEE_ALLOCATION_METHOD_IS_NOT_ALLOWED_WITHOUT_FEATURE_SUPPORT",
              "FEE_ALLOCATION_METHOD_NO_ALLOCATION_ONLY_ALLOWED_WITH_CUSTOM_REPAYMENT_ENABLED",
              "FEE_ACCOUNTING_OVERRIDE_NOT_ALLOWED_ALLOCATION_METHOD_NO_ALLOCATION",
              "FEE_ALLOCATION_METHOD_NOT_ALLOWED_FOR_LOAN_PRODUCT_WITH_LOAN_ACCOUNT",
              "FEE_INTEREST_BEARING_FLAG_NOT_ALLOWED_FOR_FEE_ALLOCATION_METHOD",
              "FEE_INTEREST_BEARING_FLAG_CHANGE_NOT_ALLOWED_FOR_LOAN_PRODUCT_WITH_LOAN_ACCOUNT",
              "FEE_CAPITALISATION_IS_NOT_ALLOWED_ON_PAID_INSTALMENTS",
              "LOAN_PRODUCT_INVALID_REPAYMENT_PERIOD_UNIT",
              "LOAN_PRODUCT_INVALID_REPAYMENT_FREQUENCY",
              "DYNAMIC_MORTGAGE_DISABLED",
              "LOAN_PRODUCT_FEE_INCLUDED_IN_PMT_NOT_ALLOWED_FOR_PRODUCT",
              "LOAN_PRODUCT_INVALID_NUMBER_OF_FEE_INCLUDED_IN_PMT_FEE",
              "LOAN_PRODUCT_NO_TAX_CALCULATION_ALLOWED_FOR_FEE_INCLUDED_IN_PMT",
              "LOAN_PRODUCT_FEE_INCLUDED_IN_PMT_NOT_ALLOWED_WITH_ADJUST_PAYMENT_HOLIDAYS",
              "LOAN_PRODUCT_NULL_FEE_RATE",
              "FEE_RATE_CHANGED_TRANSACTION_CANNOT_BE_ADJUSTED",
              "FLEXIBLE_REPAYMENT_MORTGAGE_DISABLED",
              "MFUNCTION_ALREADY_EXISTS",
              "MFUNCTION_SERVICE_NOT_READY",
              "MFUNCTION_INTERNAL_ERROR",
              "MFUNCTION_OPERATION_IN_PROGRESS",
              "MFUNCTION_MAX_FUNCTION_COUNT_LIMIT_REACHED",
              "MFUNCTION_INTERNAL_LIMIT_REACHED",
              "MFUNCTION_UNSUPPORTED_EXTENSION_POINT",
              "MFUNCTION_MAPPED_FUNCTION_CANNOT_BE_DELETED",
              "MFUNCTION_TOO_MANY_LOG_REQUESTS",
              "MFUNCTION_MAX_SUBSCRIPTION_COUNT_LIMIT_REACHED",
              "MFUNCTION_WITH_SUBSCRIPTION_CAN_NOT_BE_DELETED",
              "MFUNCTION_MAX_SUBSCRIPTION_PER_TOPIC_LIMIT_REACHED",
              "MFUNCTION_MAX_SECRET_COUNT_PER_TENANT_LIMIT_REACHED",
              "MFUNCTION_RATE_LIMIT_EXCEEDED",
              "MFUNCTION_EVENT_STREAMING_TEMPLATE_FOR_EVENT_IS_MISSING",
              "MFUNCTION_BINDING_IS_INVALID",
              "MFUNCTION_BINDING_FUNCTION_IS_MISSING",
              "MFUNCTION_BINDING_FUNCTION_IS_INACTIVE",
              "MFUNCTION_INCORRECT_EXTENSION_POINT",
              "MAMBU_FUNCTIONS_FEATURE_IS_DISABLED",
              "CUSTOM_PAYMENT_PREDEFINED_FEE_DOES_NOT_EXIST",
              "CUSTOM_PAYMENT_NOT_PROCESSED_AS_FEE_ALREADY_PAID",
              "NOT_ALLOWED_WITH_SPECIFIC_INSTALLMENT_KEY",
              "CUSTOM_PAYMENT_NOT_PROCESSED_AS_EXCEEDS_PREDEFINED_FEE_APPLIED",
              "DATA_IMPORT_DISABLED",
              "CUSTOM_REPAYMENT_NOT_PROCESSED_AS_EXCEEDS_BALANCE",
              "INVALID_CURSOR_SEARCH",
              "FEE_CAPITALIZATION_TRANSACTION_REVERSAL_IS_NOT_ALLOWED",
              "CUSTOM_FIELD_VALUES_ARCHIVED",
              "LOAN_PRODUCT_LOAN_ACCOUNT_CREATION_NOT_ALLOWED_FOR_PRODUCT_WITH_FEESINCLUDEDINPMT",
              "LOAN_PRODUCT_LOAN_ACCOUNT_CREATION_NOT_ALLOWED_FOR_FEATURE_WITH_FEESINCLUDEDINPMT",
              "LOAN_ACCOUNT_CREATION_NOT_ALLOWED_FOR_PRODUCT_WITH_FEESINCLUDEDINPMT",
              "LOAN_ACCOUNT_CREATION_NOT_ALLOWED_FOR_FEATURE_WITH_FEESINCLUDEDINPMT",
              "LOAN_PRODUCT_FEE_INCLUDED_IN_PMT_IS_NOT_ALLOWED",
              "FEE_INCLUDED_IN_PMT_IS_NOT_ALLOWED",
              "INVALID_PARTIAL_AUTHORISATION",
              "CUSTOM_FIELD_NON_SEARCHABLE",
              "WEBHOOK_NOTIFICATIONS_SETTINGS_DISABLED",
              "WEBHOOK_TEMPLATE_DUPLICATE_NAME",
              "INVALID_TEMPLATE_NAME",
              "INVALID_TEMPLATE_BODY",
              "NOTIFICATION_MESSAGES_IN_USE",
              "INVALID_WEBHOOK_TEMPLATE_URL",
              "NOTIFICATION_TEMPLATE_IN_USE",
              "INVALID_TRIGGER_DAYS",
              "TRIGGER_MUST_BE_AUTOMATIC_FOR_WEBHOOKS_TEMPLATES",
              "INVALID_TEMPLATE_BASIC_AUTHORIZATION_USERNAME",
              "INVALID_TEMPLATE_BASIC_AUTHORIZATION_PASSWORD",
              "INVALID_TEMPLATE_AUTHORIZATION_FIELDS",
              "CUSTOM_FILTER_DATA_FIELD_VALUE_EMPTY",
              "CUSTOM_FILTER_CONSTRAINT_DATA_TYPE_INVALID",
              "CUSTOM_FILTER_CONSTRAINT_VALUE_NOT_EMPTY",
              "CUSTOM_FILTER_CONSTRAINT_SECOND_VALUE_NOT_EMPTY",
              "CUSTOM_FILTER_CONSTRAINT_VALUE_EMPTY",
              "CUSTOM_FILTER_CONSTRAINT_SECOND_VALUE_EMPTY",
              "CUSTOM_FILTER_CONSTRAINT_VALUE_INVALID",
              "CUSTOM_FILTER_CONSTRAINT_VALUE_INVALID_CSV",
              "FILTERS_LINKING_OPERATOR_NOT_EMPTY",
              "FILTERS_LINKING_OPERATOR_EMPTY",
              "INVALID_CUSTOM_FILTER_DATA_FIELD_ENTITY_TYPE",
              "INVALID_CUSTOM_FILTER_DATA_FIELD_VALUE",
              "INVALID_CUSTOM_FILTER_VALUE",
              "INVALID_CUSTOM_FILTER_FIRST_VALUE_GREATER_THAN_SECOND_VALUE",
              "UNKNOWN_TEMPLATES_ERROR",
              "INVALID_WEBHOOK_TEMPLATE_PATCH_FIELDS",
              "INVALID_WEBHOOK_TEMPLATE_JSON",
              "WEBHOOK_TEMPLATE_PATCH_FIELDS_BREAKING_CONSTRAINTS",
              "WEBHOOK_TEMPLATE_TRIGGER_FIELD_NOT_EDITABLE",
              "WEBHOOK_TEMPLATE_TARGET_FIELD_NOT_EDITABLE",
              "WEBHOOK_TEMPLATE_EVENT_FIELD_NOT_EDITABLE",
              "WEBHOOK_TEMPLATE_OPTION_FIELD_NOT_EDITABLE",
              "WEBHOOK_TEMPLATE_ID_FIELD_NOT_EDITABLE",
              "TEMPLATE_REQUEST_HEADER_ID_FIELD_NOT_EDITABLE",
              "CUSTOM_FILTER_CONSTRAINT_ID_FIELD_NOT_EDITABLE",
              "WEBHOOK_TEMPLATE_POST_FIELDS_BREAKING_CONSTRAINTS",
              "ID_NOT_APPLICABLE",
              "CUSTOM_FILTER_NOT_SUPPORTED_FOR_EVENT",
              "WEBHOOK_TEMPLATE_OPT_OUT_OPTION_NOT_PERMITTED_FOR_CURRENT_TARGET",
              "INVALID_EVENT_FOR_TARGET",
              "ADJACENT_FEATURE_TOGGLE_DISABLED",
              "TARGET_TYPE_NOT_COMPATIBLE_WITH_FILTER_CONSTRAINTS",
              "DATA_FIELD_VALUE_NOT_APPLICABLE_FOR_CUSTOM_DATA_FIELD_TYPE",
              "REFERENCED_CUSTOM_FIELD_FOR_CUSTOM_FILTER_CONSTRAINT_NOT_FOUND",
              "CUSTOM_FIELD_NOT_APPLICABLE_FOR_NATIVE_DATA_FIELD_TYPE",
              "CUSTOM_FIELD_DATA_NOT_COMPATIBLE_WITH_FILTER_CONSTRAINT",
              "ACCOUNT_NAME_CONTAINS_UNSUPPORTED_CHARACTERS",
              "INVALID_MAXIMUM_LOAN_TERM",
              "LOAN_TERM_IS_SAME_WITH_ORIGINAL_TERM",
              "INVALID_REPAYMENT_STATE_PAYMENT_HOLIDAY",
              "DECREASED_TERM_MUST_HAVE_PENDING_INSTALLMENT",
              "DECREASED_TERM_MUST_HAVE_AT_LEAST_TWO_PENDING_INSTALLMENTS",
              "ADVANCE_PAYMENT_IS_NOT_ALLOWED",
              "INVALID_LOAN_PRODUCT_TYPE_FOR_ADVANCE_PAYMENT",
              "INVALID_INTEREST_TYPE_FOR_ADVANCE_PAYMENT",
              "INVALID_AMORTIZATION_METHOD_FOR_ADVANCE_PAYMENT",
              "INVALID_PAYMENT_METHOD_FOR_ADVANCE_PAYMENT",
              "INVALID_PREPAYMENT_ALLOCATION_METHOD_FOR_ADVANCE_PAYMENT",
              "INVALID_INTEREST_BALANCE_CALCULATION_METHOD_FOR_ADVANCE_PAYMENT",
              "LOAN_PRODUCT_ADVANCE_PAYMENT_IS_NOT_ALLOWED",
              "INVALID_ACCOUNT_FEATURE_CONFIGURATION",
              "CREDIT_BALANCE_CANNOT_BE_CHANGED",
              "INVALID_ADVANCE_REPAYMENT_ACCOUNT_IS_LATE",
              "INVALID_ADVANCE_REPAYMENT_ACCOUNT_HAS_FUTURE_PENALTY_DUE_AMOUNTS",
              "INVALID_ADVANCE_REPAYMENT_NOT_ALLOWED_BY_ACCOUNT",
              "INVALID_ADVANCE_REPAYMENT_FUTURE_PAYMENT_DATE_PROVIDED",
              "INVALID_ADVANCE_REPAYMENT_LOCKED_ACCOUNT",
              "INVALID_ADVANCE_REPAYMENT_INSTALLMENT_IS_NOT_FULLY_COVERED",
              "TOO_MANY_CONCURRENT_REQUESTS",
              "DUPLICATE_REQUEST",
              "PAYMENT_HOLIDAY_INTEREST_CANNOT_BE_APPLIED_WHEN_EQUAL_PAYMENT_HOLIDAY_INTEREST_FEATURE_IS_ENABLED",
              "INVALID_PRINCIPAL_PAID_INSTALLMENT_STATUS_FOR_ADVANCE_PAYMENT",
              "BPMN_ELEMENT_NOT_SUPPORTED",
              "BPMN_ATTRIBUTE_NOT_SUPPORTED",
              "BPMN_ATTRIBUTE_VALUE_INVALID",
              "PROCESS_EXECUTION_FAILED"
            ]
          },
          "errorSource": {
            "type": "string"
          }
        }
      },
      "RestructureAccountArrearsSettings": {
        "type": "object",
        "properties": {
          "tolerancePercentageOfOutstandingPrincipal": {
            "type": "number",
            "description": "The arrears tolerance amount"
          },
          "tolerancePeriod": {
            "type": "integer",
            "description": "The arrears tolerance period value",
            "format": "int32"
          }
        },
        "description": "The arrears settings, allowed on the loan account restructure"
      },
      "RestructureInterestSettings": {
        "type": "object",
        "properties": {
          "accountInterestRateSettings": {
            "type": "array",
            "description": "Adjustable interest rates settings for loan account",
            "items": {
              "$ref": "#/components/schemas/AccountInterestRateSettings"
            }
          },
          "interestRate": {
            "type": "number",
            "description": "The interest rate for the restructured loan account"
          },
          "interestSpread": {
            "type": "number",
            "description": "The interest spread for the restructured loan account"
          },
          "pmtAdjustmentThreshold": {
            "$ref": "#/components/schemas/PMTAdjustmentThreshold"
          }
        },
        "description": "The interest settings, allowed on the loan account restructure"
      },
      "RestructurePenaltySettings": {
        "type": "object",
        "properties": {
          "penaltyRate": {
            "type": "number",
            "description": "The penalty rate"
          }
        },
        "description": "The penalty settings, allowed on the loan account restructure."
      },
      "RestructurePrincipalPaymentAccountSettings": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "Fixed principal payment amount"
          },
          "percentage": {
            "type": "number",
            "description": "Principal payment percentage"
          }
        },
        "description": "The principal payment account settings, allowed on the loan account restructure"
      },
      "RestructureScheduleSettings": {
        "type": "object",
        "properties": {
          "amortizationPeriod": {
            "type": "integer",
            "description": "The PMT is calculated as the loan would have [amortizationPeriod] installments.",
            "format": "int32"
          },
          "billingCycleDays": {
            "$ref": "#/components/schemas/BillingCycleDays"
          },
          "fixedDaysOfMonth": {
            "type": "array",
            "description": "The days of the month, when the repayment due dates should be",
            "items": {
              "type": "integer",
              "description": "The days of the month, when the repayment due dates should be",
              "format": "int32"
            }
          },
          "gracePeriod": {
            "type": "integer",
            "description": "The grace period",
            "format": "int32"
          },
          "paymentPlan": {
            "type": "array",
            "description": "A list of periodic payments for the current loan account.",
            "items": {
              "$ref": "#/components/schemas/PeriodicPayment"
            }
          },
          "periodicPayment": {
            "type": "number",
            "description": "The periodic payment"
          },
          "previewSchedule": {
            "$ref": "#/components/schemas/RevolvingAccountSettings"
          },
          "repaymentInstallments": {
            "type": "integer",
            "description": "The number of installments",
            "format": "int32"
          },
          "repaymentPeriodCount": {
            "type": "integer",
            "description": "The payments frequency per set period of time",
            "format": "int32"
          },
          "repaymentPeriodUnit": {
            "type": "string",
            "description": "The frequency of the loan repayment.",
            "enum": [
              "DAYS",
              "WEEKS",
              "MONTHS",
              "YEARS"
            ]
          }
        },
        "description": "The schedule settings, allowed on the loan account restructure"
      },
      "RevolvingAccountCreditBalanceSettings": {
        "type": "object",
        "properties": {
          "allowDepositWithDebitBalance": {
            "type": "boolean",
            "description": "Flag indicating whether deposits are allowed when the account has a positive principal balance."
          },
          "maxCreditBalance": {
            "type": "number",
            "description": "The maximum allowed credit balance."
          },
          "revolvingAccountCreditBalanceAutoAllocationType": {
            "type": "string",
            "description": "Automatic allocation behavior for credit balance on Revolving Credit accounts.",
            "enum": [
              "NO_ALLOCATION",
              "COVER_DUE_AMOUNT",
              "COVER_BALANCE_AMOUNT"
            ]
          }
        },
        "description": "Credit balance details for a Revolving Credit loan account.",
        "readOnly": true
      },
      "RevolvingAccountSettings": {
        "type": "object",
        "properties": {
          "numberOfPreviewedInstalments": {
            "type": "integer",
            "description": "The number of previewed instalments",
            "format": "int32"
          }
        },
        "description": "The number of previewed instalments for an account"
      },
      "ScheduleSettings": {
        "required": [
          "gracePeriod"
        ],
        "type": "object",
        "properties": {
          "amortizationPeriod": {
            "type": "integer",
            "description": "The PMT is calculated as the loan would have [amortizationPeriod] installments.",
            "format": "int32"
          },
          "billingCycle": {
            "$ref": "#/components/schemas/BillingCycleDays"
          },
          "defaultFirstRepaymentDueDateOffset": {
            "type": "integer",
            "description": "The default first repayment due date offset, indicates how many days the first repayment due date should be extended(all other due dates from the schedule are relative to first repayment due date - they will also be affected by the offset)",
            "format": "int32"
          },
          "fixedDaysOfMonth": {
            "type": "array",
            "description": "Specifies the days of the month when the repayment due dates should be. Only available if the Repayment Methodology is FIXED_DAYS_OF_MONTH.",
            "items": {
              "type": "integer",
              "description": "Specifies the days of the month when the repayment due dates should be. Only available if the Repayment Methodology is FIXED_DAYS_OF_MONTH.",
              "format": "int32"
            }
          },
          "gracePeriod": {
            "type": "integer",
            "description": "The grace period. Represents the grace period for loan repayment - in number of installments.",
            "format": "int32"
          },
          "gracePeriodType": {
            "type": "string",
            "description": "The grace period type for a loan account.",
            "enum": [
              "NONE",
              "PAY_INTEREST_ONLY",
              "INTEREST_FORGIVENESS"
            ]
          },
          "hasCustomSchedule": {
            "type": "boolean",
            "description": "Flag used when the repayments schedule for the current account was determined by the user, by editing the due dates or the principal due"
          },
          "paymentPlan": {
            "type": "array",
            "description": "A list of periodic payments for the current loan account.",
            "items": {
              "$ref": "#/components/schemas/PeriodicPayment"
            }
          },
          "periodicPayment": {
            "type": "number",
            "description": "The periodic payment amount for the accounts which have balloon payments or Reduce Number of Installments and Optimized Payments"
          },
          "previewSchedule": {
            "$ref": "#/components/schemas/RevolvingAccountSettings"
          },
          "principalRepaymentInterval": {
            "type": "integer",
            "description": "The principal repayment interval. Indicates the interval of repayments that the principal has to be paid.",
            "format": "int32"
          },
          "repaymentInstallments": {
            "type": "integer",
            "description": "The repayment installments. Represents how many installments are required to pay back the loan.",
            "format": "int32"
          },
          "repaymentPeriodCount": {
            "type": "integer",
            "description": "The repayment period count. Represents how often the loan is to be repaid: stored based on the type repayment option.",
            "format": "int32"
          },
          "repaymentPeriodUnit": {
            "type": "string",
            "description": "The frequency of the loan repayment.",
            "enum": [
              "DAYS",
              "WEEKS",
              "MONTHS",
              "YEARS"
            ]
          },
          "repaymentScheduleMethod": {
            "type": "string",
            "description": "The method used  by the loans to compute the repayment schedule.",
            "enum": [
              "NONE",
              "FIXED",
              "DYNAMIC"
            ]
          },
          "scheduleDueDatesMethod": {
            "type": "string",
            "description": "The schedule due dates method. Used by the loan accounts to determine the due dates of the repayments.",
            "enum": [
              "INTERVAL",
              "FIXED_DAYS_OF_MONTH"
            ]
          },
          "shortMonthHandlingMethod": {
            "type": "string",
            "description": "The short month handling method type for a loan account.",
            "enum": [
              "LAST_DAY_IN_MONTH",
              "FIRST_DAY_OF_NEXT_MONTH"
            ]
          }
        },
        "description": "The schedule settings, holds all schedule properties."
      },
      "ScheduleSettingsForSchedulePreview": {
        "type": "object",
        "properties": {
          "amortizationPeriod": {
            "type": "integer",
            "description": "The PMT is calculated as the loan would have [amortizationPeriod] installments.",
            "format": "int32"
          },
          "fixedDaysOfMonth": {
            "type": "array",
            "description": "Specifies the days of the month when the repayment due dates should be. Only available if the Repayment Methodology is FIXED_DAYS_OF_MONTH.",
            "items": {
              "type": "integer",
              "description": "Specifies the days of the month when the repayment due dates should be. Only available if the Repayment Methodology is FIXED_DAYS_OF_MONTH.",
              "format": "int32"
            }
          },
          "gracePeriod": {
            "type": "integer",
            "description": "The grace period. Represents the grace period for loan repayment - in number of installments.",
            "format": "int32"
          },
          "paymentPlan": {
            "type": "array",
            "description": "A list of periodic payments for the current loan account.",
            "items": {
              "$ref": "#/components/schemas/PeriodicPaymentForSchedulePreview"
            }
          },
          "periodicPayment": {
            "type": "number",
            "description": "The periodic payment amount for the accounts which have balloon payments or Reduce Number of Installments and Optimized Payments"
          },
          "principalRepaymentInterval": {
            "type": "integer",
            "description": "The principal repayment interval. Indicates the interval of repayments that the principal has to be paid.",
            "format": "int32"
          },
          "repaymentInstallments": {
            "type": "integer",
            "description": "The repayment installments. Represents how many installments are required to pay back the loan.",
            "format": "int32"
          },
          "repaymentPeriodCount": {
            "type": "integer",
            "description": "The repayment period count. Represents how often the loan is to be repaid: stored based on the type repayment option.",
            "format": "int32"
          },
          "repaymentPeriodUnit": {
            "type": "string",
            "description": "The frequency of the loan repayment.",
            "enum": [
              "DAYS",
              "WEEKS",
              "MONTHS",
              "YEARS"
            ]
          }
        },
        "description": "The schedule settings, holds all schedule properties needed for schedule preview request."
      },
      "Taxes": {
        "type": "object",
        "properties": {
          "deferredTaxOnInterestAmount": {
            "type": "number",
            "description": "How much taxes on the interest that was pre-paid were added/removed in account, within this transaction. If there is any deferred tax on interest amount set in this transaction, that amount should be included in this field."
          },
          "taxOnFeesAmount": {
            "type": "number",
            "description": "How much taxes on the fees that were paid in this transaction were added/removed in account, within this transaction."
          },
          "taxOnInterestAmount": {
            "type": "number",
            "description": "How much taxes on the interest that was paid in this transaction were added/removed in account, within this transaction."
          },
          "taxOnInterestFromArrearsAmount": {
            "type": "number",
            "description": "The amount of taxes on the interest from arrears that were applied/paid in account, within this transaction."
          },
          "taxOnPaymentHolidaysInterest": {
            "type": "number",
            "description": "The amount of taxes on the Payment Holidays interest that were added/removed in account, within this transaction."
          },
          "taxOnPenaltyAmount": {
            "type": "number",
            "description": "How much taxes on the penalties that were paid in this transaction were added/removed in account, within this transaction."
          },
          "taxRate": {
            "type": "number",
            "description": "The tax rate that was set or changed in this transaction."
          }
        },
        "description": "The taxes applied within a transaction."
      },
      "TerminateLoanAccountInput": {
        "required": [
          "valueDate"
        ],
        "type": "object",
        "properties": {
          "notes": {
            "type": "string",
            "description": "The notes for the terminate action performed on the loan account"
          },
          "valueDate": {
            "type": "string",
            "description": "The date when terminate the loan account",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          }
        },
        "description": "Represents the request payload for the terminate a loan account action"
      },
      "TrancheDisbursementDetails": {
        "type": "object",
        "properties": {
          "disbursementTransactionKey": {
            "type": "string",
            "description": "The key of the disbursement transaction logged when this tranche was disbursed. This field will be null until the tranche disbursement"
          },
          "expectedDisbursementDate": {
            "type": "string",
            "description": "The date when this tranche is supposed to be disbursed (as Organization Time)",
            "format": "date-time",
            "example": "2016-09-06T13:37:50+03:00"
          }
        },
        "description": "The disbursement details regarding a loan tranche."
      },
      "TransactionBalances": {
        "type": "object",
        "properties": {
          "advancePosition": {
            "type": "number",
            "description": "Captures the advance (prepaid) amount."
          },
          "arrearsPosition": {
            "type": "number",
            "description": "Captures the arrears position amount for the account in arrears."
          },
          "expectedPrincipalRedraw": {
            "type": "number",
            "description": "The difference between principal balance and redraw balance after each transaction performed on the loan account."
          },
          "principalBalance": {
            "type": "number",
            "description": "The account redraw balance captured after the transaction update."
          },
          "redrawBalance": {
            "type": "number",
            "description": "The account redraw balance captured after the transaction update."
          },
          "totalBalance": {
            "type": "number",
            "description": "The running balance still owed for the loan."
          }
        },
        "description": "The balances changed within a transaction."
      },
      "TransactionDetails": {
        "type": "object",
        "properties": {
          "transactionChannelId": {
            "type": "string",
            "description": "The id of the transaction channel associated with the transaction details."
          },
          "transactionChannelKey": {
            "type": "string",
            "description": "The encoded key of the transaction channel associated with the transaction details."
          }
        },
        "description": "Contains the details about transaction including fields like transaction channel key and channel id"
      },
      "TransactionInterestSettings": {
        "type": "object",
        "properties": {
          "indexInterestRate": {
            "type": "number",
            "description": "The value of the index interest rate"
          },
          "interestRate": {
            "type": "number",
            "description": "The interest rate. Represents the interest rate for the loan account. The interest on loans is accrued on a daily basis, which allows charging the clients only for the days they actually used the loan amount."
          }
        },
        "description": "The interest settings, holds all the properties regarding interests for the loan account."
      },
      "TransferDetails": {
        "type": "object",
        "properties": {
          "linkedDepositTransactionKey": {
            "type": "string",
            "description": "The key of the related deposit transaction"
          },
          "linkedLoanTransactionKey": {
            "type": "string",
            "description": "The key of the related loan transaction"
          }
        },
        "description": "Represents the transfer details, such as the linked transaction key"
      },
      "_Example_Custom_Fields": {
        "description": "An example of some custom field values. For more information on working with custom fields using the API, see [Using Custom Fields](/api/pages/api-v2/using-custom-fields).",
        "properties": {
          "Example_Checkbox_Field": {
            "description": "A field that will appear as a checkbox in the UI. In the API, the value will be `TRUE` or `FALSE` as a string. The value must be provided as a string, not a boolean.",
            "type": "string",
            "enum": [
              "TRUE",
              "FALSE"
            ]
          },
          "Example_Free_Text_Field": {
            "description": "A field that can contain a string of text. Pay attention to proper JSON escaping if providing values for such fields via API."
          },
          "Example_Number_Field": {
            "description": "A field supporting numbers only. **Please note**: the value is to be provided as a string.",
            "type": "string",
            "format": "number"
          },
          "Example_Select_Field": {
            "description": "A field that supports enumerated values. Requests will fail if the value provided for such a field is not one of the supported IDs or values.",
            "type": "object"
          },
          "Example_Date_Field": {
            "type": "string",
            "format": "date",
            "example": "2018-12-14",
            "description": "A date field takes a date in `YYYY-MM-DD` format."
          },
          "Example_Datetime_Field": {
            "type": "string",
            "format": "datetime",
            "example": "2018-12-14T15:30:00.000+01:30",
            "description": "A date field takes a timestamp in `YYYY-MM-DDThh:mm:ss.SSS+hh:mm` format."
          },
          "Example_UserLink_Field": {
            "type": "string",
            "description": "A user link field takes the `encodedKey` of a Mambu user."
          },
          "Example_GroupLink_Field": {
            "type": "string",
            "description": "A group link field takes the `encodedKey` of a group."
          },
          "Example_ClientLink_Field": {
            "type": "string",
            "description": "A client link field stores the `encodedKey` of a client."
          }
        },
        "example": {
          "Example_Checkbox_Field": "TRUE",
          "Example_Free_Text_Field": "A free text field up to 255 characters in length",
          "Example_Number_Field": "46290",
          "Example_Select_Field": {
            "example_option_id": "873023434",
            "example_option_value": "option 5"
          },
          "Example_Date_Field": "2018-12-14",
          "Example_Datetime_Field": "2020-12-20T15:30:00.000+01:00",
          "Example_UserLink_Field": "8a19cda5778bea6c01778c17fdff027c",
          "Example_GroupLink_Field": "8a19d63c84a36c7f0184a4f33ba85235",
          "Example_ClientLink_Field": "8a19cdac84a3a6c01778a4f33baf027c"
        }
      },
      "_Example_Grouped_CF_Set": {
        "description": "An example of grouped custom field values. These custom field sets can be added more than once, each set will have an index, which needs to be provided when adding, updating, or removing individual custom field values. For more information on working with grouped custom fields using the API, see [Grouped Custom Fields](/api/pages/api-v2/grouped-custom-field-sets).",
        "properties": {
          "_index": {
            "description": "The index for this set of grouped custom field values.",
            "type": "string",
            "format": "number"
          },
          "Example_Checkbox_Field": {
            "description": "A field that will appear as a checkbox in the UI. In the API, the value will be `TRUE` or `FALSE` as a string. The value must be provided as a string, not a boolean.",
            "type": "string",
            "enum": [
              "TRUE",
              "FALSE"
            ]
          },
          "Example_Free_Text_Field": {
            "description": "A field that can contain a string of text. Pay attention to proper JSON escaping if providing values for such fields via API."
          },
          "Example_Number_Field": {
            "description": "A field supporting numbers only. **Please note**: the value is to be provided as a string.",
            "type": "string",
            "format": "number"
          },
          "Example_Select_Field": {
            "description": "A field that supports enumerated values. Requests will fail if the value provided for such a field is not one of the supported IDs or values.",
            "type": "array"
          }
        },
        "example": {
          "Example_Checkbox_Field": "TRUE",
          "Example_Free_Text_Field": "A free text field up to 255 characters in length",
          "Example_Number_Field": "46290",
          "Example_Select_Field": [
            {
              "example_option_id": "123",
              "example_option_value": "option 1"
            },
            {
              "example_option_id": "456",
              "example_option_value": "option 7"
            }
          ],
          "_index": "0"
        }
      }
    },
    "securitySchemes": {
      "basic": {
        "type": "http",
        "scheme": "basic"
      }
    }
  }
}