{
  "swagger": "2.0",
  "info": {
    "title": "apaleo Settings API",
    "description": "Set up and change global account and property settings.",
    "version": "v1"
  },
  "paths": {
    "/settings/v1/capture-policies": {
      "get": {
        "tags": [
          "CapturePolicies"
        ],
        "summary": "Get all capture policies.",
        "description": "Get the list of capture policies.\u003Cbr\u003EYou must have at least one of these scopes: \u0027settings.read, setup.read, setup.manage\u0027.",
        "operationId": "SettingsCapture-policiesGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "Filter capture policies by the specified property",
            "type": "string"
          },
          {
            "in": "query",
            "name": "pageNumber",
            "description": "Page number to retrieve. Default: 1. If the page has no items, the API returns 204 No Content.",
            "type": "integer",
            "default": 1
          },
          {
            "in": "query",
            "name": "pageSize",
            "description": "Items per page. Default: 500. Maximum: 500.",
            "type": "integer",
            "default": 500
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/CapturePolicyListModel"
            }
          },
          "204": {
            "description": "No capture policies could be found."
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "settings.read",
              "setup.read",
              "setup.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/settings/v1/capture-policies/{id}": {
      "get": {
        "tags": [
          "CapturePolicies"
        ],
        "summary": "Get a specific capture policy.",
        "description": "Get a specific capture policy.\u003Cbr\u003EYou must have at least one of these scopes: \u0027settings.read, setup.read, setup.manage\u0027.",
        "operationId": "SettingsCapture-policiesByIdGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The ID of the capture policy.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/CapturePolicyModel"
            }
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "settings.read",
              "setup.read",
              "setup.manage",
              "admin"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "CapturePolicies"
        ],
        "summary": "Allows to modify properties of a capture policy.",
        "description": "Here is the list of operations that are currently allowed:\n- Replace captureNoShowFee flag\n- Replace captureCancellationFee flag\n- Replace capturePrepayment flag\n- Replace PostOtaBankTransferOnCheckOut flag\n- Replace capturePayment configuration\u003Cbr\u003EYou must have at least one of these scopes: \u0027settings.manage, setup.manage\u0027.",
        "operationId": "SettingsCapture-policiesByIdPatch",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the capture policy to be modified.",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Operation"
              }
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "415": {
            "description": "Unsupported media type."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "settings.manage",
              "setup.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/settings/v1/city-tax": {
      "post": {
        "tags": [
          "CityTax"
        ],
        "summary": "Create a city tax.",
        "description": "\u003Cbr\u003EYou must have at least one of these scopes: \u0027settings.manage, setup.manage\u0027.",
        "operationId": "SettingsCity-taxPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "description": "Unique key for safely retrying requests without accidentally performing the same operation twice. \nWe\u0027ll always send back the same response for requests made with the same key, \nand keys can\u0027t be reused with different request parameters. Keys expire after 24 hours.",
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "The definition of the city tax.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateCityTaxModel"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "City tax successfully created.",
            "schema": {
              "$ref": "#/definitions/CityTaxCreatedModel"
            },
            "headers": {
              "Location": {
                "description": "The location of the created resource.",
                "type": "string"
              }
            }
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "415": {
            "description": "Unsupported media type."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "settings.manage",
              "setup.manage",
              "admin"
            ]
          }
        ]
      },
      "get": {
        "tags": [
          "CityTax"
        ],
        "summary": "Get all city taxes.",
        "description": "Get the list of all city taxes.\u003Cbr\u003EYou must have at least one of these scopes: \u0027settings.read, setup.read, setup.manage\u0027.",
        "operationId": "SettingsCity-taxGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "Filter by the specified property",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/CityTaxListModel"
            }
          },
          "204": {
            "description": "No city taxes found."
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "settings.read",
              "setup.read",
              "setup.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/settings/v1/city-tax/{id}": {
      "get": {
        "tags": [
          "CityTax"
        ],
        "summary": "Get a specific city tax.",
        "description": "Get a specific city tax.\u003Cbr\u003EYou must have at least one of these scopes: \u0027settings.read, setup.read, setup.manage\u0027.",
        "operationId": "SettingsCity-taxByIdGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The ID of the city tax.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "languages",
            "description": "\u0027all\u0027 or comma separated list of two-letter language codes (ISO Alpha-2)",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/CityTaxModel"
            }
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "settings.read",
              "setup.read",
              "setup.manage",
              "admin"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "CityTax"
        ],
        "summary": "Allows to modify city tax",
        "description": "Here is the list of operations that are currently allowed:\n- Replace name and description\n- Replace type\n- Replace taxHandlingType\n- Replace value\n- Replace limit\n- Replace, add, or remove subcategories\n- Replace, add, or remove pricingRules\n- Replace vatType\n- Replace priority\n- Replace includeCityTaxInRateAmount\n- Replace, add, or remove ignoredFor\u003Cbr\u003EYou must have at least one of these scopes: \u0027settings.manage, setup.manage\u0027.",
        "operationId": "SettingsCity-taxByIdPatch",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the city tax to be modified.",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Operation"
              }
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "415": {
            "description": "Unsupported media type."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "settings.manage",
              "setup.manage",
              "admin"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "CityTax"
        ],
        "summary": "Delete a city tax",
        "description": "Use this call to delete a city tax.\u003Cbr\u003EYou must have at least one of these scopes: \u0027settings.manage, setup.manage\u0027.",
        "operationId": "SettingsCity-taxByIdDelete",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The ID of the city tax to remove.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Success."
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "settings.manage",
              "setup.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/settings/v1/sub-accounts": {
      "get": {
        "tags": [
          "CustomSubAccounts"
        ],
        "summary": "Returns a list of all sub-accounts.",
        "description": "Returns a list of all sub-accounts.\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.read, setup.read, setup.manage\u0027.",
        "operationId": "SettingsSub-accountsGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "ID of the property",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "pageNumber",
            "description": "Page number to retrieve. Default: 1. If the page has no items, the API returns 204 No Content.",
            "type": "integer",
            "default": 1
          },
          {
            "in": "query",
            "name": "pageSize",
            "description": "Items per page. Default: 500. Maximum: 500.",
            "type": "integer",
            "default": 500
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/CustomSubAccountsListModel"
            }
          },
          "204": {
            "description": "No sub-accounts found."
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "subledger.read",
              "setup.read",
              "setup.manage",
              "admin"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "CustomSubAccounts"
        ],
        "summary": "Create a sub-account.",
        "description": "Create a sub-account.\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.manage, setup.manage\u0027.",
        "operationId": "SettingsSub-accountsPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "description": "Unique key for safely retrying requests without accidentally performing the same operation twice. \nWe\u0027ll always send back the same response for requests made with the same key, \nand keys can\u0027t be reused with different request parameters. Keys expire after 24 hours.",
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "The definition of the sub-account.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateCustomSubAccountModel"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Creation of the new sub-account was successful.",
            "schema": {
              "$ref": "#/definitions/CustomSubAccountCreatedModel"
            },
            "headers": {
              "Location": {
                "description": "The location of the created resource.",
                "type": "string"
              }
            }
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "415": {
            "description": "Unsupported media type."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "subledger.manage",
              "setup.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/settings/v1/sub-accounts/$count": {
      "get": {
        "tags": [
          "CustomSubAccounts"
        ],
        "summary": "Returns number of sub-accounts.",
        "description": "Returns number of sub-account.\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.read, setup.read, setup.manage\u0027.",
        "operationId": "SettingsSub-accounts$countGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "ID of the property",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/CountModel"
            }
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "subledger.read",
              "setup.read",
              "setup.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/settings/v1/sub-accounts/{id}": {
      "get": {
        "tags": [
          "CustomSubAccounts"
        ],
        "summary": "Returns one sub-account.",
        "description": "Get a sub-account by ID.\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.read, setup.read, setup.manage\u0027.",
        "operationId": "SettingsSub-accountsByIdGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The ID of the sub-account.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/CustomSubAccountModel"
            }
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "subledger.read",
              "setup.read",
              "setup.manage",
              "admin"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "CustomSubAccounts"
        ],
        "summary": "Allows to modify the name of the sub-account.",
        "description": "Allows to modify the name of the sub-account.\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.manage, setup.manage\u0027.",
        "operationId": "SettingsSub-accountsByIdPatch",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The ID of the sub-account.",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Operation"
              }
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The sub-account was successfully modified."
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "415": {
            "description": "Unsupported media type."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "subledger.manage",
              "setup.manage",
              "admin"
            ]
          }
        ]
      },
      "head": {
        "tags": [
          "CustomSubAccounts"
        ],
        "summary": "Check if the sub-account exists.",
        "description": "Check if the sub-account exists.\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.read, setup.read, setup.manage\u0027.",
        "operationId": "SettingsSub-accountsByIdHead",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The ID of the sub-account.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The sub-account exists."
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          }
        },
        "security": [
          {
            "oauth2": [
              "subledger.read",
              "setup.read",
              "setup.manage",
              "admin"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "CustomSubAccounts"
        ],
        "summary": "Delete a custom sub-account",
        "description": "Use this call to delete a custom sub-accounts.\nWhen you delete a custom sub-account, the corresponding accounting accounts are either archived (if there are some transactions posted),\nor deleted (if no transactions were posted).\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.manage, setup.manage\u0027.",
        "operationId": "SettingsSub-accountsByIdDelete",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The ID of the sub-accounts.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Deletion of the sub-account was successful."
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "subledger.manage",
              "setup.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/settings/v1/features/{propertyId}": {
      "get": {
        "tags": [
          "FeatureSettings"
        ],
        "summary": "Get feature settings for a property.",
        "description": "Get feature settings for a property.\u003Cbr\u003EYou must have at least one of these scopes: \u0027settings.read, setup.read, setup.manage\u0027.",
        "operationId": "SettingsFeaturesByPropertyIdGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "propertyId",
            "description": "The ID of the property.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Returns feature settings.",
            "schema": {
              "$ref": "#/definitions/FeatureSettingsModel"
            }
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "settings.read",
              "setup.read",
              "setup.manage",
              "admin"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "FeatureSettings"
        ],
        "summary": "Allows to modify feature settings",
        "description": "Here is the list of operations that are currently allowed:\n- Replace areCustomRevenueSubAccountsEnabled flag\n- Replace performAccountingForOpenInvoiceActions flag\n- Replace showRecipientForEachLineItemOnTheInvoice flag\n- Replace addCityTaxOnReservationCreation flag\n- Replace maxAmountForMinimalInvoices value\n- Replace invoiceNumberPattern value\n- Replace advanceInvoiceNumberPattern value\u003Cbr\u003EYou must have at least one of these scopes: \u0027features.toggle, setup.manage\u0027.",
        "operationId": "SettingsFeaturesByPropertyIdPatch",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "propertyId",
            "description": "The ID of the property you want to toggle features for.",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Operation"
              }
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "415": {
            "description": "Unsupported media type."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "features.toggle",
              "setup.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/settings/v1/invoice-address": {
      "get": {
        "tags": [
          "InvoiceAddress"
        ],
        "summary": "Get invoice addresses",
        "description": "Get the list of all invoice addresses.\u003Cbr\u003EYou must have at least one of these scopes: \u0027setup.read, setup.manage, settings.read, settings.manage\u0027.",
        "operationId": "SettingsInvoice-addressGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyIds",
            "description": "",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/InvoiceAddressListModel"
            }
          },
          "204": {
            "description": "No content."
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "admin",
              "setup.read",
              "setup.manage",
              "settings.read",
              "settings.manage"
            ]
          }
        ]
      },
      "put": {
        "tags": [
          "InvoiceAddress"
        ],
        "summary": "Create or update invoice addresses for one or more properties.",
        "description": "If the address does not exist for one of the specified properties, it is created. If it exists, it is completely replaced.\u003Cbr\u003EYou must have at least one of these scopes: \u0027setup.manage, settings.manage\u0027.",
        "operationId": "SettingsInvoice-addressPut",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyIds",
            "required": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "body",
            "name": "body",
            "description": "Address displayed on invoices.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/InvoiceAddressCreateOrReplaceModel"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No content."
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "415": {
            "description": "Unsupported media type."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "admin",
              "setup.manage",
              "settings.manage"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "InvoiceAddress"
        ],
        "summary": "Change fields in the invoice address of one or more properties.",
        "description": "Here is the list of operations that are currently allowed:\n- Replace AddressLine1\n- Add, replace or delete AddressLine2\n- Replace PostalCode\n- Replace City\n- Replace CountryCode\u003Cbr\u003EYou must have at least one of these scopes: \u0027setup.manage, settings.manage\u0027.",
        "operationId": "SettingsInvoice-addressPatch",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyIds",
            "required": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Operation"
              }
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No content."
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "415": {
            "description": "Unsupported media type."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "admin",
              "setup.manage",
              "settings.manage"
            ]
          }
        ]
      }
    },
    "/settings/v1/languages": {
      "get": {
        "tags": [
          "Languages"
        ],
        "summary": "Get the language settings for the account",
        "description": "Get the language settings\u003Cbr\u003EYou must have at least one of these scopes: \u0027settings.read, setup.read, setup.manage\u0027.",
        "operationId": "SettingsLanguagesGet",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "Returns all the account languages.",
            "schema": {
              "$ref": "#/definitions/LanguagesModel"
            }
          },
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "settings.read",
              "setup.read",
              "setup.manage",
              "admin"
            ]
          }
        ]
      },
      "put": {
        "tags": [
          "Languages"
        ],
        "summary": "Replaces the language settings for the account",
        "description": "Use this call to modify the language settings of the account.\u003Cbr\u003EYou must have at least one of these scopes: \u0027settings.manage, setup.manage\u0027.",
        "operationId": "SettingsLanguagesPut",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "The definition of the language settings.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ReplaceLanguagesModel"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Replace of the language settings was successful."
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "415": {
            "description": "Unsupported media type."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "settings.manage",
              "setup.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/settings/v1/market-segments/{id}": {
      "get": {
        "tags": [
          "MarketSegment"
        ],
        "summary": "Get a market segment.",
        "description": "Get a market segment by id.\u003Cbr\u003EYou must have at least one of these scopes: \u0027setup.read, setup.manage\u0027.",
        "operationId": "SettingsMarket-segmentsByIdGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the market segment.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Return market segment.",
            "schema": {
              "$ref": "#/definitions/MarketSegmentModel"
            }
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "setup.read",
              "setup.manage",
              "admin"
            ]
          }
        ]
      },
      "head": {
        "tags": [
          "MarketSegment"
        ],
        "summary": "Check if a market segment exists.",
        "description": "Check if a market segment exists by id.\u003Cbr\u003EYou must have at least one of these scopes: \u0027setup.read, setup.manage\u0027.",
        "operationId": "SettingsMarket-segmentsByIdHead",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the market segment.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The market segment exists."
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          }
        },
        "security": [
          {
            "oauth2": [
              "setup.read",
              "setup.manage",
              "admin"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "MarketSegment"
        ],
        "summary": "Allows to modify market segment.",
        "description": "Here is the list of operations that are currently allowed:\n- Replace name\n- Add, replace and remove description\n- Add, replace and remove propertyIds\u003Cbr\u003EYou must have at least one of these scopes: \u0027settings.manage, setup.manage\u0027.",
        "operationId": "SettingsMarket-segmentsByIdPatch",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the market segment to be modified.",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Operation"
              }
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "415": {
            "description": "Unsupported media type."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "settings.manage",
              "setup.manage",
              "admin"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "MarketSegment"
        ],
        "summary": "Delete a market segment.",
        "description": "Use this call to delete a market segment.\u003Cbr\u003EYou must have this scope: \u0027setup.manage\u0027.",
        "operationId": "SettingsMarket-segmentsByIdDelete",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the market segment.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Deletion of the market segment was successful."
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "setup.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/settings/v1/market-segments": {
      "get": {
        "tags": [
          "MarketSegment"
        ],
        "summary": "Returns a list of all market segments, filtered by the specified parameters.",
        "description": "\u003Cbr\u003EYou must have at least one of these scopes: \u0027setup.read, setup.manage\u0027.",
        "operationId": "SettingsMarket-segmentsGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyIds",
            "description": "Return market segments with any of the specified property ids",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "pageNumber",
            "description": "Page number to retrieve. Default: 1. If the page has no items, the API returns 204 No Content.",
            "type": "integer",
            "default": 1
          },
          {
            "in": "query",
            "name": "pageSize",
            "description": "Items per page. Default: 500. Maximum: 500.",
            "type": "integer",
            "default": 500
          }
        ],
        "responses": {
          "200": {
            "description": "Return market segments.",
            "schema": {
              "$ref": "#/definitions/MarketSegmentListModel"
            }
          },
          "204": {
            "description": "No market segments could be found."
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "setup.read",
              "setup.manage",
              "admin"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "MarketSegment"
        ],
        "summary": "Create a market segment",
        "description": "\u003Cbr\u003EYou must have at least one of these scopes: \u0027settings.manage, setup.manage\u0027.",
        "operationId": "SettingsMarket-segmentsPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "description": "Unique key for safely retrying requests without accidentally performing the same operation twice. \nWe\u0027ll always send back the same response for requests made with the same key, \nand keys can\u0027t be reused with different request parameters. Keys expire after 24 hours.",
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "The definition of the market segment.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateMarketSegmentModel"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Market segment successfully created.",
            "schema": {
              "$ref": "#/definitions/MarketSegmentCreatedModel"
            },
            "headers": {
              "Location": {
                "description": "The location of the created resource.",
                "type": "string"
              }
            }
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "415": {
            "description": "Unsupported media type."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "settings.manage",
              "setup.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/settings/v1/market-segments/$count": {
      "get": {
        "tags": [
          "MarketSegment"
        ],
        "summary": "Returns number of market segments.",
        "description": "Returns number of market segments.\u003Cbr\u003EYou must have at least one of these scopes: \u0027setup.read, setup.manage\u0027.",
        "operationId": "SettingsMarket-segments$countGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyIds",
            "description": "Return market segments with any of the specified property ids",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CountModel"
            }
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "setup.read",
              "setup.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/settings/v1/properties/{id}": {
      "get": {
        "tags": [
          "PropertySettings"
        ],
        "summary": "Get property settings",
        "description": "Get base settings for a property.\u003Cbr\u003EYou must have at least one of these scopes: \u0027settings.read, setup.read, setup.manage\u0027.",
        "operationId": "SettingsPropertiesByIdGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the property.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Returns property settings.",
            "schema": {
              "$ref": "#/definitions/PropertySettingsModel"
            }
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "settings.read",
              "setup.read",
              "setup.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/settings/v1/properties/{propertyId}/time-slice-definitions/{id}": {
      "get": {
        "tags": [
          "TimeSliceDefinitions"
        ],
        "summary": "Get a specific time slice definition",
        "description": "Get a specific time slice definition for a property. A time slice definition specifies\nthe pattern for recurring time slots. The time slots define when reservations\nin the property can start or end.\nIt is used in the rate plans when managing prices for renting out the units.\u003Cbr\u003EYou must have at least one of these scopes: \u0027settings.read, setup.read, setup.manage\u0027.",
        "operationId": "SettingsPropertiesByPropertyIdTime-slice-definitionsByIdGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "propertyId",
            "description": "The id of the property.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "id",
            "description": "The id of the time slice definition.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "expand",
            "description": "List of all embedded resources that should be expanded in the response. Possible values are: actions. All other values will be silently ignored.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "actions"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the time slice definition.",
            "schema": {
              "$ref": "#/definitions/TimeSliceDefinitionModel"
            }
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "settings.read",
              "setup.read",
              "setup.manage",
              "admin"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "TimeSliceDefinitions"
        ],
        "summary": "Modifies a specific time slice definition for the property",
        "description": "Use this call to modify a time slice definition of the property.\nHere is the list of operations that are currently allowed:\n- Replace Name\n- Replace CheckInTime (only possible if the time slice definition is not in-use)\n- Replace CheckOutTime (only possible if the time slice definition is not in-use)\u003Cbr\u003EYou must have at least one of these scopes: \u0027settings.manage, setup.manage\u0027.",
        "operationId": "SettingsPropertiesByPropertyIdTime-slice-definitionsByIdPatch",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "propertyId",
            "description": "The id of the property.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "id",
            "description": "The id of the time slice definition.",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Operation"
              }
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Time slice definition was successfully modified."
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "415": {
            "description": "Unsupported media type."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "settings.manage",
              "setup.manage",
              "admin"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "TimeSliceDefinitions"
        ],
        "summary": "Delete a certain time slice definition",
        "description": "Use this call to delete a time slice definition. This is only possible if a time slice definition is not in-use\u003Cbr\u003EYou must have at least one of these scopes: \u0027settings.manage, setup.manage\u0027.",
        "operationId": "SettingsPropertiesByPropertyIdTime-slice-definitionsByIdDelete",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "propertyId",
            "description": "The id of the property.",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "id",
            "description": "The id of the time slice definition.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Deletion of the time slice definition was successful."
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "settings.manage",
              "setup.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/settings/v1/properties/{propertyId}/time-slice-definitions": {
      "get": {
        "tags": [
          "TimeSliceDefinitions"
        ],
        "summary": "Get time slice definitions",
        "description": "Get all time slice definitions for a property. A time slice definition specifies\nthe pattern for recurring time slots. The time slots define when reservations\nin the property can start or end.\nThey are used in the rate plans when managing prices for renting out the units.\u003Cbr\u003EYou must have at least one of these scopes: \u0027settings.read, setup.read, setup.manage\u0027.",
        "operationId": "SettingsPropertiesByPropertyIdTime-slice-definitionsGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "propertyId",
            "description": "The id of the property.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "expand",
            "description": "List of all embedded resources that should be expanded in the response. Possible values are: actions. All other values will be silently ignored.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "actions"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the time slice definitions.",
            "schema": {
              "$ref": "#/definitions/TimeSliceDefinitionListModel"
            }
          },
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "settings.read",
              "setup.read",
              "setup.manage",
              "admin"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "TimeSliceDefinitions"
        ],
        "summary": "Creates a time slice definition",
        "description": "Use this call to create a time slice definition.\u003Cbr\u003EYou must have at least one of these scopes: \u0027settings.manage, setup.manage\u0027.",
        "operationId": "SettingsPropertiesByPropertyIdTime-slice-definitionsPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "propertyId",
            "description": "The id of the property.",
            "required": true,
            "type": "string"
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "description": "Unique key for safely retrying requests without accidentally performing the same operation twice. \nWe\u0027ll always send back the same response for requests made with the same key, \nand keys can\u0027t be reused with different request parameters. Keys expire after 24 hours.",
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "The payload of the time slice definition.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateTimeSliceDefinitionModel"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Creation of a new time slice definition was successful.",
            "schema": {
              "$ref": "#/definitions/TimeSliceDefinitionCreatedModel"
            },
            "headers": {
              "Location": {
                "description": "The location of the created resource.",
                "type": "string"
              }
            }
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "415": {
            "description": "Unsupported media type."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "settings.manage",
              "setup.manage",
              "admin"
            ]
          }
        ]
      }
    }
  },
  "definitions": {
    "ActionModel[TimeSliceDefinitionAction,NotAllowedTimeSliceDefinitionActionReason]": {
      "type": "object",
      "required": [
        "action",
        "isAllowed"
      ],
      "properties": {
        "action": {
          "type": "string",
          "enum": [
            "ModifyCheckInCheckOutTime",
            "Delete"
          ]
        },
        "isAllowed": {
          "type": "boolean"
        },
        "reasons": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ActionReasonModel[NotAllowedTimeSliceDefinitionActionReason]"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "ActionReasonModel[NotAllowedTimeSliceDefinitionActionReason]": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "enum": [
            "ModifyCheckInCheckOutTimeNotAllowedForUsedTimeSliceDefinition",
            "DeleteIsNotAllowedForUsedTimeSliceDefinition"
          ]
        },
        "message": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    },
    "CapturePolicyItemModel": {
      "type": "object",
      "required": [
        "captureCancellationFee",
        "captureNoShowFee",
        "capturePayment",
        "capturePrepayment",
        "code",
        "id",
        "postOtaBankTransferOnCheckOut",
        "propertyId"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the capture policy"
        },
        "code": {
          "type": "string",
          "description": "The code of the capture policy"
        },
        "captureNoShowFee": {
          "type": "boolean",
          "description": "Specify whether the no-show fee should be captured automatically, when a reservation is set to no-show"
        },
        "captureCancellationFee": {
          "type": "boolean",
          "description": "Specify whether the cancellation fee should be captured automatically, when a reservation is cancelled"
        },
        "capturePrepayment": {
          "type": "boolean",
          "description": "Specify if prepayments should be captured automatically, when a reservation is created or its payment account changed"
        },
        "postOtaBankTransferOnCheckOut": {
          "type": "boolean",
          "description": "Specify if reservations coming from source or channel Booking.com will be automatically marked as paid on check-out. Caution: only select this, if you configured Booking.com \u003E Finance to be \u0027Payments by Booking.com\u0027"
        },
        "capturePayment": {
          "type": "string",
          "description": "Specify if and when payments should be captured automatically.",
          "enum": [
            "Manual",
            "CheckIn",
            "CheckOut"
          ]
        },
        "propertyId": {
          "type": "string",
          "description": "The property this capture policy is valid for"
        }
      },
      "additionalProperties": false
    },
    "CapturePolicyListModel": {
      "type": "object",
      "required": [
        "capturePolicies",
        "count"
      ],
      "properties": {
        "capturePolicies": {
          "type": "array",
          "description": "List of capture policies",
          "items": {
            "$ref": "#/definitions/CapturePolicyItemModel"
          }
        },
        "count": {
          "type": "integer",
          "description": "Total count of items",
          "format": "int64"
        }
      },
      "additionalProperties": false,
      "example": {
        "capturePolicies": [
          {
            "id": "MUC-CAP",
            "code": "CAP",
            "captureNoShowFee": false,
            "captureCancellationFee": false,
            "capturePrepayment": true,
            "postOtaBankTransferOnCheckOut": false,
            "capturePayment": "CheckOut",
            "propertyId": "MUC"
          }
        ],
        "count": 1
      }
    },
    "CapturePolicyModel": {
      "type": "object",
      "required": [
        "captureCancellationFee",
        "captureNoShowFee",
        "capturePayment",
        "capturePrepayment",
        "id",
        "postOtaBankTransferOnCheckOut",
        "propertyId"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the capture policy"
        },
        "code": {
          "type": "string",
          "description": "The code of the capture policy",
          "x-nullable": true
        },
        "captureNoShowFee": {
          "type": "boolean",
          "description": "Specify whether the no-show fee should be captured automatically, when a reservation is set to no-show"
        },
        "captureCancellationFee": {
          "type": "boolean",
          "description": "Specify whether the cancellation fee should be captured automatically, when a reservation is cancelled"
        },
        "capturePrepayment": {
          "type": "boolean",
          "description": "Specify if prepayments should be captured automatically, when a reservation is created or its payment account changed"
        },
        "postOtaBankTransferOnCheckOut": {
          "type": "boolean",
          "description": "Specify if reservations coming from source or channel Booking.com will be automatically marked as paid on check-out. Caution: only select this, if you configured Booking.com \u003E Finance to be \u0027Payments by Booking.com\u0027"
        },
        "capturePayment": {
          "type": "string",
          "description": "Specify if and when payments should be captured automatically.",
          "enum": [
            "Manual",
            "CheckIn",
            "CheckOut"
          ]
        },
        "propertyId": {
          "type": "string",
          "description": "The property this capture policy is valid for"
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "MUC-CAP",
        "code": "CAP",
        "captureNoShowFee": false,
        "captureCancellationFee": false,
        "capturePrepayment": true,
        "postOtaBankTransferOnCheckOut": false,
        "capturePayment": "CheckOut",
        "propertyId": "MUC"
      }
    },
    "CityTaxConfigModel": {
      "type": "object",
      "properties": {
        "distributionChannel": {
          "$ref": "#/definitions/DistributionChannelTaxConfigModel"
        }
      },
      "additionalProperties": false
    },
    "CityTaxCreatedModel": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The city tax ID"
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "MUC-FLE"
      }
    },
    "CityTaxItemModel": {
      "type": "object",
      "required": [
        "code",
        "description",
        "id",
        "includeCityTaxInRateAmount",
        "name",
        "priority",
        "propertyId",
        "taxHandlingType",
        "type",
        "value",
        "vatType"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of this city tax"
        },
        "code": {
          "type": "string",
          "description": "The code for the city tax"
        },
        "name": {
          "type": "string",
          "description": "The name of the city tax",
          "minLength": 1
        },
        "description": {
          "type": "string",
          "description": "The description of the city tax",
          "minLength": 1
        },
        "propertyId": {
          "type": "string",
          "description": "The ID of the property for which the city tax was created"
        },
        "type": {
          "type": "string",
          "description": "The base on which the city tax is calculated",
          "enum": [
            "PercentOfGross",
            "PercentOfNet",
            "PerRoomPerNight",
            "PerPersonPerNight",
            "PerPersonPerNightBasedOnNetPrice",
            "PerPersonPerNightBasedOnGrossPrice"
          ]
        },
        "taxHandlingType": {
          "type": "string",
          "description": "How to treat the calculated city tax: as before tax or after tax",
          "enum": [
            "BeforeTax",
            "AfterTax"
          ]
        },
        "value": {
          "type": "number",
          "description": "Depending on the type, the percent or multiplier used to calculate city tax",
          "format": "double"
        },
        "vatType": {
          "type": "string",
          "description": "Specifies which VAT applies.",
          "enum": [
            "Null",
            "VeryReduced",
            "Reduced",
            "Normal",
            "Without",
            "Special",
            "Special1",
            "Special2",
            "ReducedCovid19",
            "NormalCovid19",
            "Mixed"
          ]
        },
        "priority": {
          "type": "integer",
          "description": "Order in which city taxes should be applied. Lower numbers are applied first",
          "format": "int32"
        },
        "includeCityTaxInRateAmount": {
          "type": "boolean",
          "description": "Whether city tax is included in the rate, or added on top of it. Default is \u0060false\u0060"
        }
      },
      "additionalProperties": false
    },
    "CityTaxListModel": {
      "type": "object",
      "required": [
        "cityTaxes",
        "count"
      ],
      "properties": {
        "cityTaxes": {
          "type": "array",
          "description": "List of city taxes",
          "items": {
            "$ref": "#/definitions/CityTaxItemModel"
          }
        },
        "count": {
          "type": "integer",
          "description": "Total count of items",
          "format": "int64"
        }
      },
      "additionalProperties": false,
      "example": {
        "cityTaxes": [
          {
            "id": "BER-TAX",
            "code": "TAX",
            "name": "Bettensteuer",
            "description": "5 Euro per person per night",
            "propertyId": "BER",
            "type": "PerPersonPerNight",
            "taxHandlingType": "AfterTax",
            "value": 1.0,
            "vatType": "Without",
            "priority": 1,
            "includeCityTaxInRateAmount": false
          }
        ],
        "count": 1
      }
    },
    "CityTaxModel": {
      "type": "object",
      "required": [
        "code",
        "description",
        "id",
        "includeCityTaxInRateAmount",
        "name",
        "priority",
        "propertyId",
        "taxHandlingType",
        "type",
        "value",
        "vatType"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of this city tax"
        },
        "code": {
          "type": "string",
          "description": "The code for the city tax"
        },
        "name": {
          "type": "object",
          "description": "The name of the city tax, as displayed to guests on invoice, offer, etc.",
          "additionalProperties": {
            "type": "string",
            "x-nullable": true
          }
        },
        "description": {
          "type": "object",
          "description": "The description of the city tax, as displayed to guests.",
          "additionalProperties": {
            "type": "string",
            "x-nullable": true
          }
        },
        "propertyId": {
          "type": "string",
          "description": "The ID of the property for which the city tax was created"
        },
        "type": {
          "type": "string",
          "description": "The base on which the city tax is calculated.",
          "enum": [
            "PercentOfGross",
            "PercentOfNet",
            "PerRoomPerNight",
            "PerPersonPerNight",
            "PerPersonPerNightBasedOnNetPrice",
            "PerPersonPerNightBasedOnGrossPrice"
          ]
        },
        "taxHandlingType": {
          "type": "string",
          "description": "How to treat the calculated city tax: as before tax or after tax",
          "enum": [
            "BeforeTax",
            "AfterTax"
          ]
        },
        "value": {
          "type": "number",
          "description": "Depending on the type, the percent or multiplier used to calculate city tax",
          "format": "double"
        },
        "limit": {
          "type": "integer",
          "description": "If set, limits the calculation of the city tax to the specified number of time slices, starting from the beginning.\n\nIf not set, the city tax will be calculated for the whole stay.",
          "format": "int32",
          "x-nullable": true
        },
        "subcategories": {
          "type": "array",
          "description": "Additional subcategories for different age groups that are eligible for a reduced city tax.  Only set if the type is \u0027PerPersonPerNight\u0027, \u0027PercentOfGross\u0027, \u0027PerPersonPerNightBasedOnNetPrice\u0027 or \u0027PerPersonPerNightBasedOnGrossPrice\u0027",
          "items": {
            "$ref": "#/definitions/CityTaxSubcategoryModel"
          },
          "x-nullable": true
        },
        "pricingRules": {
          "type": "array",
          "description": "Additional set of rules where you can set a fixed city tax value based on the accommodation cost. Only set if the type is \u0027PerPersonPerNightBasedOnNetPrice\u0027 or \u0027PerPersonPerNightBasedOnGrossPrice\u0027",
          "items": {
            "$ref": "#/definitions/CityTaxPricingRuleModel"
          },
          "x-nullable": true
        },
        "vatType": {
          "type": "string",
          "description": "Specifies which VAT applies.",
          "enum": [
            "Null",
            "VeryReduced",
            "Reduced",
            "Normal",
            "Without",
            "Special",
            "Special1",
            "Special2",
            "ReducedCovid19",
            "NormalCovid19",
            "Mixed"
          ]
        },
        "priority": {
          "type": "integer",
          "description": "Order in which city taxes should be applied. Lower numbers are applied first",
          "format": "int32",
          "maximum": 2147483647,
          "minimum": 1
        },
        "includeCityTaxInRateAmount": {
          "type": "boolean",
          "description": "Whether city tax is included in the rate, or added on top of it. Default is \u0060false\u0060"
        },
        "ignoredFor": {
          "type": "array",
          "description": "The list of rules to define which charges this tax is ignored for",
          "items": {
            "$ref": "#/definitions/CityTaxConfigModel"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "MUC-TAX",
        "code": "TAX",
        "name": {
          "en": "City tax",
          "de": "City-Tax"
        },
        "description": {
          "en": "2 Euro per person and night. Business travellers and close family members of citizens do not have to pay city tax.",
          "de": "2 Euro pro Person und Nacht. Gesch\u00E4ftsreisende und nahe Familienmitglieder von Anwohnern m\u00FCssen keine City-Tax bezahlen."
        },
        "propertyId": "MUC",
        "type": "PerPersonPerNight",
        "taxHandlingType": "BeforeTax",
        "value": 2.0,
        "subcategories": [
          {
            "name": {
              "en": "Children under 12 don\u0027t have to pay city tax",
              "de": "Kinder unter 12 Jahren zahlen keine City-Tax"
            },
            "value": 0.0,
            "age": {
              "min": 0,
              "max": 12
            }
          }
        ],
        "pricingRules": [
          {
            "value": 0.0,
            "maxPrice": 10.0
          },
          {
            "value": 0.5,
            "maxPrice": 25.0
          },
          {
            "value": 1.0,
            "maxPrice": 50.0
          }
        ],
        "vatType": "Without",
        "priority": 1,
        "includeCityTaxInRateAmount": true,
        "ignoredFor": [
          {
            "distributionChannel": {
              "channelCode": "ChannelManager",
              "sources": [
                "bookingcom"
              ]
            }
          }
        ]
      }
    },
    "CityTaxPricingRuleModel": {
      "type": "object",
      "required": [
        "maxPrice",
        "value"
      ],
      "properties": {
        "value": {
          "type": "number",
          "description": "Fixed value of the tax for the price of up to the MaxPrice",
          "format": "double"
        },
        "maxPrice": {
          "type": "number",
          "description": "The maximum price this rule applies to (inclusive)",
          "format": "double"
        }
      },
      "additionalProperties": false
    },
    "CityTaxSubcategoryAgeModel": {
      "type": "object",
      "required": [
        "max",
        "min"
      ],
      "properties": {
        "min": {
          "type": "integer",
          "description": "The minimum age for the age category. The specified value is included in the age range",
          "format": "int32",
          "maximum": 2147483647,
          "minimum": 0
        },
        "max": {
          "type": "integer",
          "description": "The maximum age for the age category. The specified value is included in the age range",
          "format": "int32",
          "maximum": 2147483647,
          "minimum": 0
        }
      },
      "additionalProperties": false
    },
    "CityTaxSubcategoryModel": {
      "type": "object",
      "required": [
        "age",
        "name",
        "value"
      ],
      "properties": {
        "name": {
          "type": "object",
          "description": "The name of the city tax subcategory",
          "additionalProperties": {
            "type": "string",
            "x-nullable": true
          }
        },
        "value": {
          "type": "number",
          "description": "Fixed value of the tax for this age category",
          "format": "double"
        },
        "age": {
          "$ref": "#/definitions/CityTaxSubcategoryAgeModel"
        }
      },
      "additionalProperties": false
    },
    "CountModel": {
      "type": "object",
      "required": [
        "count"
      ],
      "properties": {
        "count": {
          "type": "integer",
          "format": "int64"
        }
      },
      "additionalProperties": false,
      "example": {
        "count": 50
      }
    },
    "CreateCityTaxModel": {
      "type": "object",
      "required": [
        "description",
        "name",
        "propertyId",
        "taxHandlingType",
        "type",
        "value",
        "vatType"
      ],
      "properties": {
        "name": {
          "type": "object",
          "description": "The name of the city tax, as displayed to guests on invoice, offer, etc.\n\nTypical names are city tax or tourist tax.",
          "additionalProperties": {
            "type": "string",
            "x-nullable": true
          }
        },
        "description": {
          "type": "object",
          "description": "The description of the city tax, as displayed to guests. Add information on when it applies, and how it is calculated.",
          "additionalProperties": {
            "type": "string",
            "x-nullable": true
          }
        },
        "propertyId": {
          "type": "string",
          "description": "The ID of the property for which the city tax is created"
        },
        "type": {
          "type": "string",
          "description": "The base on which the city tax is calculated.",
          "enum": [
            "PercentOfGross",
            "PercentOfNet",
            "PerRoomPerNight",
            "PerPersonPerNight",
            "PerPersonPerNightBasedOnNetPrice",
            "PerPersonPerNightBasedOnGrossPrice"
          ]
        },
        "taxHandlingType": {
          "type": "string",
          "description": "How to treat the calculated city tax: as before tax or after tax",
          "enum": [
            "BeforeTax",
            "AfterTax"
          ]
        },
        "value": {
          "type": "number",
          "description": "Depending on the type, the percent or multiplier used to calculate city tax",
          "format": "double",
          "maximum": 2147483647,
          "minimum": 0
        },
        "vatType": {
          "type": "string",
          "description": "If the city tax is subject to VAT, specify which VAT applies. If not, specify \u0027Without\u0027.",
          "enum": [
            "Null",
            "VeryReduced",
            "Reduced",
            "Normal",
            "Without",
            "Special",
            "Special1",
            "Special2",
            "ReducedCovid19",
            "NormalCovid19",
            "Mixed"
          ]
        },
        "code": {
          "type": "string",
          "description": "The code for the city tax",
          "x-nullable": true
        },
        "priority": {
          "type": "integer",
          "description": "Order in which city taxes should be applied. Lower numbers are applied first.\nIf not provided tax receives priority of existing tax priority \u002B 1, or 1 if no other city tax for this property exists.",
          "format": "int32",
          "x-nullable": true
        },
        "includeCityTaxInRateAmount": {
          "type": "boolean",
          "description": "Whether city tax is included in the rate, or added on top of it. Default is \u0060false\u0060",
          "x-nullable": true
        },
        "limit": {
          "type": "integer",
          "description": "If set, limits the calculation of the city tax to the specified number of time slices, starting from the beginning.\n\nIf not set, the city tax will be calculated for the whole stay.",
          "format": "int32",
          "x-nullable": true
        },
        "subcategories": {
          "type": "array",
          "description": "Additional subcategories for different age groups that are eligible for a reduced city tax. Can only be set if the type is \u0027PerPersonPerNight\u0027, \u0027PercentOfGross\u0027, \u0027PerPersonPerNightBasedOnNetPrice\u0027 or \u0027PerPersonPerNightBasedOnGrossPrice\u0027",
          "items": {
            "$ref": "#/definitions/CityTaxSubcategoryModel"
          },
          "x-nullable": true
        },
        "pricingRules": {
          "type": "array",
          "description": "Additional set of rules where you can set a fixed city tax value based on the accommodation cost. Only set if the type is \u0027PerPersonPerNightBasedOnNetPrice\u0027 or \u0027PerPersonPerNightBasedOnGrossPrice\u0027",
          "items": {
            "$ref": "#/definitions/CityTaxPricingRuleModel"
          },
          "x-nullable": true
        },
        "ignoredFor": {
          "type": "array",
          "description": "The list of rules to define which charges this tax is ignored for",
          "items": {
            "$ref": "#/definitions/CityTaxConfigModel"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "name": {
          "en": "City tax",
          "de": "City-Tax"
        },
        "description": {
          "en": "2 Euro per person and night. Business travellers and close family members of citizens do not have to pay city tax.",
          "de": "2 Euro pro Person und Nacht. Gesch\u00E4ftsreisende und nahe Familienmitglieder von Anwohnern m\u00FCssen keine City-Tax bezahlen."
        },
        "propertyId": "MUC",
        "type": "PerPersonPerNight",
        "taxHandlingType": "BeforeTax",
        "value": 2.0,
        "vatType": "Normal",
        "code": "TAX",
        "priority": 1,
        "includeCityTaxInRateAmount": false,
        "subcategories": [
          {
            "name": {
              "en": "Children under 12 don\u0027t have to pay city tax",
              "de": "Kinder unter 12 Jahren zahlen keine City-Tax"
            },
            "value": 0.0,
            "age": {
              "min": 0,
              "max": 12
            }
          }
        ],
        "ignoredFor": [
          {
            "distributionChannel": {
              "channelCode": "ChannelManager",
              "sources": [
                "bookingcom"
              ]
            }
          }
        ]
      }
    },
    "CreateCustomSubAccountModel": {
      "type": "object",
      "required": [
        "code",
        "name",
        "propertyId",
        "type"
      ],
      "properties": {
        "propertyId": {
          "type": "string",
          "description": "ID of the property"
        },
        "code": {
          "type": "string",
          "description": "Code of the sub-account. Has to be unique per property, and must not be one of the reserved codes:\n- Unspecified\n- System\n- Normal\n- Reduced\n- VeryReduced\n- Special\n- Null\n- Without",
          "pattern": "^[a-zA-Z0-9]\u002B$"
        },
        "name": {
          "type": "string",
          "description": "Name of the sub-account",
          "minLength": 1
        },
        "type": {
          "type": "string",
          "description": "Service type of the sub-account",
          "enum": [
            "Other",
            "Accommodation",
            "FoodAndBeverages"
          ]
        }
      },
      "additionalProperties": false,
      "example": {
        "propertyId": "MUC",
        "code": "TEA",
        "name": "Finest green tea",
        "type": "FoodAndBeverages"
      }
    },
    "CreateMarketSegmentModel": {
      "type": "object",
      "required": [
        "code",
        "name"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "The code of the market segment",
          "maxLength": 10,
          "minLength": 3,
          "pattern": "^[a-zA-Z0-9_]*$"
        },
        "name": {
          "type": "string",
          "description": "The name of the market segment",
          "minLength": 1
        },
        "description": {
          "type": "string",
          "description": "The description of the market segment",
          "x-nullable": true
        },
        "propertyIds": {
          "type": "array",
          "description": "The list of property ids this market segment belongs to",
          "items": {
            "type": "string"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "code": "BUSR",
        "name": "Business Groups",
        "description": "Social groups (Weddings etc.)",
        "propertyIds": [
          "MUC",
          "BER"
        ]
      }
    },
    "CreateTimeSliceDefinitionModel": {
      "type": "object",
      "required": [
        "checkInTime",
        "checkOutTime",
        "name",
        "template"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the time slice definition",
          "minLength": 1
        },
        "template": {
          "type": "string",
          "description": "The choice between over-night, which will be from check-in to check-out time, or day-use, which is from check-out to check-in time",
          "enum": [
            "DayUse",
            "OverNight"
          ]
        },
        "checkInTime": {
          "type": "string",
          "description": "The check-in time for the time slice definition\u003Cbr /\u003EA time (without fractional second part) as defined in the \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E"
        },
        "checkOutTime": {
          "type": "string",
          "description": "The check-out time for the time slice definition\u003Cbr /\u003EA time (without fractional second part) as defined in the \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E"
        }
      },
      "additionalProperties": false,
      "example": {
        "name": "Over Night",
        "template": "OverNight",
        "checkInTime": "17:00:00",
        "checkOutTime": "11:00:00"
      }
    },
    "CustomSubAccountCreatedModel": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the sub-account",
          "minLength": 1
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "MUC-Tea"
      }
    },
    "CustomSubAccountModel": {
      "type": "object",
      "required": [
        "code",
        "id",
        "name",
        "propertyId",
        "type"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the sub-account"
        },
        "propertyId": {
          "type": "string",
          "description": "ID of the property"
        },
        "code": {
          "type": "string",
          "description": "Code of the sub-account.",
          "minLength": 1
        },
        "name": {
          "type": "string",
          "description": "Name of the sub-account",
          "minLength": 1
        },
        "type": {
          "type": "string",
          "description": "Service type of the sub-account",
          "enum": [
            "Other",
            "Accommodation",
            "FoodAndBeverages"
          ]
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "MUC-TEA",
        "propertyId": "MUC",
        "code": "Tea",
        "name": "Finest green tea",
        "type": "FoodAndBeverages"
      }
    },
    "CustomSubAccountsListModel": {
      "type": "object",
      "required": [
        "count",
        "subAccounts"
      ],
      "properties": {
        "subAccounts": {
          "type": "array",
          "description": "List of sub-accounts.",
          "items": {
            "$ref": "#/definitions/CustomSubAccountModel"
          }
        },
        "count": {
          "type": "integer",
          "description": "Total count of items",
          "format": "int64"
        }
      },
      "additionalProperties": false,
      "example": {
        "subAccounts": [
          {
            "id": "MUC-TEA",
            "propertyId": "MUC",
            "code": "Tea",
            "name": "Finest green tea",
            "type": "FoodAndBeverages"
          }
        ],
        "count": 1
      }
    },
    "DistributionChannelTaxConfigModel": {
      "type": "object",
      "required": [
        "channelCode"
      ],
      "properties": {
        "channelCode": {
          "type": "string",
          "enum": [
            "Direct",
            "BookingCom",
            "Ibe",
            "ChannelManager",
            "Expedia",
            "Homelike",
            "Hrs",
            "AltoVita",
            "DesVu",
            "Gimsi"
          ]
        },
        "sources": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-nullable": true
        },
        "remittanceResponsibility": {
          "type": "string",
          "enum": [
            "Hotel",
            "Ota"
          ],
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "FeatureSettingsModel": {
      "type": "object",
      "required": [
        "advanceInvoiceNumberPattern",
        "areCustomRevenueSubAccountsEnabled",
        "invoiceNumberPattern",
        "performAccountingForOpenInvoiceActions",
        "showRecipientForEachLineItemOnTheInvoice"
      ],
      "properties": {
        "areCustomRevenueSubAccountsEnabled": {
          "type": "boolean",
          "description": "Are custom sub-accounts for revenue enabled."
        },
        "performAccountingForOpenInvoiceActions": {
          "type": "boolean",
          "description": "Whether marking an AR invoice as written off/paid leads to accounting or not."
        },
        "showRecipientForEachLineItemOnTheInvoice": {
          "type": "boolean",
          "description": "Whether to display the main guest\u0027s name for each charge on the invoice if the invoice contains charges from several reservations."
        },
        "maxAmountForMinimalInvoices": {
          "type": "number",
          "description": "If the amount for the invoice is lower than this value, allow creating invoices with the name only.",
          "format": "double",
          "x-nullable": true
        },
        "invoiceNumberPattern": {
          "type": "string",
          "description": "Pattern to generate the invoice number.\nConsists of three parts: custom prefix (optional),\ndate template (optional),\nand number template (required).\nuse \u00270\u0027 for numbers;\n\u0027d\u0027 or \u0027dd\u0027 for days;\n\u0027M\u0027 or \u0027MM\u0027 for months;\n\u0027yy\u0027 or \u0027yyyy\u0027 for years.\nTo set a custom prefix, enclose it in quotation marks (\u0022).\nAllowed symbols in the prefix: digits, uppercase letters, .,_,-.\nExample: pattern \u0022MUC-\u0022yyyy0000 will produce invoice numbers like MUC-20190001.",
          "minLength": 1
        },
        "advanceInvoiceNumberPattern": {
          "type": "string",
          "description": "Pattern to generate the advance invoice number.\nConsists of three parts: custom prefix (optional),\ndate template (optional),\nand number template (required).\nuse \u00270\u0027 for numbers;\n\u0027d\u0027 or \u0027dd\u0027 for days;\n\u0027M\u0027 or \u0027MM\u0027 for months;\n\u0027yy\u0027 or \u0027yyyy\u0027 for years.\nTo set a custom prefix, enclose it in quotation marks (\u0022).\nAllowed symbols in the prefix: digits, uppercase letters, .,_,-.\nExample: pattern \u0022MUC-\u0022yyyy0000 will produce invoice numbers like MUC-20190001.",
          "minLength": 1
        }
      },
      "additionalProperties": false,
      "example": {
        "areCustomRevenueSubAccountsEnabled": true,
        "performAccountingForOpenInvoiceActions": true,
        "showRecipientForEachLineItemOnTheInvoice": true,
        "maxAmountForMinimalInvoices": 100.50,
        "invoiceNumberPattern": "yyMM00000",
        "advanceInvoiceNumberPattern": "\u0022A-\u0022yyMM00000"
      }
    },
    "InvoiceAddressCreateOrReplaceModel": {
      "type": "object",
      "required": [
        "addressLine1",
        "city",
        "countryCode",
        "postalCode"
      ],
      "properties": {
        "addressLine1": {
          "type": "string",
          "minLength": 1
        },
        "addressLine2": {
          "type": "string",
          "x-nullable": true
        },
        "postalCode": {
          "type": "string",
          "minLength": 1
        },
        "city": {
          "type": "string",
          "minLength": 1
        },
        "regionCode": {
          "type": "string",
          "x-nullable": true
        },
        "countryCode": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "example": {
        "addressLine1": "Marienplatz 1",
        "postalCode": "80331",
        "city": "M\u00FCnchen",
        "regionCode": "DE-BY",
        "countryCode": "DE"
      }
    },
    "InvoiceAddressListModel": {
      "type": "object",
      "required": [
        "addresses",
        "count"
      ],
      "properties": {
        "addresses": {
          "type": "array",
          "description": "List of invoice addresses",
          "items": {
            "$ref": "#/definitions/InvoiceAddressModel"
          }
        },
        "count": {
          "type": "integer",
          "description": "Total count of items",
          "format": "int64"
        }
      },
      "additionalProperties": false,
      "example": {
        "addresses": [
          {
            "addressLine1": "Marienplatz 1",
            "postalCode": "80331",
            "city": "M\u00FCnchen",
            "regionCode": "DE-BY",
            "countryCode": "DE",
            "propertyId": "MUC"
          }
        ],
        "count": 1
      }
    },
    "InvoiceAddressModel": {
      "type": "object",
      "required": [
        "addressLine1",
        "city",
        "countryCode",
        "postalCode",
        "propertyId"
      ],
      "properties": {
        "addressLine1": {
          "type": "string",
          "minLength": 1
        },
        "addressLine2": {
          "type": "string",
          "x-nullable": true
        },
        "postalCode": {
          "type": "string",
          "minLength": 1
        },
        "city": {
          "type": "string",
          "minLength": 1
        },
        "regionCode": {
          "type": "string",
          "x-nullable": true
        },
        "countryCode": {
          "type": "string"
        },
        "propertyId": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "example": {
        "addressLine1": "Marienplatz 1",
        "postalCode": "80331",
        "city": "M\u00FCnchen",
        "regionCode": "DE-BY",
        "countryCode": "DE",
        "propertyId": "MUC"
      }
    },
    "LanguageModel": {
      "type": "object",
      "required": [
        "code",
        "default",
        "mandatory"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "default": {
          "type": "boolean"
        },
        "mandatory": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "LanguagesModel": {
      "type": "object",
      "description": "With this request you can modify the language settings for the account",
      "required": [
        "languages"
      ],
      "properties": {
        "languages": {
          "type": "array",
          "description": "The languages for the account",
          "items": {
            "$ref": "#/definitions/LanguageModel"
          }
        }
      },
      "additionalProperties": false,
      "example": {
        "languages": [
          {
            "code": "en",
            "default": true,
            "mandatory": true
          },
          {
            "code": "de",
            "default": false,
            "mandatory": false
          }
        ]
      }
    },
    "MarketSegmentCreatedModel": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The market segment ID"
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "BGTF"
      }
    },
    "MarketSegmentListModel": {
      "type": "object",
      "required": [
        "count",
        "marketSegments"
      ],
      "properties": {
        "marketSegments": {
          "type": "array",
          "description": "List of market segments",
          "items": {
            "$ref": "#/definitions/MarketSegmentModel"
          }
        },
        "count": {
          "type": "integer",
          "description": "Total count of items",
          "format": "int64"
        }
      },
      "additionalProperties": false,
      "example": {
        "marketSegments": [
          {
            "id": "BUSR",
            "code": "BUSR",
            "name": "Business Groups",
            "description": "Social groups (Weddings etc.)",
            "propertyIds": [
              "MUC",
              "BER"
            ]
          },
          {
            "id": "BPCK",
            "code": "BPCK",
            "name": "Backpackers",
            "description": "Backpackers aged 18-30",
            "propertyIds": [
              "MUC"
            ]
          }
        ],
        "count": 2
      }
    },
    "MarketSegmentModel": {
      "type": "object",
      "required": [
        "code",
        "id",
        "name"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The id of the market segment",
          "minLength": 1
        },
        "code": {
          "type": "string",
          "description": "The code of the market segment",
          "minLength": 1
        },
        "name": {
          "type": "string",
          "description": "The name of the market segment",
          "minLength": 1
        },
        "description": {
          "type": "string",
          "description": "The description of the market segment",
          "x-nullable": true
        },
        "propertyIds": {
          "type": "array",
          "description": "The list of property ids this market segment belongs to",
          "items": {
            "type": "string"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "BUSR",
        "code": "BUSR",
        "name": "Business Groups",
        "description": "Social groups (Weddings etc.)",
        "propertyIds": [
          "MUC",
          "BER"
        ]
      }
    },
    "MessageItemCollection": {
      "type": "object",
      "properties": {
        "messages": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "Operation": {
      "type": "object",
      "properties": {
        "value": {
          "x-nullable": true
        },
        "path": {
          "type": "string",
          "x-nullable": true
        },
        "op": {
          "type": "string",
          "x-nullable": true
        },
        "from": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "PropertySettingsModel": {
      "type": "object",
      "required": [
        "currency",
        "timeZone"
      ],
      "properties": {
        "timeZone": {
          "type": "string",
          "description": "The time zone",
          "minLength": 1
        },
        "currency": {
          "type": "string",
          "description": "The currency a property works with."
        }
      },
      "additionalProperties": false,
      "example": {
        "timeZone": "Europe/Berlin",
        "currency": "EUR"
      }
    },
    "ReplaceLanguageModel": {
      "type": "object",
      "required": [
        "code",
        "mandatory"
      ],
      "properties": {
        "code": {
          "type": "string",
          "maxLength": 2,
          "minLength": 2
        },
        "mandatory": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "ReplaceLanguagesModel": {
      "type": "object",
      "description": "With this request you can modify the language settings for the account",
      "required": [
        "languages"
      ],
      "properties": {
        "languages": {
          "type": "array",
          "description": "The languages for the account",
          "items": {
            "$ref": "#/definitions/ReplaceLanguageModel"
          }
        }
      },
      "additionalProperties": false,
      "example": {
        "languages": [
          {
            "code": "en",
            "mandatory": true
          },
          {
            "code": "de",
            "mandatory": false
          }
        ]
      }
    },
    "TimeSliceDefinitionCreatedModel": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "MUC-NIGHT"
      }
    },
    "TimeSliceDefinitionListModel": {
      "type": "object",
      "required": [
        "count",
        "timeSliceDefinitions"
      ],
      "properties": {
        "timeSliceDefinitions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TimeSliceDefinitionModel"
          }
        },
        "count": {
          "type": "integer",
          "description": "Total count of items",
          "format": "int64"
        }
      },
      "additionalProperties": false,
      "example": {
        "timeSliceDefinitions": [
          {
            "id": "MUC-DAY",
            "name": "Day Use Full Day",
            "template": "DayUse",
            "checkInTime": "11:00:00",
            "checkOutTime": "17:00:00",
            "isUsed": true
          },
          {
            "id": "MUC-DAY1",
            "name": "Day Use First Flight",
            "template": "DayUse",
            "checkInTime": "11:00:00",
            "checkOutTime": "13:30:00",
            "isUsed": true
          },
          {
            "id": "MUC-DAY2",
            "name": "Day Use Second Flight",
            "template": "DayUse",
            "checkInTime": "13:30:00",
            "checkOutTime": "17:00:00",
            "isUsed": false
          },
          {
            "id": "MUC-NIGHT",
            "name": "Over Night",
            "template": "OverNight",
            "checkInTime": "17:00:00",
            "checkOutTime": "11:00:00",
            "isUsed": false
          }
        ],
        "count": 4
      }
    },
    "TimeSliceDefinitionModel": {
      "type": "object",
      "required": [
        "checkInTime",
        "checkOutTime",
        "id",
        "isUsed",
        "name",
        "template"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "minLength": 1
        },
        "template": {
          "type": "string",
          "enum": [
            "DayUse",
            "OverNight"
          ]
        },
        "checkInTime": {
          "type": "string",
          "description": "\u003Cbr /\u003EA time (without fractional second part) as defined in the \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E"
        },
        "checkOutTime": {
          "type": "string",
          "description": "\u003Cbr /\u003EA time (without fractional second part) as defined in the \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E"
        },
        "isUsed": {
          "type": "boolean"
        },
        "actions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ActionModel[TimeSliceDefinitionAction,NotAllowedTimeSliceDefinitionActionReason]"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "MUC-NIGHT",
        "name": "Over Night",
        "template": "OverNight",
        "checkInTime": "17:00:00",
        "checkOutTime": "11:00:00",
        "isUsed": true
      }
    }
  },
  "securityDefinitions": {
    "oauth2": {
      "type": "oauth2",
      "flow": "implicit",
      "authorizationUrl": "https://identity.apaleo.com/connect/authorize",
      "scopes": {
        "admin": "Full access",
        "reservations.import": "Import reservations"
      }
    }
  },
  "tags": [
    {
      "name": "CapturePolicies"
    },
    {
      "name": "CityTax"
    },
    {
      "name": "CustomSubAccounts"
    },
    {
      "name": "FeatureSettings"
    },
    {
      "name": "InvoiceAddress"
    },
    {
      "name": "Languages"
    },
    {
      "name": "MarketSegment"
    },
    {
      "name": "PropertySettings"
    },
    {
      "name": "TimeSliceDefinitions"
    }
  ]
}