{
  "swagger": "2.0",
  "info": {
    "title": "apaleo Finance API",
    "description": "Everything around the Folio, Invoices and Accounting.",
    "version": "v1"
  },
  "paths": {
    "/finance/v1/folios": {
      "get": {
        "tags": [
          "Folio"
        ],
        "summary": "Returns a list of all folios.",
        "description": "Allowed actions are only returned, when the list is filtered by reservation ID.\u003Cbr\u003EYou must have at least one of these scopes: \u0027folios.read, folios.manage\u0027.",
        "operationId": "FinanceFoliosGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyIds",
            "description": "Filter folio list by property IDs",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "companyIds",
            "description": "Filter folio list by company IDs",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "reservationIds",
            "description": "Filter folio list by reservation IDs",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "bookingIds",
            "description": "Filter folio list by booking IDs",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "isEmpty",
            "description": "If set to \u0060true\u0060, only return empty folios (no unmoved [transitory] charges, no unmoved payments, no allowances).\nIf set to \u0060false\u0060, only return non-empty folios",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "excludeClosed",
            "description": "If set to \u0060true\u0060, closed folios are filtered out from the result collection - \u003Cb\u003EDEPRECATED: This field will be removed soon. Please use Status=Open instead.\u003C/b\u003E",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "hasInvoices",
            "description": "If set to \u0060true\u0060, only folios \u003Cb\u003Ewith\u003C/b\u003E invoices are returned.\nIf set to \u0060false\u0060, only folios \u003Cb\u003Ewithout\u003C/b\u003E invoices are returned.\nIf omitted/\u0060null\u0060, \u003Cb\u003Eall\u003C/b\u003E folios are returned.",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "createdFrom",
            "description": "The inclusive start time of the date of creation. Mostly useful for external folios\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
            "type": "string",
            "format": "date-time"
          },
          {
            "in": "query",
            "name": "createdTo",
            "description": "The exclusive end time of the date of creation. Mostly useful for external folios\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
            "type": "string",
            "format": "date-time"
          },
          {
            "in": "query",
            "name": "updatedFrom",
            "description": "The inclusive start time of the date of the last update. Mostly useful for external folios\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
            "type": "string",
            "format": "date-time"
          },
          {
            "in": "query",
            "name": "updatedTo",
            "description": "The exclusive end time of the date of the last update. Mostly useful for external folios\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
            "type": "string",
            "format": "date-time"
          },
          {
            "in": "query",
            "name": "onlyMain",
            "description": "If set to \u0060true\u0060, only main folios are returned, otherwise all.",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "type",
            "description": "The type of the folio",
            "type": "string",
            "enum": [
              "House",
              "Guest",
              "External",
              "Booking"
            ]
          },
          {
            "in": "query",
            "name": "status",
            "description": "The status of the folio",
            "type": "string",
            "enum": [
              "Open",
              "Closed"
            ]
          },
          {
            "in": "query",
            "name": "externalFolioCode",
            "description": "Allows filtering external folios by code.\nUseful when you use external folios with custom codes.\nSpecifying this parameter will ignore the \u003Cb\u003EType\u003C/b\u003E parameter and treat as if it would be set to \u0022External\u0022 instead.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "textSearch",
            "description": "This will filter all folios where the provided text is contained in: debitor first name or last name or company name,\nfolio id. The search is case insensitive.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "balanceFilter",
            "description": "This will filter reservations based on their balance.\u003Cbr /\u003EYou can provide an array of string expressions which all need to apply.\u003Cbr /\u003EEach expression has the form of \u0027OPERATION_VALUE\u0027 where VALUE needs to be of the valid format of the property type and OPERATION can be:\u003Cbr /\u003E\u0027eq\u0027 for equals\u003Cbr /\u003E\u0027neq\u0027 for not equals\u003Cbr /\u003E\u0027lt\u0027 for less than\u003Cbr /\u003E\u0027gt\u0027 for greater than\u003Cbr /\u003E\u0027lte\u0027 for less than or equals\u003Cbr /\u003E\u0027gte\u0027 for greater than or equals\u003Cbr /\u003EFor instance\u003Cbr /\u003E\u0027eq_5\u0027 would mean the value should equal 5\u003Cbr /\u003E\u0027lte_7\u0027 would mean the value should be less than or equal to 7",
            "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
          },
          {
            "in": "query",
            "name": "sort",
            "description": "List of all fields that can be used to sort the results. Possible values are: created:asc, created:desc, balance:asc, balance:desc. All other values will be silently ignored.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "created:asc",
                "created:desc",
                "balance:asc",
                "balance:desc"
              ]
            },
            "collectionFormat": "multi"
          },
          {
            "in": "query",
            "name": "expand",
            "description": "List of all embedded resources that should be expanded in the response. Possible values are: allowances, allowedActions, transitoryCharges, charges, company, payments, warnings. All other values will be silently ignored.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "allowances",
                "allowedActions",
                "transitoryCharges",
                "charges",
                "company",
                "payments",
                "warnings"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/FolioListModel"
            }
          },
          "204": {
            "description": "No folios 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": [
              "folios.read",
              "folios.manage",
              "admin"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Folio"
        ],
        "summary": "Create additional folios for a reservation, or new external folios",
        "description": "Use this call to create a new folio.\u003Cbr\u003EYou must have at least one of these scopes: \u0027reservations.create, reservations.manage, folios.manage\u0027.",
        "operationId": "FinanceFoliosPost",
        "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 folio.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateFolioModel"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/FolioCreatedModel"
            },
            "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": [
              "reservations.create",
              "reservations.manage",
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folios/$count": {
      "get": {
        "tags": [
          "Folio"
        ],
        "summary": "Returns number of folios.",
        "description": "Returns number of folios matching the filter criteria.\u003Cbr\u003EYou must have at least one of these scopes: \u0027folios.read, folios.manage\u0027.",
        "operationId": "FinanceFolios$countGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyIds",
            "description": "Filter folio list by property IDs",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "companyIds",
            "description": "Filter folio list by company IDs",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "reservationIds",
            "description": "Filter folio list by reservation IDs",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "bookingIds",
            "description": "Filter folio list by booking IDs",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "isEmpty",
            "description": "If set to \u0060true\u0060, only return empty folios (no unmoved [transitory] charges, no unmoved payments, no allowances).\nIf set to \u0060false\u0060, only return non-empty folios",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "excludeClosed",
            "description": "If set to \u0060true\u0060, closed folios are filtered out from the result collection - \u003Cb\u003EDEPRECATED: This field will be removed soon. Please use Status=Open instead.\u003C/b\u003E",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "hasInvoices",
            "description": "If set to \u0060true\u0060, only folios \u003Cb\u003Ewith\u003C/b\u003E invoices are returned.\nIf set to \u0060false\u0060, only folios \u003Cb\u003Ewithout\u003C/b\u003E invoices are returned.\nIf omitted/\u0060null\u0060, \u003Cb\u003Eall\u003C/b\u003E folios are returned.",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "createdFrom",
            "description": "The inclusive start time of the date of creation. Mostly useful for external folios\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
            "type": "string",
            "format": "date-time"
          },
          {
            "in": "query",
            "name": "createdTo",
            "description": "The exclusive end time of the date of creation. Mostly useful for external folios\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
            "type": "string",
            "format": "date-time"
          },
          {
            "in": "query",
            "name": "updatedFrom",
            "description": "The inclusive start time of the date of the last update. Mostly useful for external folios\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
            "type": "string",
            "format": "date-time"
          },
          {
            "in": "query",
            "name": "updatedTo",
            "description": "The exclusive end time of the date of the last update. Mostly useful for external folios\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
            "type": "string",
            "format": "date-time"
          },
          {
            "in": "query",
            "name": "onlyMain",
            "description": "If set to \u0060true\u0060, only main folios are returned, otherwise all.",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "type",
            "description": "The type of the folio",
            "type": "string",
            "enum": [
              "House",
              "Guest",
              "External",
              "Booking"
            ]
          },
          {
            "in": "query",
            "name": "status",
            "description": "The status of the folio",
            "type": "string",
            "enum": [
              "Open",
              "Closed"
            ]
          },
          {
            "in": "query",
            "name": "externalFolioCode",
            "description": "Allows filtering external folios by code.\nUseful when you use external folios with custom codes.\nSpecifying this parameter will ignore the \u003Cb\u003EType\u003C/b\u003E parameter and treat as if it would be set to \u0022External\u0022 instead.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "textSearch",
            "description": "This will filter all folios where the provided text is contained in: debitor first name or last name or company name,\nfolio id. The search is case insensitive.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "balanceFilter",
            "description": "This will filter reservations based on their balance.\u003Cbr /\u003EYou can provide an array of string expressions which all need to apply.\u003Cbr /\u003EEach expression has the form of \u0027OPERATION_VALUE\u0027 where VALUE needs to be of the valid format of the property type and OPERATION can be:\u003Cbr /\u003E\u0027eq\u0027 for equals\u003Cbr /\u003E\u0027neq\u0027 for not equals\u003Cbr /\u003E\u0027lt\u0027 for less than\u003Cbr /\u003E\u0027gt\u0027 for greater than\u003Cbr /\u003E\u0027lte\u0027 for less than or equals\u003Cbr /\u003E\u0027gte\u0027 for greater than or equals\u003Cbr /\u003EFor instance\u003Cbr /\u003E\u0027eq_5\u0027 would mean the value should equal 5\u003Cbr /\u003E\u0027lte_7\u0027 would mean the value should be less than or equal to 7",
            "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": [
              "folios.read",
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folios/{id}": {
      "get": {
        "tags": [
          "Folio"
        ],
        "summary": "Returns one folio.",
        "description": "Get a folio by ID.\u003Cbr\u003EYou must have at least one of these scopes: \u0027folios.read, folios.manage\u0027.",
        "operationId": "FinanceFoliosByIdGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The ID of the folio.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "expand",
            "description": "List of all embedded resources that should be expanded in the response. Possible values are: folios. All other values will be silently ignored.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "folios"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/FolioModel"
            }
          },
          "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": [
              "folios.read",
              "folios.manage",
              "admin"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Folio"
        ],
        "summary": "Allows to modify certain properties of a folio",
        "description": "Here is the list of operations that are currently allowed:\n- Replace debitor (for guest folios only)\n- Add a company (not for house folios)\n- Replace/remove a company (not for house folios)\u003Cbr\u003EYou must have this scope: \u0027folios.manage\u0027.",
        "operationId": "FinanceFoliosByIdPatch",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The folio ID.",
            "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/.\n            See the FolioDebitorModel in GET for values that can be changed.",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Operation"
              }
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The folio 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": [
              "folios.manage",
              "admin"
            ]
          }
        ]
      },
      "head": {
        "tags": [
          "Folio"
        ],
        "summary": "Check if the folio exists.",
        "description": "Check if the folio exists.\u003Cbr\u003EYou must have at least one of these scopes: \u0027folios.read, folios.manage\u0027.",
        "operationId": "FinanceFoliosByIdHead",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The folio 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": [
              "folios.read",
              "folios.manage",
              "admin"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Folio"
        ],
        "summary": "Deletes a folio.",
        "description": "Deletes a folio. This cannot be undone.\nYou can delete a folio only if it\u0027s not a main folio,\nand the folio is empty (it has no charges, allowance, payments or pending payments).\n\n\nRequires \u0027allowed action\u0027: Delete.\u003Cbr\u003EYou must have this scope: \u0027folios.manage\u0027.",
        "operationId": "FinanceFoliosByIdDelete",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The folio ID.",
            "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": [
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folio-actions/{folioId}/charges": {
      "post": {
        "tags": [
          "FolioActions"
        ],
        "summary": "Adds and directly posts a charge to the folio.\nIf there are any fees configured for the property, an additional charge for each configured fee will be added.",
        "description": "Adds a charge for any good or service, and directly posts it. Can be used to charge items that are not part of the reservation,\nbut should appear on the invoice.\n\n\nRequires \u0027allowed action\u0027: AddCharge.\u003Cbr\u003EYou must have at least one of these scopes: \u0027charges.create, folios.manage\u0027.",
        "operationId": "FinanceFolio-actionsByFolioIdChargesPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "The folio ID",
            "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 charge to be added",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateChargeModel"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/AddedChargeModel"
            }
          },
          "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": [
              "charges.create",
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folio-actions/{folioId}/transitory-charges": {
      "post": {
        "tags": [
          "FolioActions"
        ],
        "summary": "Adds and directly posts a transitory charge to the folio.\nIf there are any fees configured for the property, an additional charge for each configured fee will be added.",
        "description": "Adds a transitory item for any good or service, and directly posts it. To be used for sales that are not revenue of the property,\nbut should appear on te guest\u0027s invoice.\n\n\nRequires \u0027allowed action\u0027: AddCharge.\u003Cbr\u003EYou must have at least one of these scopes: \u0027charges.create, folios.manage\u0027.",
        "operationId": "FinanceFolio-actionsByFolioIdTransitory-chargesPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "The folio ID",
            "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 transitory charge to be added",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateTransitoryChargeModel"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/CreatedSubResourceIdModel"
            }
          },
          "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": [
              "charges.create",
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folio-actions/{folioId}/cancellation-fee": {
      "post": {
        "tags": [
          "FolioActions"
        ],
        "summary": "Adds and directly posts a cancellation fee to the folio.\nIf there are any fees configured for the property, an additional charge for each configured fee will be added.\nIf a routing instruction is defined for the cancellation fee service type, the fee will be moved to the destination folio.",
        "description": "Adds a cancellation fee, and directly posts it. Cancellation fees can only be posted on guest folios.\n\n\nRequires \u0027allowed action\u0027: AddCancellationFee.\u003Cbr\u003EYou must have at least one of these scopes: \u0027charges.create, folios.manage\u0027.",
        "operationId": "FinanceFolio-actionsByFolioIdCancellation-feePost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "The folio ID",
            "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 cancellation fee to be added",
            "required": true,
            "schema": {
              "$ref": "#/definitions/MonetaryValueModel"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/AddedChargeModel"
            }
          },
          "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": [
              "charges.create",
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folio-actions/{folioId}/no-show-fee": {
      "post": {
        "tags": [
          "FolioActions"
        ],
        "summary": "Adds and directly posts a no-show fee to the folio.\nIf there are any fees configured for the property, an additional charge for each configured fee will be added.\nIf a routing instruction is defined for the no-show fee service type, the fee will be moved to the destination folio.",
        "description": "Adds a no-show fee, and directly posts it. No-show fees can only be posted on guest folios.\n\n\nRequires \u0027allowed action\u0027: AddNoShowFee.\u003Cbr\u003EYou must have at least one of these scopes: \u0027charges.create, folios.manage\u0027.",
        "operationId": "FinanceFolio-actionsByFolioIdNo-show-feePost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "The folio ID",
            "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 no-show fee to be added",
            "required": true,
            "schema": {
              "$ref": "#/definitions/MonetaryValueModel"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/AddedChargeModel"
            }
          },
          "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": [
              "charges.create",
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folio-actions/{folioId}/close": {
      "put": {
        "tags": [
          "FolioActions"
        ],
        "summary": "Closes a folio.",
        "description": "Mark a folio as closed to prevent adding charges and payments. This action cannot be undone,\nand is only possible if the balance is 0.\n\n\nRequires \u0027allowed action\u0027: Close.\u003Cbr\u003EYou must have this scope: \u0027folios.manage\u0027.",
        "operationId": "FinanceFolio-actionsByFolioIdClosePut",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "The folio ID.",
            "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": [
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folio-actions/{folioId}/reopen": {
      "put": {
        "tags": [
          "FolioActions"
        ],
        "summary": "Reopens a folio.",
        "description": "Reopens a closed folio.\nYou can only reopen a folio if no invoice has been created for the folio.\nOtherwise, use \u0060invoice-actions/{invoiceId}/cancel\u0060 endpoint to cancel an invoice and reopen the folio.\n\n\nRequires \u0027allowed action\u0027: Reopen.\u003Cbr\u003EYou must have this scope: \u0027folios.manage\u0027.",
        "operationId": "FinanceFolio-actionsByFolioIdReopenPut",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "The folio ID.",
            "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": [
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folio-actions/{folioId}/move-charges": {
      "put": {
        "tags": [
          "FolioActions"
        ],
        "summary": "Move multiple charges, allowances and transitory charges from one folio to another.",
        "description": "If one of the folios is closed, this action cannot be performed.\n\n\nIf any of the specified charges does not exist, this action cannot be performed.\n\n\nMoving negative charges to a house folio is not supported. Create additional folios instead, and move the charges there.\u003Cbr\u003EYou must have at least one of these scopes: \u0027charges.move, folios.manage\u0027.",
        "operationId": "FinanceFolio-actionsByFolioIdMove-chargesPut",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "The ID of the source folio from where the charges should be moved away.",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "See class.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/MoveChargesRequest"
            }
          }
        ],
        "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": [
              "charges.move",
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folio-actions/bulk-move": {
      "put": {
        "tags": [
          "FolioActions"
        ],
        "summary": "Move multiple charges from one folio to another. Multiple source folios and multiple target folios can be specified.",
        "description": "If one of the folios is closed, this action cannot be performed.\n\n\nIf any of the specified charges does not exist, this action cannot be performed.\n\n\nMoving negative charges to a house folio is not supported. Create additional folios instead, and move the charges there.\u003Cbr\u003EYou must have this scope: \u0027folios.manage\u0027.",
        "operationId": "FinanceFolio-actionsBulk-movePut",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "See class.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/BulkMoveRequest"
            }
          }
        ],
        "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": [
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folio-actions/{folioId}/move-all-charges": {
      "put": {
        "tags": [
          "FolioActions"
        ],
        "summary": "Move all charges and transitory charges from one folio to another.",
        "description": "If one of the folios is closed, this action cannot be performed.\n\n\nOnly charges that can be moved will be moved.\n\n\u003Cbr\u003EYou must have at least one of these scopes: \u0027charges.move, folios.manage\u0027.",
        "operationId": "FinanceFolio-actionsByFolioIdMove-all-chargesPut",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "The ID of the source folio from where the charges should be moved away.",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "See class.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/MoveAllChargesRequest"
            }
          }
        ],
        "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": [
              "charges.move",
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folio-actions/{folioId}/charges/{chargeId}/allowances": {
      "post": {
        "tags": [
          "FolioActions"
        ],
        "summary": "Posts an allowance for a charge",
        "description": "Allowance value posted must not exceed source charge minus allowances posted for this charge\u003Cbr\u003EYou must have at least one of these scopes: \u0027allowances.post, folios.manage\u0027.",
        "operationId": "FinanceFolio-actionsByFolioIdChargesByChargeIdAllowancesPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "The folio ID",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "chargeId",
            "description": "The ID of the charge allowance posted for",
            "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": "Allowance data",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateAllowanceForChargeModel"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/CreatedSubResourceIdModel"
            }
          },
          "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": [
              "allowances.post",
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folio-actions/{folioId}/allowances": {
      "post": {
        "tags": [
          "FolioActions"
        ],
        "summary": "Posts an allowance for a folio",
        "description": "Allowance value posted must not exceed sum of charges minus existing allowances\u003Cbr\u003EYou must have at least one of these scopes: \u0027allowances.post, folios.manage\u0027.",
        "operationId": "FinanceFolio-actionsByFolioIdAllowancesPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "The folio ID",
            "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": "Allowance amount and post reason",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateAllowanceForFolioModel"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/CreatedSubResourceIdModel"
            }
          },
          "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": [
              "allowances.post",
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folio-actions/{folioId}/bulk-allowances": {
      "post": {
        "tags": [
          "FolioActions"
        ],
        "summary": "Posts allowances for a folio",
        "description": "Allowance value posted must not exceed sum of charges minus existing allowances\u003Cbr\u003EYou must have at least one of these scopes: \u0027allowances.post, folios.manage\u0027.",
        "operationId": "FinanceFolio-actionsByFolioIdBulk-allowancesPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "The ID of the folio.",
            "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": "Allowance amount and post reason",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateAllowanceBulkModel"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/BulkAllowanceCreatedModel"
            }
          },
          "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": [
              "allowances.post",
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folio-actions/{folioId}/post-charges": {
      "put": {
        "tags": [
          "FolioActions"
        ],
        "summary": "Posts all unposted charges for the whole length of stay.",
        "description": "Use this call for cases when the folio should be closed early. For example, when a guest wants to get the invoice right after the check-in\nAs posting charges before the service is delivered is potentially risky, this operation will fail if there are any unposted charges\nfurther in the future than 7 days.\nPosting open charges is only possible for fully prepaid folios.\n\n\nRequires \u0027allowed action\u0027: PostOpenCharges.\u003Cbr\u003EYou must have this scope: \u0027folios.manage\u0027.",
        "operationId": "FinanceFolio-actionsByFolioIdPost-chargesPut",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "The folio ID",
            "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": [
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folio-actions/{folioId}/move-payments": {
      "put": {
        "tags": [
          "FolioActions"
        ],
        "summary": "Move multiple payments from one guest/booking folio to another.",
        "description": "Move payments from one guest/booking folio to another - moving between different bookings is not supported,\nand will lead to an error. If one of the folios is closed, this action cannot be performed.\n\nThe PSP reference, if present, will be removed when moving and only be persisted on the original payment.\u003Cbr\u003EYou must have at least one of these scopes: \u0027charges.move, folios.manage\u0027.",
        "operationId": "FinanceFolio-actionsByFolioIdMove-paymentsPut",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "The ID of the source folio from where the payments should be moved away.",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "See class.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/MovePaymentsRequest"
            }
          }
        ],
        "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": [
              "charges.move",
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folio-actions/{folioId}/correct": {
      "post": {
        "tags": [
          "FolioActions"
        ],
        "summary": "Corrects a folio by moving some charges.\nThis operation creates a new folio with the charges from the request.\nThe payment, equal to the sum of charges, is also split to this new folio so that both folios will have 0 balance.",
        "description": "Allowance value posted must not exceed sum of charges minus existing allowances\u003Cbr\u003EYou must have this scope: \u0027folios.manage\u0027.",
        "operationId": "FinanceFolio-actionsByFolioIdCorrectPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "The folio ID",
            "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": "Array of chargeIds to move and reason",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CorrectFolioRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Folio correction was successful. Correction folio created.",
            "schema": {
              "$ref": "#/definitions/FolioCreatedModel"
            },
            "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": [
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folio-actions/{folioId}/charges/{chargeId}/split": {
      "post": {
        "tags": [
          "FolioActions"
        ],
        "summary": "Splits a charge into two using the percent or amount provided\nCreates an allowance and two new charges.",
        "description": "\u003Cbr\u003EYou must have at least one of these scopes: \u0027allowances.post, charges.create, folios.manage\u0027.",
        "operationId": "FinanceFolio-actionsByFolioIdChargesByChargeIdSplitPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "The folio ID",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "chargeId",
            "description": "The ID of the charge",
            "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": "See class",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SplitChargeRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/SplitChargeResult"
            }
          },
          "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": [
              "allowances.post",
              "charges.create",
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folio-actions/{folioId}/payments/{paymentId}/split": {
      "post": {
        "tags": [
          "FolioActions"
        ],
        "summary": "Splits a payment into two using the percent or amount provided\nCreates a refund and two new payments.",
        "description": "\u003Cbr\u003EYou must have at least one of these scopes: \u0027payments.create, refunds.create, folios.manage\u0027.",
        "operationId": "FinanceFolio-actionsByFolioIdPaymentsByPaymentIdSplitPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "The folio ID",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "paymentId",
            "description": "The ID of the payment",
            "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": "See class",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SplitPaymentRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/SplitPaymentResult"
            }
          },
          "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": [
              "payments.create",
              "refunds.create",
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folios/{folioId}/payments": {
      "get": {
        "tags": [
          "FolioPayments"
        ],
        "summary": "Get a list of payments.",
        "description": "Returns a list of all payments for this folio ordered by creation date, newest first\u003Cbr\u003EYou must have at least one of these scopes: \u0027folios.read, folios.manage\u0027.",
        "operationId": "FinanceFoliosByFolioIdPaymentsGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "statusCodes",
            "description": "Filter payments by one or more status.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Pending",
                "Success",
                "Failure",
                "Canceled"
              ]
            }
          },
          {
            "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
          },
          {
            "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": "Success.",
            "schema": {
              "$ref": "#/definitions/PaymentListModel"
            }
          },
          "204": {
            "description": "No payments 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": [
              "folios.read",
              "folios.manage",
              "admin"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "FolioPayments"
        ],
        "summary": "Trigger a custom payment for the folio.",
        "description": "A custom payment will not involve any automatic processing. This is best to be used for cash, cheque or voucher payments or payments that have\nbeen processed by an external system and it should just be recorded in apaleo for accounting purposes.\u003Cbr\u003EYou must have this scope: \u0027folios.manage\u0027.",
        "operationId": "FinanceFoliosByFolioIdPaymentsPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "",
            "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 definition of the payment.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateCustomPaymentRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Payment was created and accounting was performed.",
            "schema": {
              "$ref": "#/definitions/PaymentCreatedModel"
            },
            "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": [
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folios/{folioId}/payments/{paymentId}": {
      "get": {
        "tags": [
          "FolioPayments"
        ],
        "summary": "Get a payment by ID.",
        "description": "Get a payment by its ID\u003Cbr\u003EYou must have at least one of these scopes: \u0027folios.read, folios.manage\u0027.",
        "operationId": "FinanceFoliosByFolioIdPaymentsByPaymentIdGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "paymentId",
            "description": "The payment ID.",
            "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": "Success.",
            "schema": {
              "$ref": "#/definitions/FolioPaymentModel"
            }
          },
          "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": [
              "folios.read",
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folios/{folioId}/payments/by-terminal": {
      "post": {
        "tags": [
          "FolioPayments"
        ],
        "summary": "Trigger a payment on a card terminal for the folio.",
        "description": "Trigger a terminal payment for the folio. The payment will be processed asynchronously. Use the location header to poll for the status of the payment.\nAs long as a payment is pending it reduces the amount of allowed payments for the folio. The payment times out after 60 minutes automatically\u003Cbr\u003EYou must have this scope: \u0027folios.manage\u0027.",
        "operationId": "FinanceFoliosByFolioIdPaymentsBy-terminalPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "",
            "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 definition of the payment.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateTerminalPaymentRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Payment was created and will be processed via the specified terminal.",
            "schema": {
              "$ref": "#/definitions/PaymentCreatedModel"
            },
            "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": [
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folios/{folioId}/payments/by-authorization": {
      "post": {
        "tags": [
          "FolioPayments"
        ],
        "summary": "Captures a specific amount from a pre-authorization and posts it to the folio.",
        "description": "Captures a specific amount from a pre-authorization and posts it to the folio. For the pre-authorization please ensure to set the respective metadata in the original payment\ntransaction. The flow type has to be set to \u003Ci\u003ECaptureOnly\u003C/i\u003E. For more information please refer to the documentation of \u003Ca href=\u0022https://apaleo.dev/guides/business-cases/ibe/get-the-money\u0022 target=\u0022_blank\u0022\u003Ehow to do a pre-authorization on a booking engine\u003C/a\u003E.\nThe payment will be processed asynchronously. Use the location header to poll for the status of the payment. As long as a payment is pending it reduces the amount of allowed\npayments for the folio. The payment times out after 60 minutes automatically\u003Cbr\u003EYou must have this scope: \u0027folios.manage\u0027.",
        "operationId": "FinanceFoliosByFolioIdPaymentsBy-authorizationPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "",
            "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 definition of the payment.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateAuthorizationPaymentRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Payment was created and will be processed.",
            "schema": {
              "$ref": "#/definitions/PaymentCreatedModel"
            },
            "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": [
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folios/{folioId}/payments/by-payment-account": {
      "post": {
        "tags": [
          "FolioPayments"
        ],
        "summary": "Trigger a payment using the payment account stored on the reservation or booking.",
        "description": "Trigger a payment for the folio using the payment account stored on the reservation or booking. The payment will be processed asynchronously. Use the location header\nto poll for the status of the payment. As long as a payment is pending it reduces the amount of allowed payments for the folio. The payment times out after 60 minutes\nautomatically\u003Cbr\u003EYou must have this scope: \u0027folios.manage\u0027.",
        "operationId": "FinanceFoliosByFolioIdPaymentsBy-payment-accountPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "",
            "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 definition of the payment.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateAccountPaymentRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Payment was created and will be processed.",
            "schema": {
              "$ref": "#/definitions/PaymentCreatedModel"
            },
            "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": [
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folios/{folioId}/payments/by-link": {
      "post": {
        "tags": [
          "FolioPayments"
        ],
        "summary": "Creates a link to a payment form where guests can pay.",
        "description": "Creates a link to a payment form where guests can pay. To enable open invoice payment methods you need to provide at\nleast the paid charges with the request. For some open invoice payment methods you also need to ensure that the full\nbilling address of the folio is set, before you create the payment link. The payment will be processed asynchronously.\nUse the location header to poll for the status of the payment. As long as a payment is pending it reduces the amount\nof allowed payments for the folio.\u003Cbr\u003EYou must have this scope: \u0027folios.manage\u0027.",
        "operationId": "FinanceFoliosByFolioIdPaymentsBy-linkPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "",
            "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 definition of the payment link.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreatePaymentLinkRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Payment was created and will be processed.",
            "schema": {
              "$ref": "#/definitions/PaymentCreatedModel"
            },
            "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": [
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folios/{folioId}/payments/{paymentId}/cancel": {
      "put": {
        "tags": [
          "FolioPayments"
        ],
        "summary": "Cancels a pending payment link.",
        "description": "Sets a pending payment with payment link to cancelled and triggers the cancellation.\u003Cbr\u003EYou must have this scope: \u0027folios.manage\u0027.",
        "operationId": "FinanceFoliosByFolioIdPaymentsByPaymentIdCancelPut",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "paymentId",
            "description": "The id of the payment.",
            "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": [
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folios/{folioId}/refunds": {
      "get": {
        "tags": [
          "FolioPayments"
        ],
        "summary": "Get a list of refunds.",
        "description": "Returns a list of all refunds for this folio ordered by creation date, newest first\u003Cbr\u003EYou must have at least one of these scopes: \u0027folios.read, folios.manage\u0027.",
        "operationId": "FinanceFoliosByFolioIdRefundsGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "statusCodes",
            "description": "Filter refunds by one or more status",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Pending",
                "Success",
                "Failure",
                "Canceled"
              ]
            }
          },
          {
            "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/RefundListModel"
            }
          },
          "204": {
            "description": "No refunds 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": [
              "folios.read",
              "folios.manage",
              "admin"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "FolioPayments"
        ],
        "summary": "Trigger a refund for the folio.",
        "description": "Trigger a generic refund for the folio. The refund will be processed asynchronously. Use the location header to poll for the status of the refund.\nAs long as a refund is pending it reduces the amount of allowed refunds for the folio. The refund times out after 60 minutes automatically\u003Cbr\u003EYou must have this scope: \u0027folios.manage\u0027.",
        "operationId": "FinanceFoliosByFolioIdRefundsPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "",
            "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 definition of the refund.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateFolioRefundRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Refund was created and will be processed.",
            "schema": {
              "$ref": "#/definitions/RefundCreatedModel"
            },
            "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": [
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folios/{folioId}/refunds/{refundId}": {
      "get": {
        "tags": [
          "FolioPayments"
        ],
        "summary": "Get a refund by ID.",
        "description": "Get a refund by its ID\u003Cbr\u003EYou must have at least one of these scopes: \u0027folios.read, folios.manage\u0027.",
        "operationId": "FinanceFoliosByFolioIdRefundsByRefundIdGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "refundId",
            "description": "The refund ID.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/RefundModel"
            }
          },
          "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": [
              "folios.read",
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/folios/{folioId}/payments/{paymentId}/refunds": {
      "post": {
        "tags": [
          "FolioPayments"
        ],
        "summary": "Trigger a refund for a specific payment.",
        "description": "Trigger a refund for a specific payment on this folio. The refund will be processed asynchronously. Use the location header to poll for\nthe status of the refund. As long as a refund is pending the allowed refund amount for this payment will be reduced by the amount. The refund\ntimes out after 10 minutes automatically\u003Cbr\u003EYou must have this scope: \u0027folios.manage\u0027.",
        "operationId": "FinanceFoliosByFolioIdPaymentsByPaymentIdRefundsPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "paymentId",
            "description": "The payment Id.",
            "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 definition of the refund.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreatePaymentRefundRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Refund was created and will be processed.",
            "schema": {
              "$ref": "#/definitions/RefundCreatedModel"
            },
            "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": [
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/invoices/preview-pdf": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Gets a preview invoice PDF for one specific folio.",
        "description": "Gets a preview invoice PDF for one specific folio.\u003Cbr\u003EYou must have this scope: \u0027invoices.read\u0027.",
        "operationId": "FinanceInvoicesPreview-pdfGet",
        "produces": [
          "application/pdf",
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "languageCode",
            "description": "The language in which the invoice should be produced.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "folioId",
            "description": "The ID of the folio for which the invoice should be created.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "type": "file"
            }
          },
          "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": [
              "invoices.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/invoices/preview": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Gets an invoice preview for one specific folio.",
        "description": "To see if the invoice creation would be successful, check the warnings.\u003Cbr\u003EYou must have this scope: \u0027invoices.read\u0027.",
        "operationId": "FinanceInvoicesPreviewGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "folioId",
            "description": "The ID of the folio for which the invoice should be created.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "expand",
            "description": "List of all embedded resources that should be expanded in the response. Possible values are: company. All other values will be silently ignored.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "company"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/PreviewInvoiceModel"
            }
          },
          "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": [
              "invoices.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/invoices": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Gets the list of all invoices (the metadata only, not the files).",
        "description": "Gets the list of all invoices (the metadata only, not the files).\u003Cbr\u003EYou must have this scope: \u0027invoices.read\u0027.",
        "operationId": "FinanceInvoicesGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "number",
            "description": "The invoice number",
            "type": "string"
          },
          {
            "in": "query",
            "name": "status",
            "description": "Filter by invoice status",
            "type": "string",
            "enum": [
              "FullyPaid",
              "Unpaid",
              "WrittenOff"
            ]
          },
          {
            "in": "query",
            "name": "checkedOutOnAccountsReceivable",
            "description": "If set to \u0060true\u0060, only return invoices with an open balance (AR)\nOtherwise, returns all.",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "outstandingPaymentFilter",
            "description": "Filter for the outstanding balance for invoices\u003Cbr /\u003EYou can provide an array of string expressions which all need to apply.\u003Cbr /\u003EEach expression has the form of \u0027OPERATION_VALUE\u0027 where VALUE needs to be of the valid format of the property type and OPERATION can be:\u003Cbr /\u003E\u0027eq\u0027 for equals\u003Cbr /\u003E\u0027neq\u0027 for not equals\u003Cbr /\u003E\u0027lt\u0027 for less than\u003Cbr /\u003E\u0027gt\u0027 for greater than\u003Cbr /\u003E\u0027lte\u0027 for less than or equals\u003Cbr /\u003E\u0027gte\u0027 for greater than or equals\u003Cbr /\u003EFor instance\u003Cbr /\u003E\u0027eq_5\u0027 would mean the value should equal 5\u003Cbr /\u003E\u0027lte_7\u0027 would mean the value should be less than or equal to 7",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dateFilter",
            "description": "Filter by invoice date\u003Cbr /\u003EYou can provide an array of string expressions which all need to apply.\u003Cbr /\u003EEach expression has the form of \u0027OPERATION_VALUE\u0027 where VALUE needs to be of the valid format of the property type and OPERATION can be:\u003Cbr /\u003E\u0027eq\u0027 for equals\u003Cbr /\u003E\u0027neq\u0027 for not equals\u003Cbr /\u003E\u0027lt\u0027 for less than\u003Cbr /\u003E\u0027gt\u0027 for greater than\u003Cbr /\u003E\u0027lte\u0027 for less than or equals\u003Cbr /\u003E\u0027gte\u0027 for greater than or equals\u003Cbr /\u003EFor instance\u003Cbr /\u003E\u0027eq_5\u0027 would mean the value should equal 5\u003Cbr /\u003E\u0027lte_7\u0027 would mean the value should be less than or equal to 7",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propertyIds",
            "description": "Filter by property IDs",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "reservationIds",
            "description": "Filter by reservation IDs",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "bookingIds",
            "description": "Filter by booking IDs",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "folioIds",
            "description": "Filter by folio IDs",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "nameSearch",
            "description": "Find invoices for a recipient name or company. Provide at least three characters.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "paymentSettled",
            "description": "If set to \u0060true\u0060, returns only invoices having no outstanding payments or marked as settled.\nIf set to \u0060false\u0060, returns only invoices with outstanding payment and not marked as settled.\nIf not set, returns all invoices. - \u003Cb\u003EDEPRECATED: This field will be removed at 25.06.2022. Use filtering by \u0060Status\u0060 instead\u003C/b\u003E",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "companyIds",
            "description": "Filter by company IDs",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "recipientType",
            "description": "If nothing is set, invoices addressed both companies and individuals will be returned.\nIf set to \u0060Person\u0060, invoices that addressed to individuals will be returned.\nIf set to \u0060Company\u0060, invoice that addressed to companies will be returned.",
            "type": "string",
            "enum": [
              "Person",
              "Company"
            ]
          },
          {
            "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
          },
          {
            "in": "query",
            "name": "expand",
            "description": "List of all embedded resources that should be expanded in the response. Possible values are: allowedActions, company. All other values will be silently ignored.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "allowedActions",
                "company"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/InvoiceListModel"
            }
          },
          "204": {
            "description": "No invoices 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": [
              "invoices.read",
              "admin"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Creates an invoice for one specific folio.",
        "description": "Creates an invoice for one specific folio. The invoice can only be created once.\nThe debitor needs to have name, city, postal code and country code, as these are required for invoices.\nIf the folio is not fully paid, this will check out the reservation on AR and create an invoice with outstanding payments.\u003Cbr\u003EYou must have at least one of these scopes: \u0027invoices.create, invoices.manage\u0027.",
        "operationId": "FinanceInvoicesPost",
        "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 folio ID to create the invoice for.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateInvoiceRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "The invoice was created successfully.",
            "schema": {
              "$ref": "#/definitions/InvoiceCreatedModel"
            },
            "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": [
              "invoices.create",
              "invoices.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/invoices/{id}/pdf": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Gets an invoice PDF file.",
        "description": "Gets an invoice PDF file by its ID. Only works for invoices that have already been created using POST /invoices.\u003Cbr\u003EYou must have this scope: \u0027invoices.read\u0027.",
        "operationId": "FinanceInvoicesByIdPdfGet",
        "produces": [
          "application/pdf",
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The invoice ID.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "type": "file"
            }
          },
          "204": {
            "description": "Invoice is not yet rendered."
          },
          "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": [
              "invoices.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/invoices/{id}": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Gets invoice data.",
        "description": "Gets invoice data by its ID. Only works for invoices that have already been created using POST /invoices.\u003Cbr\u003EYou must have this scope: \u0027invoices.read\u0027.",
        "operationId": "FinanceInvoicesByIdGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The invoice ID.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "expand",
            "description": "List of all embedded resources that should be expanded in the response. Possible values are: company. All other values will be silently ignored.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "company"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/InvoiceModel"
            }
          },
          "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": [
              "invoices.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/invoice-actions/{id}/pay": {
      "put": {
        "tags": [
          "InvoiceAction"
        ],
        "summary": "Marks an invoice as paid.",
        "description": "Settles the invoice, if the invoice has an amount to be paid (total != 0).\u003Cbr\u003EYou must have this scope: \u0027invoices.manage\u0027.",
        "operationId": "FinanceInvoice-actionsByIdPayPut",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The invoice ID",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "see class",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PayInvoiceRequest"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Invoice marked as paid."
          },
          "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": [
              "invoices.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/invoice-actions/{id}/cancel": {
      "put": {
        "tags": [
          "InvoiceAction"
        ],
        "summary": "Cancels an invoice",
        "description": "For regular invoices and AR invoices that haven\u0027t been paid yet, creates a new cancellation invoice and opens the folio again.\nFor advance invoices, creates a new cancellation invoice.\u003Cbr\u003EYou must have this scope: \u0027invoices.manage\u0027.",
        "operationId": "FinanceInvoice-actionsByIdCancelPut",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The invoice ID",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "see class",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CancelInvoiceRequest"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Invoice canceled."
          },
          "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": [
              "invoices.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/routings": {
      "post": {
        "tags": [
          "Routing"
        ],
        "summary": "Create a routing.",
        "description": "\u003Cbr\u003EYou must have at least one of these scopes: \u0027routings.create, routings.manage\u0027.",
        "operationId": "FinanceRoutingsPost",
        "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 routing.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateRoutingModel"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Routing successfully created.",
            "schema": {
              "$ref": "#/definitions/RoutingCreatedModel"
            },
            "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": [
              "routings.create",
              "routings.manage",
              "admin"
            ]
          }
        ]
      },
      "get": {
        "tags": [
          "Routing"
        ],
        "summary": "Get all routings.",
        "description": "\u003Cbr\u003EYou must have at least one of these scopes: \u0027routings.read, setup.read, setup.manage\u0027.",
        "operationId": "FinanceRoutingsGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "routingIds",
            "description": "Return routings with any of the specified ids",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "bookingIds",
            "description": "Return routings within any of the specified bookings",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "propertyIds",
            "description": "Return routings within any of the specified properties",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sourceFolioIds",
            "description": "Return routings with any of the specified folios as a source",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "destinationFolioIds",
            "description": "Return routings with any of the specified folios as destination",
            "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
          },
          {
            "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": "Success.",
            "schema": {
              "$ref": "#/definitions/RoutingListModel"
            }
          },
          "204": {
            "description": "No routings 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": [
              "routings.read",
              "setup.read",
              "setup.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/routings/{id}": {
      "get": {
        "tags": [
          "Routing"
        ],
        "summary": "Get a specific routing.",
        "description": "\u003Cbr\u003EYou must have at least one of these scopes: \u0027routings.read, setup.read, setup.manage\u0027.",
        "operationId": "FinanceRoutingsByIdGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the routing.",
            "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": "Success.",
            "schema": {
              "$ref": "#/definitions/RoutingModel"
            }
          },
          "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": [
              "routings.read",
              "setup.read",
              "setup.manage",
              "admin"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Routing"
        ],
        "summary": "Modify a routing.",
        "description": "Here is the list of operations that are currently allowed:\n- Replace Filter\n- Replace DestinationFolio\u003Cbr\u003EYou must have at least one of these scopes: \u0027routings.manage, setup.manage\u0027.",
        "operationId": "FinanceRoutingsByIdPatch",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the routing.",
            "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 routing 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": [
              "routings.manage",
              "setup.manage",
              "admin"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Routing"
        ],
        "summary": "Delete a routing.",
        "description": "Use this call to delete a routing.\u003Cbr\u003EYou must have at least one of these scopes: \u0027routings.manage, setup.manage\u0027.",
        "operationId": "FinanceRoutingsByIdDelete",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the routing.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Deletion of the routing 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": [
              "routings.manage",
              "setup.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/accounts/aggregate-pairs-daily": {
      "post": {
        "tags": [
          "SubLedger"
        ],
        "summary": "Aggregates transactions pairs by date (business day) for all accounts and a given period.",
        "description": "Returns total amount credited from one account to another\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.read, accounting.read\u0027.",
        "operationId": "FinanceAccountsAggregate-pairs-dailyPost",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "Specifies the property transactions will be aggregated for.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "from",
            "description": "The inclusive start date of the interval",
            "required": true,
            "type": "string",
            "format": "date"
          },
          {
            "in": "query",
            "name": "to",
            "description": "The exclusive end date of the interval",
            "required": true,
            "type": "string",
            "format": "date"
          },
          {
            "in": "query",
            "name": "reference",
            "description": "Filter transactions by reference (reservation id/external folio id/property id for house folio).",
            "type": "string"
          },
          {
            "in": "query",
            "name": "accountNumber",
            "description": "Filter transactions by account number",
            "type": "string"
          },
          {
            "in": "query",
            "name": "accountType",
            "description": "Filter transactions by type",
            "type": "string",
            "enum": [
              "Revenues",
              "Payments",
              "Liabilities",
              "Receivables",
              "Vat",
              "House",
              "AccountsReceivable",
              "CityTaxes",
              "TransitoryItems",
              "VatOnLiabilities",
              "LossOfAccountsReceivable",
              "SecondCityTax",
              "GuestLevies"
            ]
          },
          {
            "in": "query",
            "name": "accountingSchema",
            "description": "Allows to override the default accounting schema. Only specify this, when you know what you are doing.",
            "type": "string",
            "enum": [
              "Simple",
              "Extended"
            ]
          },
          {
            "in": "query",
            "name": "languageCode",
            "description": "The language for the the report (2-letter ISO code)",
            "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"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/AccountingTransactionPairListModel"
            }
          },
          "204": {
            "description": "No transactions 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",
              "accounting.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/accounts/aggregate-daily": {
      "post": {
        "tags": [
          "SubLedger"
        ],
        "summary": "Aggregates transactions by date (business day) for all accounts and a given period.",
        "description": "Returns credited and debited amounts aggregated by transactions\u0027 date (business day) for all accounts and a given period.\nStores an entry in the export audit log.\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.read, accounting.read\u0027.",
        "operationId": "FinanceAccountsAggregate-dailyPost",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "Specifies the property transactions will be aggregated for.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "from",
            "description": "The inclusive start date of the interval",
            "required": true,
            "type": "string",
            "format": "date"
          },
          {
            "in": "query",
            "name": "to",
            "description": "The exclusive end date of the interval",
            "required": true,
            "type": "string",
            "format": "date"
          },
          {
            "in": "query",
            "name": "reference",
            "description": "Filter transactions by reference (reservation id/external folio id/property id for house folio).",
            "type": "string"
          },
          {
            "in": "query",
            "name": "accountNumber",
            "description": "Filter transactions by account number",
            "type": "string"
          },
          {
            "in": "query",
            "name": "accountType",
            "description": "Filter transactions by type",
            "type": "string",
            "enum": [
              "Revenues",
              "Payments",
              "Liabilities",
              "Receivables",
              "Vat",
              "House",
              "AccountsReceivable",
              "CityTaxes",
              "TransitoryItems",
              "VatOnLiabilities",
              "LossOfAccountsReceivable",
              "SecondCityTax",
              "GuestLevies"
            ]
          },
          {
            "in": "query",
            "name": "accountingSchema",
            "description": "Allows to override the default accounting schema. Only specify this, when you know what you are doing.",
            "type": "string",
            "enum": [
              "Simple",
              "Extended"
            ]
          },
          {
            "in": "query",
            "name": "languageCode",
            "description": "The language for the the report (2-letter ISO code)",
            "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"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/AggregateTransactionListModel"
            }
          },
          "204": {
            "description": "No transactions 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",
              "accounting.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/accounts/aggregate": {
      "post": {
        "tags": [
          "SubLedger"
        ],
        "summary": "Aggregates transactions by timestamp for all accounts and a given period.",
        "description": "Returns credited and debited amounts aggregated by transactions\u0027 timestamp for all accounts and a given period.\nStores an entry in the export audit log.\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.read, accounting.read\u0027.",
        "operationId": "FinanceAccountsAggregatePost",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "Specifies the property for which transactions will be exported",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "from",
            "description": "The inclusive start time of the posting date.\nEither posting date or business date interval should be specified.\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
            "required": true,
            "type": "string",
            "format": "date-time"
          },
          {
            "in": "query",
            "name": "to",
            "description": "The exclusive end time of the posting date.\nEither posting date or business date interval should be specified.\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
            "required": true,
            "type": "string",
            "format": "date-time"
          },
          {
            "in": "query",
            "name": "accountNumber",
            "description": "Filter transactions by account number",
            "type": "string"
          },
          {
            "in": "query",
            "name": "accountType",
            "description": "Filter transactions by type",
            "type": "string",
            "enum": [
              "Revenues",
              "Payments",
              "Liabilities",
              "Receivables",
              "Vat",
              "House",
              "AccountsReceivable",
              "CityTaxes",
              "TransitoryItems",
              "VatOnLiabilities",
              "LossOfAccountsReceivable",
              "SecondCityTax",
              "GuestLevies"
            ]
          },
          {
            "in": "query",
            "name": "accountingSchema",
            "description": "Allows to override the default accounting schema. Only specify this, when you know what you are doing.",
            "type": "string",
            "enum": [
              "Simple",
              "Extended"
            ]
          },
          {
            "in": "query",
            "name": "languageCode",
            "description": "The language for the the report",
            "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"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/AggregateTransactionListModel"
            }
          },
          "204": {
            "description": "No transactions 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",
              "accounting.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/accounts/export": {
      "post": {
        "tags": [
          "SubLedger"
        ],
        "summary": "Returns transactions filtered by timestamp for a property for a given period.",
        "description": "Returns the raw transaction data for a given property and time period.\nStores an entry in the export audit log.\u003Cbr\u003EYou must have at least one of these scopes: \u0027transactions.export, accounting.read\u0027.",
        "operationId": "FinanceAccountsExportPost",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "Specifies the property for which transactions will be exported",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "from",
            "description": "The inclusive start time of the posting date.\nEither posting date or business date interval should be specified.\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
            "required": true,
            "type": "string",
            "format": "date-time"
          },
          {
            "in": "query",
            "name": "to",
            "description": "The exclusive end time of the posting date.\nEither posting date or business date interval should be specified.\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
            "required": true,
            "type": "string",
            "format": "date-time"
          },
          {
            "in": "query",
            "name": "accountNumber",
            "description": "Filter transactions by account number",
            "type": "string"
          },
          {
            "in": "query",
            "name": "accountType",
            "description": "Filter transactions by type",
            "type": "string",
            "enum": [
              "Revenues",
              "Payments",
              "Liabilities",
              "Receivables",
              "Vat",
              "House",
              "AccountsReceivable",
              "CityTaxes",
              "TransitoryItems",
              "VatOnLiabilities",
              "LossOfAccountsReceivable",
              "SecondCityTax",
              "GuestLevies"
            ]
          },
          {
            "in": "query",
            "name": "accountingSchema",
            "description": "Allows to override the default accounting schema. Only specify this, when you know what you are doing.",
            "type": "string",
            "enum": [
              "Simple",
              "Extended"
            ]
          },
          {
            "in": "query",
            "name": "languageCode",
            "description": "The language for the the report",
            "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"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/AccountingTransactionListModel"
            }
          },
          "204": {
            "description": "No transactions 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": [
              "transactions.export",
              "accounting.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/accounts/export-daily": {
      "post": {
        "tags": [
          "SubLedger"
        ],
        "summary": "Returns transactions filtered by date (business day) for a property for a given period.",
        "description": "Returns the raw transaction data for a given property and time period.\nStores an entry in the export audit log.\u003Cbr\u003EYou must have at least one of these scopes: \u0027transactions.export, accounting.read\u0027.",
        "operationId": "FinanceAccountsExport-dailyPost",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "Specifies the property transactions will be aggregated for.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "from",
            "description": "The inclusive start date of the interval",
            "required": true,
            "type": "string",
            "format": "date"
          },
          {
            "in": "query",
            "name": "to",
            "description": "The exclusive end date of the interval",
            "required": true,
            "type": "string",
            "format": "date"
          },
          {
            "in": "query",
            "name": "reference",
            "description": "Filter transactions by reference (reservation id/external folio id/property id for house folio).",
            "type": "string"
          },
          {
            "in": "query",
            "name": "accountNumber",
            "description": "Filter transactions by account number",
            "type": "string"
          },
          {
            "in": "query",
            "name": "accountType",
            "description": "Filter transactions by type",
            "type": "string",
            "enum": [
              "Revenues",
              "Payments",
              "Liabilities",
              "Receivables",
              "Vat",
              "House",
              "AccountsReceivable",
              "CityTaxes",
              "TransitoryItems",
              "VatOnLiabilities",
              "LossOfAccountsReceivable",
              "SecondCityTax",
              "GuestLevies"
            ]
          },
          {
            "in": "query",
            "name": "accountingSchema",
            "description": "Allows to override the default accounting schema. Only specify this, when you know what you are doing.",
            "type": "string",
            "enum": [
              "Simple",
              "Extended"
            ]
          },
          {
            "in": "query",
            "name": "languageCode",
            "description": "The language for the the report (2-letter ISO code)",
            "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"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/AccountingTransactionListModel"
            }
          },
          "204": {
            "description": "No transactions 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": [
              "transactions.export",
              "accounting.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/accounts/export-gross-daily": {
      "post": {
        "tags": [
          "SubLedger"
        ],
        "summary": "Returns gross transactions filtered by date (business day) for a property for a given period.",
        "description": "Returns the raw transaction data for a given property and time period.\nStores an entry in the export audit log.\u003Cbr\u003EYou must have at least one of these scopes: \u0027transactions.export, accounting.read\u0027.",
        "operationId": "FinanceAccountsExport-gross-dailyPost",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "Specifies the property transactions will be aggregated for.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "from",
            "description": "The inclusive start date of the interval",
            "required": true,
            "type": "string",
            "format": "date"
          },
          {
            "in": "query",
            "name": "to",
            "description": "The exclusive end date of the interval",
            "required": true,
            "type": "string",
            "format": "date"
          },
          {
            "in": "query",
            "name": "reference",
            "description": "Filter transactions by reference (reservation id/external folio id/property id for house folio).",
            "type": "string"
          },
          {
            "in": "query",
            "name": "accountingSchema",
            "description": "Allows to override the default accounting schema. Only specify this, when you know what you are doing.",
            "type": "string",
            "enum": [
              "Simple",
              "Extended"
            ]
          },
          {
            "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"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/ExportGrossTransactionListModel"
            }
          },
          "204": {
            "description": "No transactions 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": [
              "transactions.export",
              "accounting.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/accounts/schema": {
      "get": {
        "tags": [
          "SubLedger"
        ],
        "summary": "Returns the chart of accounts of the subledger.",
        "description": "Returns the schema of subledger, split into global and guest ledger.\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.read, accounting.read\u0027.",
        "operationId": "FinanceAccountsSchemaGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "Filter account list by property ID",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "depth",
            "description": "How many hierarchy levels to include (between 1 and 4, default is 1).",
            "type": "integer",
            "format": "int32",
            "maximum": 2147483647,
            "minimum": 1
          },
          {
            "in": "query",
            "name": "includeArchived",
            "description": "If set to true, also includes archived accounts. If not set, or set to false, it only returns non-archived accounts",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "accountingSchema",
            "description": "Allows to override the default accounting schema. Only specify this, when you know what you are doing.",
            "type": "string",
            "enum": [
              "Simple",
              "Extended"
            ]
          },
          {
            "in": "query",
            "name": "languageCode",
            "description": "The language for the the report. If not specified, language code from \u0022Accept-Language\u0022 will be used.",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/ChartOfAccountsModel"
            }
          },
          "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",
              "accounting.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/global-accounts": {
      "get": {
        "tags": [
          "SubLedger"
        ],
        "summary": "Returns a list of global accounts.",
        "description": "Returns a list of accounts in one property, having the same global account as parent.\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.read, accounting.read\u0027.",
        "operationId": "FinanceGlobal-accountsGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "Filter account list by property ID",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "parent",
            "description": "Filter account list by the parent account\u0027s number.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "includeArchived",
            "description": "If set to true, also includes archived accounts. If not set, or set to false, it only returns non-archived accounts",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "accountingSchema",
            "description": "Allows to override the default accounting schema",
            "type": "string",
            "enum": [
              "Simple",
              "Extended"
            ]
          },
          {
            "in": "query",
            "name": "languageCode",
            "description": "The language for the the report",
            "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/FinanceAccountListModel"
            }
          },
          "204": {
            "description": "No 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",
              "accounting.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/guest-accounts": {
      "get": {
        "tags": [
          "SubLedger"
        ],
        "summary": "Returns a list of guest accounts.",
        "description": "Returns a list of accounts in one property for a reservation.\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.read, accounting.read\u0027.",
        "operationId": "FinanceGuest-accountsGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "Filter account list by property id",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "reservationId",
            "description": "Filter account list by reservation id",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "parent",
            "description": "Filter account list by the parent account\u0027s number.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "languageCode",
            "description": "The language for the the report",
            "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/FinanceAccountListModel"
            }
          },
          "204": {
            "description": "No 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",
              "accounting.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/external-accounts": {
      "get": {
        "tags": [
          "SubLedger"
        ],
        "summary": "Returns a list of external accounts.",
        "description": "Returns a list of accounts in one property for a folio.\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.read, accounting.read\u0027.",
        "operationId": "FinanceExternal-accountsGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "Filter account list by property id",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "folioId",
            "description": "Filter account list by folio id",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "parent",
            "description": "Filter account list by the parent account\u0027s number.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "languageCode",
            "description": "The language for the the report",
            "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/FinanceAccountListModel"
            }
          },
          "204": {
            "description": "No 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",
              "accounting.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/accounts/{number}": {
      "get": {
        "tags": [
          "SubLedger"
        ],
        "summary": "Returns one account.",
        "description": "Returns one account, as specified by its number and the property.\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.read, accounting.read\u0027.",
        "operationId": "FinanceAccountsByNumberGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "number",
            "description": "The account number",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "propertyId",
            "description": "Specifies the property the account is in.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "transactionLimit",
            "description": "Limit how many transactions should be included in the view (between 0 and 50, defaults to 0).",
            "type": "integer",
            "format": "int32",
            "maximum": 100,
            "minimum": 0
          },
          {
            "in": "query",
            "name": "includeArchived",
            "description": "If set to true, also includes archived accounts. If not set, or set to false, it only returns non-archived accounts",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "accountingSchema",
            "description": "Allows to override the default accounting schema. Only specify this, when you know what you are doing.",
            "type": "string",
            "enum": [
              "Simple",
              "Extended"
            ]
          },
          {
            "in": "query",
            "name": "languageCode",
            "description": "The language for the the report",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/FinanceAccountModel"
            }
          },
          "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",
              "accounting.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/accounts/child-accounts": {
      "get": {
        "tags": [
          "SubLedger"
        ],
        "summary": "Returns a list of child accounts for a specified parent account.",
        "description": "\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.read, accounting.read\u0027.",
        "operationId": "FinanceAccountsChild-accountsGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "Filter account list by property id",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "parent",
            "description": "Filter account list by the parent account\u0027s number.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "languageCode",
            "description": "The language for the the report",
            "type": "string"
          },
          {
            "in": "query",
            "name": "accountingSchema",
            "description": "Allows to override the default accounting schema",
            "type": "string",
            "enum": [
              "Simple",
              "Extended"
            ]
          },
          {
            "in": "query",
            "name": "includeArchived",
            "description": "If set to true, also includes archived accounts. If not set, or set to false, it only returns non-archived accounts",
            "type": "boolean"
          },
          {
            "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/FinanceAccountListModel"
            }
          },
          "204": {
            "description": "No 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",
              "accounting.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v1/types/currencies": {
      "get": {
        "tags": [
          "Types"
        ],
        "summary": "Returns a list of all currencies.",
        "description": "Returns a list of all currencies.",
        "operationId": "FinanceTypesCurrenciesGet",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/CurrencyListModel"
            }
          },
          "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"
            }
          }
        }
      }
    },
    "/finance/v1/types/payment-methods": {
      "get": {
        "tags": [
          "Types"
        ],
        "summary": "Returns a list of all supported payment methods.",
        "description": "Returns a list of all supported payment methods.",
        "operationId": "FinanceTypesPayment-methodsGet",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/PaymentMethodListModel"
            }
          },
          "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"
            }
          }
        }
      }
    },
    "/finance/v1/types/service-types": {
      "get": {
        "tags": [
          "Types"
        ],
        "summary": "Returns a list of all supported service types.",
        "description": "Returns a list of all supported service types.",
        "operationId": "FinanceTypesService-typesGet",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/ServiceTypeListModel"
            }
          },
          "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"
            }
          }
        }
      }
    },
    "/finance/v1/types/vat": {
      "get": {
        "tags": [
          "Types"
        ],
        "summary": "Returns a list of all VAT types.",
        "description": "Returns a list of all VAT types and percents for a country. Supported:\n\n- Andorra (AD)\n\n- Albania (AL)\n\n- Argentina (AR)\n\n- Austria (AT)\n\n- Aruba (AW)\n\n- Australia (AU)\n\n- Azerbaijan (AZ)\n\n- Bahamas (BS)\n\n- Belgium (BE)\n\n- Bulgaria (BG)\n\n- Cape Verde (CV)\n\n- Costa Rica (CR)\n\n- Croatia (HR)\n\n- Czech Republic (CZ)\n\n- Denmark (DK)\n\n- Estonia (EE)\n\n- Finland (FI)\n\n- France (FR) - without the super-reduced 2.1% VAT\n\n- French Polynesia (PF)\n\n- Germany (DE)\n\n- Greece (GR)\n\n- Hungary (HU)\n\n- Indonesia (ID)\n\n- Ireland (IE)\n\n- Italy (IT)\n\n- Iceland (IS)\n\n- Japan (JP)\n\n- Liechtenstein (LI)\n\n- Luxembourg (LU)\n\n- Madagascar (MG)\n\n- Malaysia (MY)\n\n- Malta (MT)\n\n- Mexico (MX)\n\n- Monaco (MC)\n\n- Morocco (MA)\n\n- Netherlands (NL)\n\n- New Zealand (NZ)\n\n- Norway (NO) - without the VAT for raw fish supplies\n\n- Poland (PL)\n\n- Portugal (PT)\n\n- Reunion (RE)\n\n- Saudi Arabia (SA)\n\n- Serbia (RS)\n\n- Slovakia (SK)\n\n- Slovenia (SI)\n\n- South Africa (ZA)\n\n- Spain (ES)\n\n- Sweden (SE)\n\n- Switzerland (CH)\n\n- Taiwan (TW)\n\n- United Kingdom (GB)\n\n- United Arab Emirates (AE)",
        "operationId": "FinanceTypesVatGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "isoCountryCode",
            "description": "The 2-letter ISO country code",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "atDate",
            "description": "If specified, returns the VAT types that are effective for this specific date.\nIf nothing specified, returns the VAT types that are effective for the current date in UTC timezone.",
            "type": "string",
            "format": "date"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/VatListModel"
            }
          },
          "204": {
            "description": "No VAT setup for the specified country."
          },
          "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"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "AccountingTransactionListModel": {
      "type": "object",
      "required": [
        "transactions"
      ],
      "properties": {
        "transactions": {
          "type": "array",
          "description": "The list of transactions",
          "items": {
            "$ref": "#/definitions/AccountingTransactionModel"
          }
        }
      },
      "additionalProperties": false,
      "example": {
        "transactions": [
          {
            "timestamp": "2026-09-05T14:34:08.9615259Z",
            "date": "2026-09-05",
            "debitedAccount": {
              "name": "Receivables for Reservation KFEMSDED-1",
              "number": "KFEMSDED-1_Receivables",
              "parentNumber": "1200",
              "type": "Receivables"
            },
            "creditedAccount": {
              "name": "Revenue Accommodation Other",
              "number": "RevenueAccommodation_Other:19",
              "parentNumber": "5000",
              "type": "Revenues"
            },
            "command": "PostCharge",
            "amount": {
              "amount": 1234.56,
              "currency": "EUR"
            },
            "receipt": {
              "type": "Custom",
              "number": "custom receipt"
            },
            "entryNumber": "00000321",
            "reference": "IDDQD-EXT-1",
            "referenceType": "House",
            "entryGroupNumber": "0000321"
          }
        ]
      }
    },
    "AccountingTransactionModel": {
      "type": "object",
      "required": [
        "amount",
        "command",
        "creditedAccount",
        "date",
        "debitedAccount",
        "entryGroupNumber",
        "entryNumber",
        "reference",
        "referenceType",
        "timestamp"
      ],
      "properties": {
        "timestamp": {
          "type": "string",
          "description": "Timestamp with time zone information, when the booking was done\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
          "format": "date-time"
        },
        "date": {
          "type": "string",
          "description": "The business date when the booking was done",
          "format": "date",
          "example": "2020-10-10"
        },
        "debitedAccount": {
          "$ref": "#/definitions/ExportAccountModel"
        },
        "creditedAccount": {
          "$ref": "#/definitions/ExportAccountModel"
        },
        "command": {
          "type": "string",
          "description": "The type of business transaction which triggered the booking",
          "enum": [
            "PostCharge",
            "PostPayment",
            "MoveLineItem",
            "PostPrepayment",
            "PostToAccountsReceivables",
            "PostPrepaymentVat",
            "PostToLossOfAccountsReceivables",
            "System"
          ]
        },
        "amount": {
          "$ref": "#/definitions/PreciseMonetaryValueModel"
        },
        "receipt": {
          "$ref": "#/definitions/ReceiptModel"
        },
        "entryNumber": {
          "type": "string",
          "description": "All transactions having the same number form one booking",
          "minLength": 1
        },
        "reference": {
          "type": "string",
          "description": "The reference for the transactions, reservation id for guest folios, folio id for external folios, property code for the house folio"
        },
        "referenceType": {
          "type": "string",
          "description": "Does this transaction belong to a reservation, a house or an external folio",
          "enum": [
            "House",
            "Guest",
            "External",
            "Booking"
          ]
        },
        "entryGroupNumber": {
          "type": "string",
          "description": "All transactions triggered by the same business transaction share one group number",
          "minLength": 1
        }
      },
      "additionalProperties": false
    },
    "AccountingTransactionPairListModel": {
      "type": "object",
      "required": [
        "accountTransactionPairs"
      ],
      "properties": {
        "accountTransactionPairs": {
          "type": "array",
          "description": "The list of aggregated transaction pairs",
          "items": {
            "$ref": "#/definitions/AccountingTransactionPairModel"
          }
        }
      },
      "additionalProperties": false,
      "example": {
        "accountTransactionPairs": [
          {
            "debitedAccount": {
              "name": "Liabilities",
              "number": "3000",
              "type": "Liabilities"
            },
            "creditedAccount": {
              "name": "Receivables",
              "number": "1200",
              "type": "Receivables"
            },
            "amount": {
              "amount": 100.0,
              "currency": "EUR"
            }
          }
        ]
      }
    },
    "AccountingTransactionPairModel": {
      "type": "object",
      "required": [
        "amount",
        "creditedAccount",
        "debitedAccount"
      ],
      "properties": {
        "debitedAccount": {
          "$ref": "#/definitions/ExportAccountModel"
        },
        "creditedAccount": {
          "$ref": "#/definitions/ExportAccountModel"
        },
        "amount": {
          "$ref": "#/definitions/PreciseMonetaryValueModel"
        }
      },
      "additionalProperties": false
    },
    "ActionModel[PaymentAction,NotAllowedPaymentActionReason]": {
      "type": "object",
      "required": [
        "action",
        "isAllowed"
      ],
      "properties": {
        "action": {
          "type": "string",
          "enum": [
            "Cancel",
            "OnlineRefund",
            "ManualRefund"
          ]
        },
        "isAllowed": {
          "type": "boolean"
        },
        "reasons": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ActionReasonModel[NotAllowedPaymentActionReason]"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "ActionModel[RoutingAction,NotAllowedRoutingActionReason]": {
      "type": "object",
      "required": [
        "action",
        "isAllowed"
      ],
      "properties": {
        "action": {
          "type": "string",
          "enum": [
            "Delete",
            "Modify"
          ]
        },
        "isAllowed": {
          "type": "boolean"
        },
        "reasons": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ActionReasonModel[NotAllowedRoutingActionReason]"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "ActionReasonModel[NotAllowedPaymentActionReason]": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "enum": [
            "CancelNotAllowedForPaymentNotInStatusPending",
            "CancelNotAllowedForPaymentNotOfPaymentLinkType",
            "OnlineRefundNotAllowedForRestrictedPaymentMethodOrAcquirer",
            "ManualRefundNotAllowedWhenOnlineRefundIsPossible",
            "CancelNotAllowedForIncompletePaymentLink"
          ]
        },
        "message": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    },
    "ActionReasonModel[NotAllowedRoutingActionReason]": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "enum": [
            "DeleteNotAllowedForDestinationFolioClosed",
            "DeleteNotAllowedForDestinationFolioWithAdvanceInvoice",
            "DeleteNotAllowedForDestinationFolioWithMovedOutRoutedCharges",
            "DeleteNotAllowedForSourceFoliosClosed",
            "DeleteNotAllowedForSourceFoliosWithAdvanceInvoice",
            "ModifyNotAllowedForDestinationFolioClosed",
            "ModifyNotAllowedForDestinationFolioWithAdvanceInvoice",
            "ModifyNotAllowedForSourceFoliosWithAdvanceInvoice",
            "ModifyNotAllowedForDestinationFolioWithMovedOutRoutedCharges",
            "DeleteNotAllowedForSourceFoliosWithPendingInvoice",
            "DeleteNotAllowedForDestinationFolioWithPendingInvoice",
            "ModifyNotAllowedForSourceFoliosWithPendingInvoice",
            "ModifyNotAllowedForDestinationFolioWithPendingInvoice"
          ]
        },
        "message": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    },
    "AddedChargeModel": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The id of the added charge"
        },
        "feeChargeIds": {
          "type": "array",
          "description": "The fee charges ids",
          "items": {
            "type": "string"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "XT347518-1-1",
        "feeChargeIds": [
          "XT347518-1-SERVICE-1"
        ]
      }
    },
    "AddressModel": {
      "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
    },
    "AggregateTransactionItemModel": {
      "type": "object",
      "required": [
        "account",
        "balance",
        "creditedAmount",
        "debitedAmount"
      ],
      "properties": {
        "account": {
          "$ref": "#/definitions/ExportAccountModel"
        },
        "creditedAmount": {
          "$ref": "#/definitions/PreciseMonetaryValueModel"
        },
        "debitedAmount": {
          "$ref": "#/definitions/PreciseMonetaryValueModel"
        },
        "balance": {
          "$ref": "#/definitions/PreciseMonetaryValueModel"
        }
      },
      "additionalProperties": false
    },
    "AggregateTransactionListModel": {
      "type": "object",
      "required": [
        "aggregations",
        "total"
      ],
      "properties": {
        "aggregations": {
          "type": "array",
          "description": "Aggregated data for the main accounts.",
          "items": {
            "$ref": "#/definitions/AggregateTransactionItemModel"
          }
        },
        "total": {
          "$ref": "#/definitions/AggregatesTotalModel"
        }
      },
      "additionalProperties": false,
      "example": {
        "aggregations": [
          {
            "account": {
              "name": "Payments",
              "number": "1000",
              "type": "Payments"
            },
            "creditedAmount": {
              "amount": 202.0,
              "currency": "EUR"
            },
            "debitedAmount": {
              "amount": 170.0,
              "currency": "EUR"
            },
            "balance": {
              "amount": -32.0,
              "currency": "EUR"
            }
          },
          {
            "account": {
              "name": "Revenues",
              "number": "5000",
              "type": "Revenues"
            },
            "creditedAmount": {
              "amount": 233.0,
              "currency": "EUR"
            },
            "debitedAmount": {
              "amount": 265.0,
              "currency": "EUR"
            },
            "balance": {
              "amount": 32.0,
              "currency": "EUR"
            }
          }
        ],
        "total": {
          "creditedAmount": {
            "amount": 435.0,
            "currency": "EUR"
          },
          "debitedAmount": {
            "amount": 435.0,
            "currency": "EUR"
          },
          "balance": {
            "amount": 0.0,
            "currency": "EUR"
          }
        }
      }
    },
    "AggregatesTotalModel": {
      "type": "object",
      "required": [
        "balance",
        "creditedAmount",
        "debitedAmount"
      ],
      "properties": {
        "creditedAmount": {
          "$ref": "#/definitions/PreciseMonetaryValueModel"
        },
        "debitedAmount": {
          "$ref": "#/definitions/PreciseMonetaryValueModel"
        },
        "balance": {
          "$ref": "#/definitions/PreciseMonetaryValueModel"
        }
      },
      "additionalProperties": false
    },
    "AllowanceModel": {
      "type": "object",
      "required": [
        "amount",
        "created",
        "id",
        "reason",
        "serviceDate",
        "serviceType"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "ID for allowances. This is unique within one folio."
        },
        "amount": {
          "$ref": "#/definitions/AmountModel"
        },
        "reason": {
          "type": "string",
          "description": "Reason why this allowance was posted",
          "minLength": 1
        },
        "serviceType": {
          "type": "string",
          "enum": [
            "Other",
            "Accommodation",
            "FoodAndBeverages",
            "CancellationFees",
            "NoShow",
            "CityTax",
            "SecondCityTax",
            "LocalTax",
            "ConsumptionTax"
          ]
        },
        "serviceDate": {
          "type": "string",
          "format": "date",
          "example": "2020-10-10"
        },
        "created": {
          "type": "string",
          "description": "Date of creation\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
          "format": "date-time"
        },
        "movedFrom": {
          "$ref": "#/definitions/EmbeddedFolioModel"
        },
        "movedTo": {
          "$ref": "#/definitions/EmbeddedFolioModel"
        },
        "movedReason": {
          "type": "string",
          "description": "A reason why move operation was performed",
          "x-nullable": true
        },
        "sourceChargeId": {
          "type": "string",
          "description": "ID of a charge allowance posted for. \u0060Null\u0060 if posted for folio",
          "x-nullable": true
        },
        "subAccountId": {
          "type": "string",
          "description": "ID of the custom sub-account the allowance has been posted to",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "AmountModel": {
      "type": "object",
      "required": [
        "currency",
        "grossAmount",
        "netAmount",
        "vatPercent",
        "vatType"
      ],
      "properties": {
        "grossAmount": {
          "type": "number",
          "format": "double"
        },
        "netAmount": {
          "type": "number",
          "format": "double"
        },
        "vatType": {
          "type": "string",
          "enum": [
            "Null",
            "VeryReduced",
            "Reduced",
            "Normal",
            "Without",
            "Special",
            "Special1",
            "Special2",
            "ReducedCovid19",
            "NormalCovid19",
            "Mixed"
          ]
        },
        "vatPercent": {
          "type": "number",
          "format": "double"
        },
        "currency": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "example": {
        "grossAmount": 107.0,
        "netAmount": 100.0,
        "vatType": "Reduced",
        "vatPercent": 7.0,
        "currency": "USD"
      }
    },
    "BankAccountModel": {
      "type": "object",
      "properties": {
        "iban": {
          "type": "string",
          "x-nullable": true
        },
        "bic": {
          "type": "string",
          "x-nullable": true
        },
        "bank": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "BulkAllowanceCreatedItemModel": {
      "type": "object",
      "required": [
        "id",
        "sourceChargeId"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The id of the created allowance"
        },
        "sourceChargeId": {
          "type": "string",
          "description": "The id of the charge the allowance has been added to"
        }
      },
      "additionalProperties": false
    },
    "BulkAllowanceCreatedModel": {
      "type": "object",
      "required": [
        "items"
      ],
      "properties": {
        "items": {
          "type": "array",
          "description": "Allowances that have been created",
          "items": {
            "$ref": "#/definitions/BulkAllowanceCreatedItemModel"
          }
        }
      },
      "additionalProperties": false,
      "example": {
        "items": [
          {
            "id": "IDFKA-1-1-A-1",
            "sourceChargeId": "IDKFA-1-1-TS-1"
          },
          {
            "id": "IDFKA-1-1-A-2",
            "sourceChargeId": "IDKFA-1-1-ES-2"
          }
        ]
      }
    },
    "BulkMoveItemRequest": {
      "type": "object",
      "required": [
        "sourceFolioId",
        "targetFolioId"
      ],
      "properties": {
        "sourceFolioId": {
          "type": "string",
          "description": "ID of the source folio"
        },
        "targetFolioId": {
          "type": "string",
          "description": "ID of the target folio"
        },
        "chargeIds": {
          "type": "array",
          "description": "The IDs of the charges that should be moved",
          "items": {
            "type": "string"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "BulkMoveRequest": {
      "type": "object",
      "required": [
        "items",
        "reason"
      ],
      "properties": {
        "items": {
          "type": "array",
          "description": "The list of actions to perform",
          "items": {
            "$ref": "#/definitions/BulkMoveItemRequest"
          }
        },
        "reason": {
          "type": "string",
          "description": "Description of why the move is performed",
          "minLength": 1
        }
      },
      "additionalProperties": false,
      "example": {
        "items": [
          {
            "sourceFolioId": "SPRJDQNU-1",
            "targetFolioId": "KFCSQUID-1",
            "chargeIds": [
              "SPRJDQNU-1-C-1",
              "SPRJDQNU-1-C-5"
            ]
          },
          {
            "sourceFolioId": "TTDKOWNC-1",
            "targetFolioId": "YXPZMQAS-1",
            "chargeIds": [
              "TTDKOWNC-1-C-2",
              "TTDKOWNC-1-C-3"
            ]
          }
        ],
        "reason": "Test"
      }
    },
    "CancelInvoiceRequest": {
      "type": "object",
      "required": [
        "reasonCode"
      ],
      "properties": {
        "reasonCode": {
          "type": "string",
          "description": "The code of the reason why the invoice is cancelled.",
          "enum": [
            "ChangeOfRecipientDetails",
            "ChangeOfInvoiceRecipient",
            "ChangeOfPaymentMethod",
            "ChangeOfInvoiceTransactions",
            "Other"
          ]
        }
      },
      "additionalProperties": false,
      "example": {
        "reasonCode": "ChangeOfRecipientDetails"
      }
    },
    "ChargeModel": {
      "type": "object",
      "required": [
        "amount",
        "created",
        "id",
        "isPosted",
        "name",
        "quantity",
        "serviceDate",
        "serviceType",
        "type"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "ID for charges. This is unique within one folio."
        },
        "serviceType": {
          "type": "string",
          "description": "The type of the service or good",
          "enum": [
            "Other",
            "Accommodation",
            "FoodAndBeverages",
            "CancellationFees",
            "NoShow",
            "CityTax",
            "SecondCityTax",
            "LocalTax",
            "ConsumptionTax"
          ]
        },
        "name": {
          "type": "string",
          "description": "The name, article number, or other description of this charge",
          "minLength": 1
        },
        "translatedNames": {
          "type": "object",
          "description": "The name, article number, or other description of this charge\ntranslated in different languages",
          "additionalProperties": {
            "type": "string",
            "x-nullable": true
          },
          "x-nullable": true
        },
        "isPosted": {
          "type": "boolean",
          "description": "Status: is this already posted?"
        },
        "serviceDate": {
          "type": "string",
          "description": "The day when the line item is (or was) due to be charged.",
          "format": "date",
          "example": "2020-10-10"
        },
        "created": {
          "type": "string",
          "description": "Date of creation\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
          "format": "date-time"
        },
        "movedFrom": {
          "$ref": "#/definitions/EmbeddedFolioModel"
        },
        "movedTo": {
          "$ref": "#/definitions/EmbeddedFolioModel"
        },
        "movedReason": {
          "type": "string",
          "description": "A reason why move operation was performed",
          "x-nullable": true
        },
        "routedFrom": {
          "$ref": "#/definitions/EmbeddedFolioModel"
        },
        "routedTo": {
          "$ref": "#/definitions/EmbeddedFolioModel"
        },
        "amount": {
          "$ref": "#/definitions/AmountModel"
        },
        "receipt": {
          "type": "string",
          "description": "Receipt for this transaction",
          "x-nullable": true
        },
        "groupId": {
          "type": "string",
          "description": "Identifier used for grouping related charges together",
          "x-nullable": true
        },
        "subAccountId": {
          "type": "string",
          "description": "ID of the custom sub-account the charge has been posted to",
          "x-nullable": true
        },
        "quantity": {
          "type": "integer",
          "description": "The count of services provided",
          "format": "int32"
        },
        "type": {
          "type": "string",
          "description": "The type of the charge",
          "enum": [
            "Direct",
            "TimeSlice",
            "IncludedService",
            "ExtraService",
            "CityTax",
            "NoShowFee",
            "CancellationFee",
            "ServiceFee",
            "Tax",
            "SecondCityTax",
            "GuestLevy"
          ]
        }
      },
      "additionalProperties": false
    },
    "ChartOfAccountsModel": {
      "type": "object",
      "required": [
        "bookingAccounts",
        "externalAccounts",
        "globalAccounts",
        "guestAccounts"
      ],
      "properties": {
        "globalAccounts": {
          "type": "array",
          "description": "The predefined list of global accounts of a property\u0027s subledger",
          "items": {
            "$ref": "#/definitions/SlimFinanceAccountModel"
          }
        },
        "guestAccounts": {
          "type": "array",
          "description": "The predefined list of guest specific accounts of a property\u0027s subledger.",
          "items": {
            "$ref": "#/definitions/SlimFinanceAccountModel"
          }
        },
        "externalAccounts": {
          "type": "array",
          "description": "The predefined list of external accounts of a property\u0027s subledger.",
          "items": {
            "$ref": "#/definitions/SlimFinanceAccountModel"
          }
        },
        "bookingAccounts": {
          "type": "array",
          "description": "The predefined list of booking accounts of a property\u0027s subledger.",
          "items": {
            "$ref": "#/definitions/SlimFinanceAccountModel"
          }
        }
      },
      "additionalProperties": false,
      "example": {
        "globalAccounts": [
          {
            "accountNumber": "9000",
            "name": "House",
            "type": "House",
            "hasChildren": false,
            "isArchived": true
          },
          {
            "accountNumber": "1000",
            "name": "Payments",
            "type": "Payments",
            "hasChildren": true,
            "isArchived": false
          },
          {
            "accountNumber": "5000",
            "name": "Revenues",
            "type": "Revenues",
            "hasChildren": true,
            "isArchived": false
          }
        ],
        "guestAccounts": [
          {
            "accountNumber": "3000",
            "name": "Guest Liabilities",
            "type": "Liabilities",
            "hasChildren": true,
            "isArchived": false
          },
          {
            "accountNumber": "1200",
            "name": "Guest Receivables",
            "type": "Receivables",
            "hasChildren": true,
            "isArchived": false
          }
        ],
        "externalAccounts": [
          {
            "accountNumber": "1200",
            "name": "External Receivables",
            "type": "Receivables",
            "hasChildren": true,
            "isArchived": false
          }
        ],
        "bookingAccounts": [
          {
            "accountNumber": "1200",
            "name": "Liabilities",
            "type": "Liabilities",
            "hasChildren": true,
            "isArchived": false
          }
        ]
      }
    },
    "CommercialInfoModel": {
      "type": "object",
      "required": [
        "registerEntry",
        "taxId"
      ],
      "properties": {
        "registerEntry": {
          "type": "string",
          "minLength": 1
        },
        "taxId": {
          "type": "string",
          "minLength": 1
        },
        "managingDirectors": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "CompanyInfoModel": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the company",
          "minLength": 1
        },
        "taxId": {
          "type": "string",
          "description": "Tax or Vat ID of the company",
          "x-nullable": true
        },
        "additionalTaxId": {
          "type": "string",
          "description": "The additional tax ID of the company (e.g. SIRET in France, Codice Destinatario in Italy, SST in Malaysia)",
          "x-nullable": true
        },
        "additionalTaxId2": {
          "type": "string",
          "description": "The additional tax ID of the company (e.g. Codice Fiscale in Italy, BRN in Malaysia)",
          "x-nullable": true
        },
        "invoiceNetworkIdentity": {
          "$ref": "#/definitions/InvoiceNetworkIdentityModel"
        }
      },
      "additionalProperties": false
    },
    "CorrectFolioRequest": {
      "type": "object",
      "required": [
        "reason"
      ],
      "properties": {
        "reason": {
          "type": "string",
          "description": "Description of why the correction is performed",
          "minLength": 1
        },
        "chargeIds": {
          "type": "array",
          "description": "The IDs of the charges that should be moved",
          "items": {
            "type": "string"
          },
          "x-nullable": true
        },
        "allowanceIds": {
          "type": "array",
          "description": "The IDs of the allowances that should be moved\nOnly moving global allowances is supported",
          "items": {
            "type": "string"
          },
          "x-nullable": true
        },
        "transitoryChargeIds": {
          "type": "array",
          "description": "The IDs of the transitory charges that should be moved",
          "items": {
            "type": "string"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "reason": "Minibar is not paid by the company",
        "chargeIds": [
          "IDDQD-1-C-1",
          "IDDQD-1-C-5"
        ],
        "allowanceIds": [
          "IDDQD-1-A-1",
          "IDDQD-1-A-5"
        ],
        "transitoryChargeIds": [
          "IDDQD-1-TC-1",
          "IDDQD-1-TC-5"
        ]
      }
    },
    "CountModel": {
      "type": "object",
      "required": [
        "count"
      ],
      "properties": {
        "count": {
          "type": "integer",
          "format": "int64"
        }
      },
      "additionalProperties": false,
      "example": {
        "count": 50
      }
    },
    "CreateAccountPaymentRequest": {
      "type": "object",
      "required": [
        "amount"
      ],
      "properties": {
        "accountOwner": {
          "type": "string",
          "description": "Account owner of the payment account, default is \u0060Guest\u0060.\nWill be ignored if PaymentAccountId is provided - \u003Cb\u003EDEPRECATED: AccountOwner is deprecated, use PaymentAccountId instead. This field will be removed on May 15, 2026. From this date onwards, PaymentAccountId will be a required parameter.\u003C/b\u003E",
          "enum": [
            "Guest",
            "Booker"
          ],
          "x-nullable": true
        },
        "paymentAccountId": {
          "type": "string",
          "description": "Optional payment account id.\nIf passed, it is verified that the provided payment account is available for the folio.\nFrom Feb 15, 2026 onwards, PaymentAccountId will be a required parameter.",
          "x-nullable": true
        },
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "paidCharges": {
          "type": "array",
          "description": "List of charges and amount being covered by this payment.",
          "items": {
            "$ref": "#/definitions/PaymentPaidChargesRequest"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "paymentAccountId": "UBMFXUFH",
        "amount": {
          "amount": 230.0,
          "currency": "EUR"
        },
        "paidCharges": [
          {
            "chargeId": "BLIPKWXP-1-1-1",
            "amount": 200.0
          }
        ]
      }
    },
    "CreateAllowanceBulkItemModel": {
      "type": "object",
      "required": [
        "amount",
        "chargeId"
      ],
      "properties": {
        "chargeId": {
          "type": "string",
          "description": "The ID of the charge"
        },
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        }
      },
      "additionalProperties": false
    },
    "CreateAllowanceBulkModel": {
      "type": "object",
      "required": [
        "items",
        "reason"
      ],
      "properties": {
        "items": {
          "type": "array",
          "description": "The list of actions to perform",
          "items": {
            "$ref": "#/definitions/CreateAllowanceBulkItemModel"
          }
        },
        "reason": {
          "type": "string",
          "description": "Description of why allowances are added",
          "maxLength": 400,
          "minLength": 1
        },
        "businessDate": {
          "type": "string",
          "description": "The business date of the allowance. Defaults to the current date.\nIn some cases you might want to post the allowances to the previous business date, this is only possible until 6 AM of the current day.",
          "format": "date",
          "example": "2020-10-10",
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "items": [
          {
            "chargeId": "IDDQD-1-1-TS-1",
            "amount": {
              "amount": 13.0,
              "currency": "EUR"
            }
          },
          {
            "chargeId": "IDDQD-1-1-ES-2",
            "amount": {
              "amount": 37.0,
              "currency": "EUR"
            }
          }
        ],
        "reason": "discount"
      }
    },
    "CreateAllowanceForChargeModel": {
      "type": "object",
      "required": [
        "amount",
        "reason"
      ],
      "properties": {
        "reason": {
          "type": "string",
          "description": "Reason why this allowance is posted",
          "maxLength": 400,
          "minLength": 1
        },
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "businessDate": {
          "type": "string",
          "description": "The business date of the allowance. Defaults to the current date.\nIn some cases you might want to post the allowances to the previous business date, this is only possible until 6 AM of the current day.",
          "format": "date",
          "example": "2020-10-10",
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "reason": "Reason",
        "amount": {
          "amount": 1.0,
          "currency": "EUR"
        }
      }
    },
    "CreateAllowanceForFolioModel": {
      "type": "object",
      "required": [
        "amount",
        "reason",
        "serviceType",
        "vatType"
      ],
      "properties": {
        "serviceType": {
          "type": "string",
          "description": "The service type, used by accounting to determine the correct revenue account",
          "enum": [
            "Other",
            "Accommodation",
            "FoodAndBeverages",
            "CityTax",
            "SecondCityTax"
          ]
        },
        "vatType": {
          "type": "string",
          "description": "The VAT type, used by accounting to determine the correct vat amount and account",
          "enum": [
            "Null",
            "VeryReduced",
            "Reduced",
            "Normal",
            "Without",
            "Special",
            "Special1",
            "Special2",
            "ReducedCovid19",
            "NormalCovid19",
            "Mixed"
          ]
        },
        "subAccountId": {
          "type": "string",
          "description": "ID of the custom sub-account to post the allowance to, used by accounting to determine the correct revenue account",
          "x-nullable": true
        },
        "reason": {
          "type": "string",
          "description": "Reason why this allowance is posted",
          "maxLength": 400,
          "minLength": 1
        },
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "businessDate": {
          "type": "string",
          "description": "The business date of the allowance. Defaults to the current date.\nIn some cases you might want to post the allowances to the previous business date, this is only possible until 6 AM of the current day.",
          "format": "date",
          "example": "2020-10-10",
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "serviceType": "Other",
        "vatType": "Normal",
        "subAccountId": "MUC-REST",
        "reason": "Good guy discount",
        "amount": {
          "amount": 22.0,
          "currency": "EUR"
        }
      }
    },
    "CreateAuthorizationPaymentRequest": {
      "type": "object",
      "required": [
        "amount",
        "transactionReference"
      ],
      "properties": {
        "transactionReference": {
          "type": "string",
          "description": "Reference to the original authorization transaction",
          "minLength": 1
        },
        "referenceType": {
          "type": "string",
          "description": "Type of TransactionReference used, default is PspReference\nWhen capturing a Consumption or Damage authorization, use AuthorizationId",
          "enum": [
            "PspReference",
            "AuthorizationId"
          ]
        },
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "paidCharges": {
          "type": "array",
          "description": "List of charges and amount being covered by this payment.",
          "items": {
            "$ref": "#/definitions/PaymentPaidChargesRequest"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "transactionReference": "564578124534890J",
        "referenceType": "PspReference",
        "amount": {
          "amount": 330.0,
          "currency": "EUR"
        },
        "paidCharges": [
          {
            "chargeId": "BLIPKWXP-1-1-1",
            "amount": 230.0
          }
        ]
      }
    },
    "CreateChargeModel": {
      "type": "object",
      "required": [
        "amount",
        "name",
        "serviceType",
        "vatType"
      ],
      "properties": {
        "serviceType": {
          "type": "string",
          "description": "The service type, used by accounting to determine the correct revenue account",
          "enum": [
            "Other",
            "Accommodation",
            "FoodAndBeverages",
            "CityTax",
            "SecondCityTax"
          ]
        },
        "vatType": {
          "type": "string",
          "description": "The VAT type, used by accounting to determine the correct vat amount and account",
          "enum": [
            "Null",
            "VeryReduced",
            "Reduced",
            "Normal",
            "Without",
            "Special",
            "Special1",
            "Special2",
            "ReducedCovid19",
            "NormalCovid19",
            "Mixed"
          ]
        },
        "subAccountId": {
          "type": "string",
          "description": "ID of the custom sub-account to post the charge to, used by accounting to determine the correct revenue account",
          "x-nullable": true
        },
        "name": {
          "type": "string",
          "description": "The name, article number, or other description of this charge",
          "minLength": 1
        },
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "receipt": {
          "type": "string",
          "description": "Receipt for this transaction",
          "x-nullable": true
        },
        "quantity": {
          "type": "integer",
          "description": "The count of services provided. Defaults to 1.\nNOTE: this field will become required 07.05.2020.",
          "format": "int32",
          "x-nullable": true
        },
        "businessDate": {
          "type": "string",
          "description": "The business date of the charge. Defaults to the current date.\nIn some cases you might want to post the charges to the previous business date, this is only possible until 6 AM of the current day.",
          "format": "date",
          "example": "2020-10-10",
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "serviceType": "FoodAndBeverages",
        "vatType": "Normal",
        "subAccountId": "MUC-BEER",
        "name": "Restaurant",
        "amount": {
          "amount": 23.0,
          "currency": "EUR"
        },
        "receipt": "R23412"
      }
    },
    "CreateCustomPaymentRequest": {
      "type": "object",
      "required": [
        "amount",
        "method"
      ],
      "properties": {
        "method": {
          "type": "string",
          "description": "The payment method. Use \u0027CreditCard\u0027, if none of the specific credit cards types matches. \u0027Booking.com\u0027 only makes sense, if\nthe property (hotel) configured Booking.com \u003E Finance to be \u0027Payments by Booking.com\u0027",
          "enum": [
            "Cash",
            "BankTransfer",
            "CreditCard",
            "Amex",
            "VisaCredit",
            "VisaDebit",
            "MasterCard",
            "MasterCardDebit",
            "Maestro",
            "GiroCard",
            "DiscoverCard",
            "Diners",
            "Jcb",
            "BookingCom",
            "VPay",
            "PayPal",
            "Postcard",
            "Reka",
            "Twint",
            "Lunchcheck",
            "Voucher",
            "ChinaUnionPay",
            "Other",
            "Cheque",
            "Airbnb",
            "HolidayCheck",
            "Representation",
            "IDeal"
          ]
        },
        "receipt": {
          "type": "string",
          "description": "The optional receipt you want to store for the payment. It defaults to the reservation or external folio id.\nThis field is required if you are adding payment to the house account",
          "x-nullable": true
        },
        "businessDate": {
          "type": "string",
          "description": "The business date of the payment. Defaults to the current date.\nIn some cases you might want to post the payments to the previous business date, this is only possible until 6 AM of the current day.",
          "format": "date",
          "example": "2020-10-10",
          "x-nullable": true
        },
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "paidCharges": {
          "type": "array",
          "description": "List of charges and amount being covered by this payment.",
          "items": {
            "$ref": "#/definitions/PaymentPaidChargesRequest"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "method": "Cash",
        "receipt": "BLIPKWXP-1",
        "amount": {
          "amount": 230.0,
          "currency": "EUR"
        },
        "paidCharges": [
          {
            "chargeId": "BLIPKWXP-1-1-1",
            "amount": 230.0
          }
        ]
      }
    },
    "CreateFolioModel": {
      "type": "object",
      "required": [
        "debitor"
      ],
      "properties": {
        "reservationId": {
          "type": "string",
          "description": "The ID of the reservation for which a guest folio should be created",
          "x-nullable": true
        },
        "companyId": {
          "type": "string",
          "description": "The ID of the company for which a folio should be created",
          "x-nullable": true
        },
        "debitor": {
          "$ref": "#/definitions/FolioDebitorModel"
        },
        "type": {
          "type": "string",
          "description": "The type of the folio to create. Default is the guest folio.\nThis field will become required 01.11.2019.",
          "enum": [
            "Guest",
            "External"
          ],
          "x-nullable": true
        },
        "propertyId": {
          "type": "string",
          "description": "The ID of the property for which an external folio should be created.",
          "x-nullable": true
        },
        "code": {
          "type": "string",
          "description": "Optional code for external folios.\nIf present, the id of the folio will be propertyId-code (MUC-SOMETHING);\nIf no code is provided, the id of the folio will be propertyId-ext-number (MUC-EXT-282).",
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "reservationId": "TS23XF",
        "debitor": {
          "title": "Dr",
          "firstName": "Jon",
          "name": "Doe",
          "address": {
            "addressLine1": "My Street 1",
            "postalCode": "12453",
            "city": "MyCity",
            "countryCode": "GB"
          },
          "company": {
            "name": "Horns \u0026 Hooves Inc",
            "taxId": "TAX-12345",
            "additionalTaxId": "TAX2-12345",
            "additionalTaxId2": "TAX3-12345",
            "invoiceNetworkIdentity": {
              "network": "Peppol",
              "id": "0208:123456789"
            }
          },
          "personalTaxId": "123456789",
          "reference": "SRC-1232",
          "phone": "123456789"
        },
        "type": "Guest"
      }
    },
    "CreateFolioRefundRequest": {
      "type": "object",
      "required": [
        "amount",
        "method"
      ],
      "properties": {
        "method": {
          "type": "string",
          "description": "The payment method the refund will be accounted to",
          "enum": [
            "Cash",
            "BankTransfer",
            "CreditCard",
            "Amex",
            "VisaCredit",
            "VisaDebit",
            "MasterCard",
            "MasterCardDebit",
            "Maestro",
            "GiroCard",
            "DiscoverCard",
            "Diners",
            "Jcb",
            "BookingCom",
            "VPay",
            "PayPal",
            "Postcard",
            "Reka",
            "Twint",
            "Lunchcheck",
            "Voucher",
            "ChinaUnionPay",
            "Other",
            "Cheque",
            "Airbnb",
            "HolidayCheck",
            "Representation",
            "IDeal"
          ]
        },
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "receipt": {
          "type": "string",
          "description": "The receipt for the refund",
          "x-nullable": true
        },
        "businessDate": {
          "type": "string",
          "description": "The business date of the refund. Defaults to the current date.\nIn some cases you might want to post the refunds to the previous business date, this is only possible until 6 AM of the current day.",
          "format": "date",
          "example": "2020-10-10",
          "x-nullable": true
        },
        "reason": {
          "type": "string",
          "description": "The reason for payment refund",
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "method": "Cash",
        "amount": {
          "amount": 10.0,
          "currency": "EUR"
        },
        "receipt": "CSH-201824120003",
        "businessDate": "2026-09-03",
        "reason": "Refund for the cancelled service"
      }
    },
    "CreateInvoiceRequest": {
      "type": "object",
      "required": [
        "folioId",
        "languageCode"
      ],
      "properties": {
        "folioId": {
          "type": "string",
          "description": "The ID of the folio for which the invoice should be created."
        },
        "languageCode": {
          "type": "string",
          "description": "The language in which the invoice should be produced."
        }
      },
      "additionalProperties": false,
      "example": {
        "folioId": "HBCXQZ-1",
        "languageCode": "en"
      }
    },
    "CreateInvoiceWarningModel": {
      "type": "object",
      "description": "A warning about what would fail if you would try to create an invoice with the current folio.",
      "required": [
        "type"
      ],
      "properties": {
        "type": {
          "type": "string",
          "description": "The general classification of the warning, why an invoice would not be created if you would try to create it for the current folio.",
          "enum": [
            "InvoiceAlreadyExists",
            "NotAllChargesPosted",
            "DebitorDetailsMissing",
            "InvoiceHasPendingPayments",
            "NoCompanyFound",
            "CompanyCannotCheckOutOnAr",
            "IsHouseFolio",
            "CannotCreateCompanyInvoiceForExternal",
            "CheckOutOnArIsNotAllowed",
            "IsEmptyFolio",
            "CashPaymentLimitExceeded",
            "FolioState"
          ]
        },
        "message": {
          "type": "string",
          "description": "Optionally, additional information about the warning",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "CreatePaymentLinkRequest": {
      "type": "object",
      "required": [
        "amount",
        "countryCode",
        "expiresAt"
      ],
      "properties": {
        "expiresAt": {
          "type": "string",
          "description": "The date that the link expires\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
          "format": "date-time"
        },
        "countryCode": {
          "type": "string",
          "description": "The payer\u0027s country code. Used to provide suitable for the payer payment methods and use default country language",
          "minLength": 1
        },
        "description": {
          "type": "string",
          "description": "Payment description. It will be shown on the payment form of the link",
          "maxLength": 280,
          "x-nullable": true
        },
        "payerEmail": {
          "type": "string",
          "description": "The email address of the payer or cardholder. It can be used to verify the identity of the payer and\nallow to catch a fraudulent usage of the payment account if the email address does not match the one\non file at the bank",
          "format": "email",
          "x-nullable": true
        },
        "returnUrl": {
          "type": "string",
          "description": "Website URL used for redirection after payment is completed using the payment link.",
          "maxLength": 8000,
          "pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
          "x-nullable": true
        },
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "paidCharges": {
          "type": "array",
          "description": "List of charges and amount being covered by this payment.",
          "items": {
            "$ref": "#/definitions/PaymentPaidChargesRequest"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "expiresAt": "2026-09-07T14:34:08.8815095Z",
        "countryCode": "de",
        "description": "Prepayment for the group booking apaleo Summer party",
        "payerEmail": "0chai@hemenal5.space",
        "returnUrl": "https://example.com/return",
        "amount": {
          "amount": 150.0,
          "currency": "EUR"
        },
        "paidCharges": [
          {
            "chargeId": "BLIPKWXP-1-1-1",
            "amount": 230.0
          }
        ]
      }
    },
    "CreatePaymentRefundRequest": {
      "type": "object",
      "required": [
        "amount"
      ],
      "properties": {
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "businessDate": {
          "type": "string",
          "description": "The business date of the refund. Defaults to the current date.\nIn some cases you might want to post the refunds to the previous business date, this is only possible until 6 AM of the current day.",
          "format": "date",
          "example": "2020-10-10",
          "x-nullable": true
        },
        "reason": {
          "type": "string",
          "description": "The reason for payment refund",
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "amount": {
          "amount": 10.0,
          "currency": "EUR"
        },
        "businessDate": "2026-09-03",
        "reason": "Refund for the cancelled service"
      }
    },
    "CreateRoutingFilterModel": {
      "type": "object",
      "properties": {
        "folioIds": {
          "type": "array",
          "description": "The folio ids to filter by",
          "items": {
            "type": "string"
          },
          "x-nullable": true
        },
        "subAccountIds": {
          "type": "array",
          "description": "The subaccount ids to filter by",
          "items": {
            "type": "string"
          },
          "x-nullable": true
        },
        "serviceTypes": {
          "type": "array",
          "description": "The service types to filter by",
          "items": {
            "type": "string",
            "enum": [
              "Other",
              "Accommodation",
              "FoodAndBeverages",
              "CancellationFees",
              "NoShow",
              "CityTax",
              "SecondCityTax",
              "LocalTax",
              "ConsumptionTax"
            ]
          },
          "x-nullable": true
        },
        "serviceIds": {
          "type": "array",
          "description": "The service ids to filter by",
          "items": {
            "type": "string"
          },
          "x-nullable": true
        },
        "from": {
          "type": "string",
          "description": "The start date to filter by",
          "format": "date",
          "example": "2020-10-10",
          "x-nullable": true
        },
        "to": {
          "type": "string",
          "description": "The end date to filter by",
          "format": "date",
          "example": "2020-10-10",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "CreateRoutingModel": {
      "type": "object",
      "description": "With this request you can create a routing",
      "required": [
        "bookingId",
        "destinationFolioId",
        "propertyId"
      ],
      "properties": {
        "bookingId": {
          "type": "string",
          "description": "The ID of the booking"
        },
        "propertyId": {
          "type": "string",
          "description": "The ID of the property"
        },
        "filter": {
          "$ref": "#/definitions/CreateRoutingFilterModel"
        },
        "destinationFolioId": {
          "type": "string",
          "description": "The ID of the destination folio"
        }
      },
      "additionalProperties": false,
      "example": {
        "bookingId": "XPGMSXGF",
        "propertyId": "MUC",
        "filter": {
          "folioIds": [
            "XPGMSXGF-1-1"
          ],
          "subAccountIds": [
            "MUC-REST"
          ],
          "serviceTypes": [
            "Accommodation",
            "FoodAndBeverages"
          ],
          "serviceIds": [
            "MUC-BRK"
          ]
        },
        "destinationFolioId": "XPGMSXGF-2-1"
      }
    },
    "CreateTerminalPaymentRequest": {
      "type": "object",
      "required": [
        "amount",
        "terminalId"
      ],
      "properties": {
        "terminalId": {
          "type": "string",
          "description": "Terminal to be used for the payment",
          "minLength": 1
        },
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "paidCharges": {
          "type": "array",
          "description": "List of charges and amount being covered by this payment.",
          "items": {
            "$ref": "#/definitions/PaymentPaidChargesRequest"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "terminalId": "V400m-324689704",
        "amount": {
          "amount": 230.0,
          "currency": "EUR"
        },
        "paidCharges": [
          {
            "chargeId": "BLIPKWXP-1-1-1",
            "amount": 230.0
          }
        ]
      }
    },
    "CreateTransitoryChargeModel": {
      "type": "object",
      "required": [
        "amount",
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "The name, article number, or other description of this item",
          "minLength": 1
        },
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "receipt": {
          "type": "string",
          "description": "Receipt for this transaction",
          "x-nullable": true
        },
        "groupId": {
          "type": "string",
          "description": "Identifier used for grouping related charges together",
          "x-nullable": true
        },
        "serviceType": {
          "type": "string",
          "description": "The service type. This is not used by accounting, but can be entered and stored on the charge.",
          "enum": [
            "Other",
            "Accommodation",
            "FoodAndBeverages",
            "CityTax",
            "SecondCityTax"
          ],
          "x-nullable": true
        },
        "quantity": {
          "type": "integer",
          "description": "The count of services provided. Defaults to 1.\nNOTE: this field will become required 07.05.2020.",
          "format": "int32",
          "x-nullable": true
        },
        "businessDate": {
          "type": "string",
          "description": "The business date of the charge. Defaults to the current date.\nIn some cases you might want to post the charges to the previous business date, this is only possible until 6 AM of the current day.",
          "format": "date",
          "example": "2020-10-10",
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "name": "Restaurant",
        "amount": {
          "amount": 23.0,
          "currency": "EUR"
        },
        "receipt": "R23412"
      }
    },
    "CreatedSubResourceIdModel": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "XT347518-1-1"
      }
    },
    "CurrencyListModel": {
      "type": "object",
      "required": [
        "isoCurrencies"
      ],
      "properties": {
        "isoCurrencies": {
          "type": "array",
          "description": "List of ISO currencies.",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false,
      "example": {
        "isoCurrencies": [
          "AED",
          "AUD",
          "EUR",
          "USD",
          "XCD"
        ]
      }
    },
    "EmbeddedCompanyModel": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The company ID"
        },
        "code": {
          "type": "string",
          "description": "The code of the company",
          "x-nullable": true
        },
        "name": {
          "type": "string",
          "description": "The name of the company",
          "x-nullable": true
        },
        "canCheckOutOnAr": {
          "type": "boolean",
          "description": "Whether or not the company can check out on AR",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "EmbeddedFolioModel": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Folio ID"
        },
        "debitor": {
          "type": "string",
          "description": "Name of the debitor - the one who will pay the bill",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "EmbeddedInvoiceModel": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Invoice id"
        }
      },
      "additionalProperties": false
    },
    "EmbeddedPropertyModel": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The property id"
        },
        "code": {
          "type": "string",
          "description": "The code for the property that can be shown in reports and table views",
          "x-nullable": true
        },
        "name": {
          "type": "string",
          "description": "The name for the property",
          "x-nullable": true
        },
        "description": {
          "type": "string",
          "description": "The description for the property",
          "readOnly": true,
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "EmbeddedReservationModel": {
      "type": "object",
      "required": [
        "bookingId",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Reservation id"
        },
        "bookingId": {
          "type": "string",
          "description": "Booking id"
        }
      },
      "additionalProperties": false
    },
    "ExportAccountModel": {
      "type": "object",
      "required": [
        "name",
        "number",
        "type"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "The account name",
          "minLength": 1
        },
        "number": {
          "type": "string",
          "description": "The account number",
          "minLength": 1
        },
        "parentNumber": {
          "type": "string",
          "description": "The number of the parent account",
          "x-nullable": true
        },
        "type": {
          "type": "string",
          "description": "The account type",
          "enum": [
            "Revenues",
            "Payments",
            "Liabilities",
            "Receivables",
            "Vat",
            "House",
            "AccountsReceivable",
            "CityTaxes",
            "TransitoryItems",
            "VatOnLiabilities",
            "LossOfAccountsReceivable",
            "SecondCityTax",
            "GuestLevies"
          ]
        }
      },
      "additionalProperties": false
    },
    "ExportGrossTransactionItemModel": {
      "type": "object",
      "required": [
        "command",
        "creditedAccount",
        "currency",
        "date",
        "debitedAccount",
        "grossAmount",
        "netAmount",
        "receipt",
        "reference",
        "referenceType",
        "sourceEntryNumber",
        "timestamp"
      ],
      "properties": {
        "timestamp": {
          "type": "string",
          "description": "Timestamp with time zone information, when the booking was done\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
          "format": "date-time"
        },
        "date": {
          "type": "string",
          "description": "The business date when the booking was done",
          "format": "date",
          "example": "2020-10-10"
        },
        "debitedAccount": {
          "$ref": "#/definitions/ExportAccountModel"
        },
        "creditedAccount": {
          "$ref": "#/definitions/ExportAccountModel"
        },
        "command": {
          "type": "string",
          "description": "The type of business transaction which triggered the booking",
          "enum": [
            "PostCharge",
            "PostPayment",
            "MoveLineItem",
            "PostPrepayment",
            "PostToAccountsReceivables",
            "PostPrepaymentVat",
            "PostToLossOfAccountsReceivables",
            "System"
          ]
        },
        "currency": {
          "type": "string",
          "description": "The currency of the transaction"
        },
        "grossAmount": {
          "type": "number",
          "description": "The gross amount being booked",
          "format": "double"
        },
        "netAmount": {
          "type": "number",
          "description": "The net amount being booked",
          "format": "double"
        },
        "taxes": {
          "type": "array",
          "description": "The taxes which make up the difference between net and gross amount",
          "items": {
            "$ref": "#/definitions/TaxAmountModel"
          },
          "x-nullable": true
        },
        "receipt": {
          "$ref": "#/definitions/ReceiptModel"
        },
        "sourceEntryNumber": {
          "type": "string",
          "description": "The original raw transaction entry number which got converted to these one or 2 lines.",
          "minLength": 1
        },
        "reference": {
          "type": "string",
          "description": "The reference for the transactions, reservation id for guest folios, booking id for booking folio, folio id for external folios, property code for the house folio"
        },
        "referenceType": {
          "type": "string",
          "description": "Does this transaction belong to a reservation, a house or an external folio",
          "enum": [
            "House",
            "Guest",
            "External",
            "Booking"
          ]
        }
      },
      "additionalProperties": false
    },
    "ExportGrossTransactionListModel": {
      "type": "object",
      "required": [
        "transactions"
      ],
      "properties": {
        "transactions": {
          "type": "array",
          "description": "List of transactions with all details.",
          "items": {
            "$ref": "#/definitions/ExportGrossTransactionItemModel"
          }
        }
      },
      "additionalProperties": false,
      "example": {
        "transactions": [
          {
            "timestamp": "2026-09-05T14:34:08.9673562Z",
            "date": "2026-09-03",
            "debitedAccount": {
              "name": "Cash Payment",
              "number": "1600",
              "type": "Payments"
            },
            "creditedAccount": {
              "name": "Receivables for Reservation QPMZZTUK-1",
              "number": "QPMZZTUK-1_Receivables",
              "type": "Receivables"
            },
            "command": "PostCharge",
            "currency": "EUR",
            "grossAmount": 100.0,
            "netAmount": 100.0,
            "taxes": [],
            "receipt": {
              "type": "Reservation",
              "number": "QPMZZTUK-1-V3"
            },
            "sourceEntryNumber": "IHQNWLZL",
            "reference": "SRC-123",
            "referenceType": "Guest"
          },
          {
            "timestamp": "2026-09-05T14:34:08.9673603Z",
            "date": "2026-09-03",
            "debitedAccount": {
              "name": "Revenues Accommodation",
              "number": "5001",
              "type": "Payments"
            },
            "creditedAccount": {
              "name": "House Account",
              "number": "HOUSE_HCF",
              "type": "Receivables"
            },
            "command": "PostCharge",
            "currency": "EUR",
            "grossAmount": 214.0,
            "netAmount": 200.0,
            "taxes": [
              {
                "type": "Reduced",
                "percent": 7.0,
                "amount": 14.0
              }
            ],
            "receipt": {
              "type": "Reservation",
              "number": "QPMZZTUK-1-V3"
            },
            "sourceEntryNumber": "IHQNWLZL",
            "reference": "SRC-123",
            "referenceType": "Guest"
          }
        ]
      }
    },
    "ExternalReference": {
      "type": "object",
      "required": [
        "merchantReference",
        "pspReference"
      ],
      "properties": {
        "merchantReference": {
          "type": "string",
          "description": "The merchant reference (\u0027order number\u0027)",
          "minLength": 1
        },
        "pspReference": {
          "type": "string",
          "description": "The globally unique identifier of this payment in the reports of the payment service",
          "minLength": 1
        }
      },
      "additionalProperties": false
    },
    "FinanceAccountListModel": {
      "type": "object",
      "required": [
        "accounts",
        "count"
      ],
      "properties": {
        "accounts": {
          "type": "array",
          "description": "List of accounts in a property, having one specific parent.",
          "items": {
            "$ref": "#/definitions/SlimFinanceAccountModel"
          }
        },
        "count": {
          "type": "integer",
          "description": "Total count of items",
          "format": "int64"
        }
      },
      "additionalProperties": false,
      "example": {
        "accounts": [
          {
            "accountNumber": "1100",
            "name": "Credit Card Payment",
            "type": "Payments",
            "hasChildren": true,
            "isArchived": false
          },
          {
            "accountNumber": "1100",
            "name": "Bank Transfer",
            "type": "Payments",
            "hasChildren": false,
            "isArchived": true
          }
        ],
        "count": 0
      }
    },
    "FinanceAccountModel": {
      "type": "object",
      "required": [
        "accountNumber",
        "hasChildren",
        "isArchived",
        "name",
        "type"
      ],
      "properties": {
        "accountNumber": {
          "type": "string",
          "description": "The account number. Unique identifier within one property.",
          "minLength": 1
        },
        "name": {
          "type": "string",
          "description": "The name of the account.",
          "minLength": 1
        },
        "type": {
          "type": "string",
          "description": "The type of account.",
          "enum": [
            "Revenues",
            "Payments",
            "Liabilities",
            "Receivables",
            "Vat",
            "House",
            "AccountsReceivable",
            "CityTaxes",
            "TransitoryItems",
            "VatOnLiabilities",
            "LossOfAccountsReceivable",
            "SecondCityTax",
            "GuestLevies"
          ]
        },
        "hasChildren": {
          "type": "boolean",
          "description": "Indicates whether this account has children / sub accounts or not. The children can be retrieved via GET /accounts and querying\nby parent."
        },
        "parentNumber": {
          "type": "string",
          "description": "Parent account number. Null for top-level accounts.",
          "x-nullable": true
        },
        "isArchived": {
          "type": "boolean",
          "description": "Indicates whether this account is archived ot not."
        },
        "transactions": {
          "type": "array",
          "description": "All transactions / bookings involving this account.",
          "items": {
            "$ref": "#/definitions/AccountingTransactionModel"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "accountNumber": "1000",
        "name": "Other Revenues",
        "type": "Revenues",
        "hasChildren": false,
        "parentNumber": "5000",
        "isArchived": false,
        "transactions": [
          {
            "timestamp": "2026-09-03T10:12:05.4656483\u002B02:00",
            "date": "2026-09-03",
            "debitedAccount": {
              "name": "Cash Payment",
              "number": "1600",
              "type": "Payments"
            },
            "creditedAccount": {
              "name": "Revenues Accommodation",
              "number": "5001",
              "type": "Receivables"
            },
            "command": "PostCharge",
            "amount": {
              "amount": 180.0,
              "currency": "EUR"
            },
            "entryNumber": "2017122500000001",
            "reference": "SRC-123",
            "referenceType": "Guest",
            "entryGroupNumber": "2017122500000001"
          },
          {
            "timestamp": "2026-09-03T11:12:05.4656483\u002B02:00",
            "date": "2026-09-03",
            "debitedAccount": {
              "name": "Cash Payment",
              "number": "1600",
              "type": "Payments"
            },
            "creditedAccount": {
              "name": "Revenues Accommodation",
              "number": "5001",
              "type": "Receivables"
            },
            "command": "PostCharge",
            "amount": {
              "amount": 210.0,
              "currency": "EUR"
            },
            "entryNumber": "2017122500000002",
            "reference": "SRC-123",
            "referenceType": "Guest",
            "entryGroupNumber": "2017122500000002"
          }
        ]
      }
    },
    "FolioCreatedModel": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The folio id"
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "XKCD-17"
      }
    },
    "FolioDebitorModel": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Whether the debitor is the booker, the primary guest, an additional guest, or the company.\nWhen the folio has a company, the only possible value is \u0027Company\u0027. \u0027Property\u0027 is a reserved type for the house folio.",
          "enum": [
            "Booker",
            "PrimaryGuest",
            "Company",
            "AdditionalGuest",
            "Property"
          ],
          "x-nullable": true
        },
        "title": {
          "type": "string",
          "description": "Title",
          "enum": [
            "Mr",
            "Ms",
            "Dr",
            "Prof",
            "Mrs",
            "Other"
          ],
          "x-nullable": true
        },
        "firstName": {
          "type": "string",
          "description": "First name",
          "x-nullable": true
        },
        "name": {
          "type": "string",
          "description": "Last name",
          "x-nullable": true
        },
        "address": {
          "$ref": "#/definitions/NonStrictAddressModel"
        },
        "company": {
          "$ref": "#/definitions/CompanyInfoModel"
        },
        "personalTaxId": {
          "type": "string",
          "description": "Debitor\u0027s Tax Id if debitor is a person",
          "x-nullable": true
        },
        "reference": {
          "type": "string",
          "description": "Any additional information about the debitor that should be present on the invoice",
          "maxLength": 400,
          "x-nullable": true
        },
        "email": {
          "type": "string",
          "description": "Debitor\u0027s email",
          "x-nullable": true
        },
        "phone": {
          "type": "string",
          "description": "Debitor\u0027s phone",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "FolioItemModel": {
      "type": "object",
      "required": [
        "balance",
        "created",
        "id",
        "status",
        "updated"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The id of the folio"
        },
        "created": {
          "type": "string",
          "description": "Date of creation\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
          "format": "date-time"
        },
        "updated": {
          "type": "string",
          "description": "Date of update\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
          "format": "date-time"
        },
        "type": {
          "type": "string",
          "description": "The folio type",
          "enum": [
            "House",
            "Guest",
            "External",
            "Booking"
          ]
        },
        "debitor": {
          "$ref": "#/definitions/FolioDebitorModel"
        },
        "closingDate": {
          "type": "string",
          "description": "The date when the folio has been closed",
          "format": "date",
          "example": "2020-10-10",
          "x-nullable": true
        },
        "isMainFolio": {
          "type": "boolean",
          "description": "Set to \u0060true\u0060 if this is the main folio for the reservation"
        },
        "isEmpty": {
          "type": "boolean",
          "description": "Set to \u0060true\u0060 if the folio has no unmoved [transitory] charges, unmoved payments, and allowances."
        },
        "reservation": {
          "$ref": "#/definitions/EmbeddedReservationModel"
        },
        "bookingId": {
          "type": "string",
          "description": "The id of the booking linked to this folio",
          "x-nullable": true
        },
        "company": {
          "$ref": "#/definitions/EmbeddedCompanyModel"
        },
        "balance": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "checkedOutOnAccountsReceivable": {
          "type": "boolean",
          "description": "Set to true, if the folio has been checked out on accounts receivable"
        },
        "folioWarnings": {
          "type": "array",
          "description": "Depending on the state of the folio, certain warnings are shown.\nThis list includes all folio warnings.",
          "items": {
            "type": "string",
            "description": "\u003Cb\u003EDeprecated values:\u003C/b\u003E IncompleteBillingAddress: Use IncompleteBillingDetails instead.",
            "enum": [
              "IncompleteBillingAddress",
              "IncompleteBillingDetails"
            ]
          },
          "x-nullable": true
        },
        "allowedActions": {
          "type": "array",
          "description": "Depending on the state of the folio, certain actions are allowed or not.\nThis list includes all actions you can perform on this folio.",
          "items": {
            "type": "string",
            "enum": [
              "AddCharge",
              "AddDepositItem",
              "AddAllowance",
              "AddCancellationFee",
              "AddNoShowFee",
              "AddPayment",
              "AddRefund",
              "CheckoutOnAr",
              "Close",
              "PostOpenCharges",
              "CorrectFolio",
              "ChangeAddress",
              "ChangeAddressWithSimpleDebitor",
              "Delete",
              "Reopen",
              "CreateInvoice",
              "CreateAdvanceInvoice",
              "CancelLastInvoice",
              "CreateInvoiceWithSimpleDebitor",
              "CreatePrepaymentNotice",
              "CreateProFormaInvoice",
              "CreateDepositReceipt",
              "PreviewInvoice"
            ]
          },
          "x-nullable": true
        },
        "relatedInvoices": {
          "type": "array",
          "description": "All invoices that have been created for this folio. This is only set on folios of type \u0027guest\u0027",
          "items": {
            "$ref": "#/definitions/EmbeddedInvoiceModel"
          },
          "x-nullable": true
        },
        "status": {
          "type": "string",
          "description": "Status of the folio",
          "enum": [
            "Open",
            "Closed",
            "ClosedWithInvoice"
          ]
        },
        "charges": {
          "type": "array",
          "description": "The list of charges",
          "items": {
            "$ref": "#/definitions/ChargeModel"
          },
          "x-nullable": true
        },
        "allowances": {
          "type": "array",
          "description": "The list of allowances",
          "items": {
            "$ref": "#/definitions/AllowanceModel"
          },
          "x-nullable": true
        },
        "transitoryCharges": {
          "type": "array",
          "description": "The list of transitory charges",
          "items": {
            "$ref": "#/definitions/TransitoryChargeModel"
          },
          "x-nullable": true
        },
        "payments": {
          "type": "array",
          "description": "The list of payments",
          "items": {
            "$ref": "#/definitions/PaymentModel"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "FolioListModel": {
      "type": "object",
      "required": [
        "count",
        "folios"
      ],
      "properties": {
        "folios": {
          "type": "array",
          "description": "List of folios.",
          "items": {
            "$ref": "#/definitions/FolioItemModel"
          }
        },
        "count": {
          "type": "integer",
          "description": "Total count of items",
          "format": "int64"
        }
      },
      "additionalProperties": false,
      "example": {
        "folios": [
          {
            "id": "XKCD-17",
            "created": "0001-01-01T00:00:00Z",
            "updated": "0001-01-01T00:00:00Z",
            "type": "Guest",
            "debitor": {
              "title": "Mr",
              "name": "Fisher",
              "personalTaxId": "123456789"
            },
            "isMainFolio": true,
            "isEmpty": false,
            "reservation": {
              "id": "XKCD-17",
              "bookingId": "XKCD-17"
            },
            "balance": {
              "amount": 223.59,
              "currency": "EUR"
            },
            "checkedOutOnAccountsReceivable": false,
            "allowedActions": [
              "AddCharge",
              "AddPayment",
              "Close"
            ],
            "relatedInvoices": [
              {
                "id": "00010675"
              }
            ],
            "status": "Open"
          },
          {
            "id": "BRC-231",
            "created": "0001-01-01T00:00:00Z",
            "updated": "0001-01-01T00:00:00Z",
            "type": "House",
            "debitor": {
              "title": "Mr",
              "name": "Lee",
              "personalTaxId": "123456789"
            },
            "isMainFolio": true,
            "isEmpty": false,
            "reservation": {
              "id": "BRC-231",
              "bookingId": "BRC-231"
            },
            "balance": {
              "amount": 364.83,
              "currency": "EUR"
            },
            "checkedOutOnAccountsReceivable": false,
            "allowedActions": [
              "AddCharge",
              "AddPayment",
              "Close"
            ],
            "relatedInvoices": [
              {
                "id": "00010672"
              }
            ],
            "status": "Open"
          },
          {
            "id": "XKCD-5-1",
            "created": "0001-01-01T00:00:00Z",
            "updated": "0001-01-01T00:00:00Z",
            "type": "Guest",
            "debitor": {
              "title": "Ms",
              "name": "Ms Jackson"
            },
            "closingDate": "2026-08-04",
            "isMainFolio": false,
            "isEmpty": false,
            "reservation": {
              "id": "XKCD-5",
              "bookingId": "XKCD"
            },
            "balance": {
              "amount": 0.0,
              "currency": "EUR"
            },
            "checkedOutOnAccountsReceivable": true,
            "allowedActions": [
              "AddCharge",
              "AddPayment",
              "Close"
            ],
            "relatedInvoices": [
              {
                "id": "00010687"
              }
            ],
            "status": "Open"
          }
        ],
        "count": 3
      }
    },
    "FolioModel": {
      "type": "object",
      "required": [
        "balance",
        "created",
        "id",
        "property",
        "status",
        "updated"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The id of the folio"
        },
        "created": {
          "type": "string",
          "description": "Date of creation\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
          "format": "date-time"
        },
        "updated": {
          "type": "string",
          "description": "Date of update\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
          "format": "date-time"
        },
        "type": {
          "type": "string",
          "description": "The folio type",
          "enum": [
            "House",
            "Guest",
            "External",
            "Booking"
          ]
        },
        "debitor": {
          "$ref": "#/definitions/FolioDebitorModel"
        },
        "closingDate": {
          "type": "string",
          "description": "The date when the folio has been closed",
          "format": "date",
          "example": "2020-10-10",
          "x-nullable": true
        },
        "reservation": {
          "$ref": "#/definitions/EmbeddedReservationModel"
        },
        "bookingId": {
          "type": "string",
          "description": "The id of the booking linked to this folio",
          "x-nullable": true
        },
        "company": {
          "$ref": "#/definitions/EmbeddedCompanyModel"
        },
        "property": {
          "$ref": "#/definitions/EmbeddedPropertyModel"
        },
        "charges": {
          "type": "array",
          "description": "The list of charges",
          "items": {
            "$ref": "#/definitions/ChargeModel"
          },
          "x-nullable": true
        },
        "transitoryCharges": {
          "type": "array",
          "description": "The list of charges",
          "items": {
            "$ref": "#/definitions/TransitoryChargeModel"
          },
          "x-nullable": true
        },
        "payments": {
          "type": "array",
          "description": "The list of payments - \u003Cb\u003EDEPRECATED: This field will be removed on July 3rd 2020. Use GET /finance/v1/folios/{folioId}/payments or GET /finance/v1/folios/{folioId}/refunds instead.\u003C/b\u003E",
          "items": {
            "$ref": "#/definitions/PaymentModel"
          },
          "x-nullable": true
        },
        "pendingPayments": {
          "type": "array",
          "description": "The list of pending payments - \u003Cb\u003EDEPRECATED: This field will be removed on July 3rd 2020. Use GET /finance/v1/folios/{folioId}/payments instead.\u003C/b\u003E",
          "items": {
            "$ref": "#/definitions/PendingPaymentModel"
          },
          "x-nullable": true
        },
        "allowances": {
          "type": "array",
          "description": "The list of allowances",
          "items": {
            "$ref": "#/definitions/AllowanceModel"
          },
          "x-nullable": true
        },
        "balance": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "checkedOutOnAccountsReceivable": {
          "type": "boolean",
          "description": "Set to \u0060true\u0060, if the folio has been checked out on accounts receivable.\nIf you create an invoice from this folio, it will display the outstanding payments"
        },
        "isMainFolio": {
          "type": "boolean",
          "description": "Set to \u0060true\u0060 if this is a main folio for the reservation"
        },
        "isEmpty": {
          "type": "boolean",
          "description": "Set to \u0060true\u0060 if the folio has no unmoved [transitory] charges, unmoved payments, and allowances."
        },
        "relatedFolios": {
          "type": "array",
          "description": "All folios that are related to this folio. Either because they belong to the same reservation/booking or\ncharges were moved/routed between them. It is only set on folios of type \u0027guest\u0027, \u0027booking\u0027, and \u0027external\u0027.",
          "items": {
            "$ref": "#/definitions/EmbeddedFolioModel"
          },
          "x-nullable": true
        },
        "relatedInvoices": {
          "type": "array",
          "description": "All invoices that have been created for this folio. This is only set on folios of type \u0027guest\u0027",
          "items": {
            "$ref": "#/definitions/EmbeddedInvoiceModel"
          },
          "x-nullable": true
        },
        "folioWarnings": {
          "type": "array",
          "description": "Depending on the state of the folio, certain warnings are shown.\nThis list includes all folio warnings.",
          "items": {
            "type": "string",
            "description": "\u003Cb\u003EDeprecated values:\u003C/b\u003E IncompleteBillingAddress: Use IncompleteBillingDetails instead.",
            "enum": [
              "IncompleteBillingAddress",
              "IncompleteBillingDetails"
            ]
          },
          "x-nullable": true
        },
        "allowedActions": {
          "type": "array",
          "description": "Depending on the state of the folio, certain actions are allowed or not.\nThis list includes all actions you can perform on this folio.",
          "items": {
            "type": "string",
            "enum": [
              "AddCharge",
              "AddDepositItem",
              "AddAllowance",
              "AddCancellationFee",
              "AddNoShowFee",
              "AddPayment",
              "AddRefund",
              "CheckoutOnAr",
              "Close",
              "PostOpenCharges",
              "CorrectFolio",
              "ChangeAddress",
              "ChangeAddressWithSimpleDebitor",
              "Delete",
              "Reopen",
              "CreateInvoice",
              "CreateAdvanceInvoice",
              "CancelLastInvoice",
              "CreateInvoiceWithSimpleDebitor",
              "CreatePrepaymentNotice",
              "CreateProFormaInvoice",
              "CreateDepositReceipt",
              "PreviewInvoice"
            ]
          },
          "x-nullable": true
        },
        "allowedPayment": {
          "type": "number",
          "description": "The maximum payment that can be posted on this folio",
          "format": "double"
        },
        "maximumAllowance": {
          "type": "number",
          "description": "The maximum allowance (gross) that can be posted on this folio",
          "format": "double"
        },
        "status": {
          "type": "string",
          "description": "Status of the folio",
          "enum": [
            "Open",
            "Closed",
            "ClosedWithInvoice"
          ]
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "XKCD17-1",
        "created": "0001-01-01T00:00:00Z",
        "updated": "0001-01-01T00:00:00Z",
        "type": "Guest",
        "debitor": {
          "title": "Dr",
          "firstName": "Jon",
          "name": "Doe",
          "address": {
            "addressLine1": "My Street 1",
            "postalCode": "12453",
            "city": "MyCity",
            "countryCode": "GB"
          },
          "company": {
            "name": "Horns \u0026 Hooves Inc",
            "taxId": "TAX-12345",
            "additionalTaxId": "TAX2-12345",
            "additionalTaxId2": "TAX3-12345",
            "invoiceNetworkIdentity": {
              "network": "Peppol",
              "id": "0208:123456789"
            }
          },
          "personalTaxId": "123456789",
          "reference": "SRC-1232",
          "phone": "123456789"
        },
        "reservation": {
          "id": "XKCD17",
          "bookingId": "XKCD"
        },
        "property": {
          "id": "MUC"
        },
        "charges": [
          {
            "id": "RND123",
            "serviceType": "Accommodation",
            "name": "Charge",
            "isPosted": true,
            "serviceDate": "2018-05-08",
            "created": "0001-01-01T00:00:00Z",
            "movedFrom": {
              "id": "XKCD23-2"
            },
            "movedTo": {
              "id": "XKCD23-3"
            },
            "amount": {
              "grossAmount": 107.0,
              "netAmount": 100.0,
              "vatType": "Reduced",
              "vatPercent": 7.0,
              "currency": "EUR"
            },
            "quantity": 0,
            "type": "TimeSlice"
          },
          {
            "id": "RND125",
            "serviceType": "Other",
            "name": "The Daily Planet, Newspaper",
            "isPosted": true,
            "serviceDate": "2018-05-07",
            "created": "0001-01-01T00:00:00Z",
            "amount": {
              "grossAmount": 2.14,
              "netAmount": 2.0,
              "vatType": "Reduced",
              "vatPercent": 7.0,
              "currency": "EUR"
            },
            "quantity": 0,
            "type": "Direct"
          },
          {
            "id": "REST2018243",
            "serviceType": "Other",
            "name": "Restaurant",
            "isPosted": true,
            "serviceDate": "2018-05-07",
            "created": "0001-01-01T00:00:00Z",
            "amount": {
              "grossAmount": 59.0,
              "netAmount": 59.0,
              "vatType": "Without",
              "vatPercent": 0.0,
              "currency": "EUR"
            },
            "subAccountId": "MUC-REST",
            "quantity": 0,
            "type": "Direct"
          }
        ],
        "transitoryCharges": [
          {
            "id": "RND3221-1",
            "name": "Transitory charge",
            "amount": {
              "amount": 20.0,
              "currency": "EUR"
            },
            "serviceDate": "0001-01-01",
            "created": "0001-01-01T00:00:00Z",
            "quantity": 0
          }
        ],
        "payments": [
          {
            "id": "PAY-1",
            "method": "BankTransfer",
            "amount": {
              "amount": 50.0,
              "currency": "EUR"
            },
            "receipt": "CA-147-339",
            "paymentDate": "0001-01-01T00:00:00Z",
            "businessDate": "0001-01-01"
          },
          {
            "id": "PAY-2",
            "method": "Cash",
            "amount": {
              "amount": 2.14,
              "currency": "EUR"
            },
            "paymentDate": "0001-01-01T00:00:00Z",
            "businessDate": "0001-01-01"
          }
        ],
        "pendingPayments": [
          {
            "id": "IDDQD-1",
            "amount": {
              "amount": 50.0,
              "currency": "EUR"
            }
          },
          {
            "id": "IDKFA-2",
            "amount": {
              "amount": 2.14,
              "currency": "EUR"
            }
          }
        ],
        "allowances": [
          {
            "id": "RND3221-1",
            "amount": {
              "grossAmount": 11.9,
              "netAmount": 10.0,
              "vatType": "Normal",
              "vatPercent": 19.0,
              "currency": "EUR"
            },
            "reason": "example",
            "serviceType": "Other",
            "serviceDate": "2018-05-10",
            "created": "0001-01-01T00:00:00Z",
            "movedFrom": {
              "id": "XKCD23-2"
            },
            "movedTo": {
              "id": "XKCD23-3"
            },
            "sourceChargeId": "REST2018243"
          }
        ],
        "balance": {
          "amount": 57.0,
          "currency": "EUR"
        },
        "checkedOutOnAccountsReceivable": false,
        "isMainFolio": true,
        "isEmpty": false,
        "allowedActions": [
          "AddCharge",
          "AddPayment",
          "Close"
        ],
        "allowedPayment": 45.1,
        "maximumAllowance": 20.0,
        "status": "Open"
      }
    },
    "FolioPaymentModel": {
      "type": "object",
      "required": [
        "amount",
        "businessDate",
        "id",
        "paymentDate",
        "status",
        "type"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Id of the payment. This is unique within one folio"
        },
        "method": {
          "type": "string",
          "description": "The payment method",
          "enum": [
            "Cash",
            "BankTransfer",
            "CreditCard",
            "Invoice",
            "Amex",
            "VisaCredit",
            "VisaDebit",
            "MasterCard",
            "MasterCardDebit",
            "Maestro",
            "GiroCard",
            "DiscoverCard",
            "Diners",
            "Jcb",
            "BookingCom",
            "VPay",
            "PayPal",
            "Postcard",
            "Reka",
            "Twint",
            "Lunchcheck",
            "Voucher",
            "ChinaUnionPay",
            "Other",
            "Cheque",
            "Airbnb",
            "HolidayCheck",
            "PspCash",
            "PspDebit",
            "PspBanking",
            "PspOpenInvoice",
            "PspWallet",
            "Representation",
            "IDeal"
          ],
          "x-nullable": true
        },
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "externalReference": {
          "$ref": "#/definitions/ExternalReference"
        },
        "receipt": {
          "type": "string",
          "description": "Receipt for the payment",
          "x-nullable": true
        },
        "paymentDate": {
          "type": "string",
          "description": "The date and time when the payment was created\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
          "format": "date-time"
        },
        "movedFrom": {
          "$ref": "#/definitions/EmbeddedFolioModel"
        },
        "movedTo": {
          "$ref": "#/definitions/EmbeddedFolioModel"
        },
        "movedReason": {
          "type": "string",
          "description": "A reason why the move operation was performed",
          "x-nullable": true
        },
        "sourcePaymentId": {
          "type": "string",
          "description": "A link to the original payment in case of splitting payments",
          "x-nullable": true
        },
        "depositEntryId": {
          "type": "string",
          "description": "Id of the deposit entry this payment was classified as, if any",
          "x-nullable": true
        },
        "status": {
          "type": "string",
          "description": "Status of the payment",
          "enum": [
            "Pending",
            "Success",
            "Failure",
            "Canceled"
          ]
        },
        "failureReason": {
          "type": "string",
          "description": "Human readable failure reason",
          "x-nullable": true
        },
        "failureCode": {
          "type": "string",
          "description": "Machine-readable failure code",
          "enum": [
            "Failed",
            "TimedOut"
          ],
          "x-nullable": true
        },
        "type": {
          "type": "string",
          "description": "Type of the payment",
          "enum": [
            "Custom",
            "Terminal",
            "PaymentAccount",
            "Authorization",
            "PaymentLink",
            "PreAuthorization"
          ]
        },
        "expiresAt": {
          "type": "string",
          "description": "The date and time a payment link expires\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
          "format": "date-time",
          "x-nullable": true
        },
        "description": {
          "type": "string",
          "description": "Payment link description",
          "x-nullable": true
        },
        "url": {
          "type": "string",
          "description": "Payment link url",
          "x-nullable": true
        },
        "actions": {
          "type": "array",
          "description": "The list of actions for this payment",
          "items": {
            "$ref": "#/definitions/ActionModel[PaymentAction,NotAllowedPaymentActionReason]"
          },
          "x-nullable": true
        },
        "businessDate": {
          "type": "string",
          "description": "The business date of the payment",
          "format": "date",
          "example": "2020-10-10"
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "C3Q890XZ",
        "method": "Cash",
        "amount": {
          "amount": 230.0,
          "currency": "EUR"
        },
        "externalReference": {
          "merchantReference": "BLIPKWXP-1",
          "pspReference": "8535063621298633"
        },
        "paymentDate": "0001-01-01T00:00:00Z",
        "status": "Success",
        "type": "Custom",
        "businessDate": "1845-01-12"
      }
    },
    "IncludedLineItemModel": {
      "type": "object",
      "required": [
        "price"
      ],
      "properties": {
        "description": {
          "type": "string",
          "description": "The description of the item or service",
          "x-nullable": true
        },
        "price": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "vatType": {
          "type": "string",
          "description": "The applied VAT type.",
          "enum": [
            "Null",
            "VeryReduced",
            "Reduced",
            "Normal",
            "Without",
            "Special",
            "Special1",
            "Special2",
            "ReducedCovid19",
            "NormalCovid19",
            "Mixed"
          ],
          "x-nullable": true
        },
        "vatPercent": {
          "type": "number",
          "description": "The applied VAT percent",
          "format": "double",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "InvoiceCreatedModel": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The invoice id"
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "MUC_201705070000012"
      }
    },
    "InvoiceItemModel": {
      "type": "object",
      "required": [
        "created",
        "folioId",
        "id",
        "languageCode",
        "number",
        "paymentSettled",
        "propertyId",
        "status",
        "subTotal",
        "type"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Invoice identifier"
        },
        "number": {
          "type": "string",
          "description": "Invoice number",
          "minLength": 1
        },
        "type": {
          "type": "string",
          "description": "Invoice type",
          "enum": [
            "Initial",
            "Cancellation",
            "Correction",
            "Advance",
            "AdvanceCancellation",
            "AdvanceCorrection",
            "Proforma"
          ]
        },
        "series": {
          "type": "string",
          "description": "Invoice number series",
          "x-nullable": true
        },
        "languageCode": {
          "type": "string",
          "description": "Language which was used to create the invoice"
        },
        "folioId": {
          "type": "string",
          "description": "The folio for this invoice"
        },
        "reservationId": {
          "type": "string",
          "description": "The reservation for this invoice",
          "x-nullable": true
        },
        "bookingId": {
          "type": "string",
          "description": "The booking for this invoice",
          "x-nullable": true
        },
        "propertyId": {
          "type": "string",
          "description": "The ID of the property"
        },
        "relatedInvoiceNumber": {
          "type": "string",
          "description": "If the invoice is related to another invoice, this field contains related invoice number\nFor example, if the invoice has Cancellation type,\nthis field contains the number of invoice which is being cancelled",
          "x-nullable": true
        },
        "writeOffReason": {
          "type": "string",
          "description": "If the invoice was written-off, this field contains the reason why it was written-off",
          "x-nullable": true
        },
        "cancellationReasonCode": {
          "type": "string",
          "description": "If the invoice is a cancellation invoice, this field contains the code of the cancellation reason",
          "enum": [
            "ChangeOfRecipientDetails",
            "ChangeOfInvoiceRecipient",
            "ChangeOfPaymentMethod",
            "ChangeOfInvoiceTransactions",
            "Other"
          ],
          "x-nullable": true
        },
        "subTotal": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "outstandingPayment": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "paymentSettled": {
          "type": "boolean",
          "description": "True, if this invoice had no outstanding payments or was settled."
        },
        "status": {
          "type": "string",
          "description": "Status of the invoice",
          "enum": [
            "FullyPaid",
            "Unpaid",
            "WrittenOff"
          ]
        },
        "created": {
          "type": "string",
          "description": "Date of creation\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
          "format": "date-time"
        },
        "guestName": {
          "type": "string",
          "description": "Name of the guest",
          "x-nullable": true
        },
        "guestCompany": {
          "type": "string",
          "description": "Company the guest specified",
          "x-nullable": true
        },
        "allowedActions": {
          "type": "array",
          "description": "Depending on the state of the invoice, certain actions are allowed or not.\nThis list includes all actions you can perform on this invoice.",
          "items": {
            "type": "string",
            "enum": [
              "CorrectAddress",
              "CorrectCharges",
              "MarkAsPaid",
              "Cancel",
              "WriteOff"
            ]
          },
          "x-nullable": true
        },
        "company": {
          "$ref": "#/definitions/EmbeddedCompanyModel"
        }
      },
      "additionalProperties": false
    },
    "InvoiceLineItemModel": {
      "type": "object",
      "required": [
        "date",
        "description",
        "isNoShowFee",
        "price"
      ],
      "properties": {
        "date": {
          "type": "string",
          "description": "The date on which this item or service is delivered",
          "format": "date",
          "example": "2020-10-10"
        },
        "description": {
          "type": "string",
          "description": "The description of the item or service",
          "minLength": 1
        },
        "price": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "vatType": {
          "type": "string",
          "description": "The applied VAT type.",
          "enum": [
            "Null",
            "VeryReduced",
            "Reduced",
            "Normal",
            "Without",
            "Special",
            "Special1",
            "Special2",
            "ReducedCovid19",
            "NormalCovid19",
            "Mixed"
          ],
          "x-nullable": true
        },
        "vatPercent": {
          "type": "number",
          "description": "The applied VAT percent",
          "format": "double",
          "x-nullable": true
        },
        "isNoShowFee": {
          "type": "boolean",
          "description": "Whether this line item represents a no-show fee"
        },
        "includedLineItems": {
          "type": "array",
          "description": "Items which are included in the package, if there are any",
          "items": {
            "$ref": "#/definitions/IncludedLineItemModel"
          },
          "x-nullable": true
        },
        "guest": {
          "type": "string",
          "description": "Guest who the service has been provided to. Is defined only when the invoice has charges from multiple folios with different guests.",
          "x-nullable": true
        },
        "quantity": {
          "type": "integer",
          "description": "The count of services provided",
          "format": "int32",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "InvoiceLineItemsModel": {
      "type": "object",
      "required": [
        "subTotal"
      ],
      "properties": {
        "lineItems": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/InvoiceLineItemModel"
          },
          "x-nullable": true
        },
        "subTotal": {
          "$ref": "#/definitions/MonetaryValueModel"
        }
      },
      "additionalProperties": false
    },
    "InvoiceListModel": {
      "type": "object",
      "required": [
        "count",
        "invoices"
      ],
      "properties": {
        "invoices": {
          "type": "array",
          "description": "List of invoices.",
          "items": {
            "$ref": "#/definitions/InvoiceItemModel"
          }
        },
        "count": {
          "type": "integer",
          "description": "Total count of items",
          "format": "int64"
        }
      },
      "additionalProperties": false,
      "example": {
        "invoices": [
          {
            "id": "MUC-20171200000002",
            "number": "20171200000002",
            "type": "Initial",
            "languageCode": "de",
            "folioId": "DHNSHFK-1-1",
            "reservationId": "DHNSHFK-1",
            "bookingId": "DHNSHFK",
            "propertyId": "MUC",
            "subTotal": {
              "amount": 100.0,
              "currency": "EUR"
            },
            "paymentSettled": true,
            "status": "FullyPaid",
            "created": "2026-09-02T12:12:05.4656483\u002B02:00",
            "guestName": "Alan Turing",
            "guestCompany": "GCHQ",
            "company": {
              "id": "MUC-ACME",
              "code": "ACME",
              "name": "ACME Inc."
            }
          },
          {
            "id": "MUC-20181200000002",
            "number": "20181200000002",
            "type": "Initial",
            "languageCode": "de",
            "folioId": "HGZGDNAK-1-1",
            "reservationId": "HGZGDNAK-1",
            "bookingId": "HGZGDNAK",
            "propertyId": "MUC",
            "subTotal": {
              "amount": 100.0,
              "currency": "EUR"
            },
            "outstandingPayment": {
              "amount": 95.0,
              "currency": "EUR"
            },
            "paymentSettled": false,
            "status": "Unpaid",
            "created": "2026-09-02T12:12:05.4656483\u002B02:00",
            "guestName": "Bertrand Russell",
            "allowedActions": [
              "CorrectAddress",
              "CorrectCharges"
            ]
          },
          {
            "id": "MUC-20171200000018",
            "number": "20171200000018",
            "type": "Cancellation",
            "languageCode": "de",
            "folioId": "DHNSHFK-1-2",
            "reservationId": "DHNSHFK-1",
            "bookingId": "DHNSHFK",
            "propertyId": "MUC",
            "relatedInvoiceNumber": "20171200000002",
            "cancellationReasonCode": "ChangeOfInvoiceRecipient",
            "subTotal": {
              "amount": 100.0,
              "currency": "EUR"
            },
            "paymentSettled": true,
            "status": "FullyPaid",
            "created": "2026-09-03T10:12:05.4656483\u002B02:00",
            "guestName": "Ludwig Wittgenstein"
          },
          {
            "id": "MUC-20171200000022",
            "number": "20171200000022",
            "type": "Correction",
            "languageCode": "de",
            "folioId": "DHNSHFK-1-3",
            "reservationId": "DHNSHFK-1",
            "bookingId": "DHNSHFK",
            "propertyId": "MUC",
            "subTotal": {
              "amount": 100.0,
              "currency": "EUR"
            },
            "paymentSettled": true,
            "status": "FullyPaid",
            "created": "2026-09-03T10:12:05.4656483\u002B02:00",
            "guestName": "Rudolf Carnap",
            "allowedActions": [
              "CorrectAddress",
              "CorrectCharges"
            ]
          },
          {
            "id": "MUC-20171200000023",
            "number": "20171200000023",
            "type": "Initial",
            "languageCode": "de",
            "folioId": "DHNSHFL-1-5",
            "reservationId": "DHNSHFL-1",
            "bookingId": "DHNSHFL",
            "propertyId": "MUC",
            "writeOffReason": "Some weighty reason",
            "subTotal": {
              "amount": 100.0,
              "currency": "EUR"
            },
            "paymentSettled": false,
            "status": "WrittenOff",
            "created": "2026-09-03T09:12:05.4656483\u002B02:00",
            "guestName": "Yury Vlasov"
          }
        ],
        "count": 5
      }
    },
    "InvoiceModel": {
      "type": "object",
      "required": [
        "commercialInformation",
        "created",
        "folioId",
        "from",
        "id",
        "invoiceDate",
        "languageCode",
        "lineItems",
        "number",
        "paymentSettled",
        "propertyCountryCode",
        "propertyId",
        "status",
        "to",
        "total",
        "type"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Invoice identifier"
        },
        "number": {
          "type": "string",
          "description": "Invoice number",
          "minLength": 1
        },
        "type": {
          "type": "string",
          "description": "Invoice type",
          "enum": [
            "Initial",
            "Cancellation",
            "Correction",
            "Advance",
            "AdvanceCancellation",
            "AdvanceCorrection",
            "Proforma"
          ]
        },
        "series": {
          "type": "string",
          "description": "Invoice number series",
          "x-nullable": true
        },
        "to": {
          "$ref": "#/definitions/InvoiceRecipientModel"
        },
        "paymentSettled": {
          "type": "boolean",
          "description": "True, if this invoice had no outstanding payments or was settled."
        },
        "status": {
          "type": "string",
          "description": "Status of the invoice",
          "enum": [
            "FullyPaid",
            "Unpaid",
            "WrittenOff"
          ]
        },
        "created": {
          "type": "string",
          "description": "Date of creation\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
          "format": "date-time"
        },
        "relatedInvoiceNumber": {
          "type": "string",
          "description": "If the invoice is related to another invoice, this field contains related invoice number\nFor example, if the invoice has Cancellation type,\nthis field contains the number of invoice which is being cancelled",
          "x-nullable": true
        },
        "writeOffReason": {
          "type": "string",
          "description": "If the invoice was written-off, this field contains the reason why it was written-off",
          "x-nullable": true
        },
        "cancellationReasonCode": {
          "type": "string",
          "description": "If the invoice is a cancellation invoice, this field contains the code of the cancellation reason",
          "enum": [
            "ChangeOfRecipientDetails",
            "ChangeOfInvoiceRecipient",
            "ChangeOfPaymentMethod",
            "ChangeOfInvoiceTransactions",
            "Other"
          ],
          "x-nullable": true
        },
        "allowedActions": {
          "type": "array",
          "description": "Depending on the state of the invoice, certain actions are allowed or not.\nThis list includes all actions you can perform on this invoice.",
          "items": {
            "type": "string",
            "enum": [
              "CorrectAddress",
              "CorrectCharges",
              "MarkAsPaid",
              "Cancel",
              "WriteOff"
            ]
          },
          "x-nullable": true
        },
        "invoiceDate": {
          "type": "string",
          "description": "Date the invoice has been created",
          "format": "date",
          "example": "2020-10-10"
        },
        "folioId": {
          "type": "string",
          "description": "The folio this invoice was requested for"
        },
        "from": {
          "$ref": "#/definitions/InvoiceSenderModel"
        },
        "commercialInformation": {
          "$ref": "#/definitions/CommercialInfoModel"
        },
        "bankAccount": {
          "$ref": "#/definitions/BankAccountModel"
        },
        "paymentTerms": {
          "type": "string",
          "description": "Specification of the payment terms, as defined in the property",
          "x-nullable": true
        },
        "lineItems": {
          "$ref": "#/definitions/InvoiceLineItemsModel"
        },
        "payments": {
          "type": "array",
          "description": "A list of all payments",
          "items": {
            "$ref": "#/definitions/InvoicePaymentModel"
          },
          "x-nullable": true
        },
        "outstandingPayment": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "taxDetails": {
          "type": "array",
          "description": "The subtotal, displaying net and tax amount for each VAT type",
          "items": {
            "$ref": "#/definitions/TaxDetailModel"
          },
          "x-nullable": true
        },
        "total": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "stayInfo": {
          "$ref": "#/definitions/StayInfoModel"
        },
        "propertyId": {
          "type": "string",
          "description": "The ID of the property"
        },
        "propertyCountryCode": {
          "type": "string",
          "description": "The country code of the property",
          "minLength": 1
        },
        "languageCode": {
          "type": "string",
          "description": "Language which was used to create the invoice",
          "minLength": 1
        },
        "company": {
          "$ref": "#/definitions/EmbeddedCompanyModel"
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "INVOICE-SGZLTBJC-1",
        "number": "MUC_20190328000000228",
        "type": "Initial",
        "series": "INV0000200",
        "to": {
          "name": "John D. Doe",
          "address": {
            "addressLine1": "Baker Street 7",
            "postalCode": "10005",
            "city": "London",
            "countryCode": "GB"
          },
          "companyName": "Investigators Inc.",
          "companyTaxId": "GB-3358791",
          "reference": "REF-111",
          "personalTaxId": "123-321"
        },
        "paymentSettled": true,
        "status": "FullyPaid",
        "created": "0001-01-01T00:00:00Z",
        "writeOffReason": "Weighty reason",
        "allowedActions": [
          "CorrectAddress",
          "CorrectCharges"
        ],
        "invoiceDate": "2026-09-03",
        "folioId": "SGZLTBJC-1",
        "from": {
          "name": "The Bay Hotel",
          "address": {
            "addressLine1": "Ocean Drive 44",
            "postalCode": "55511",
            "city": "Santa Cruz",
            "countryCode": "US"
          }
        },
        "commercialInformation": {
          "registerEntry": "200417510087, California",
          "taxId": "775-43-2106"
        },
        "bankAccount": {
          "iban": "DE44 5001 0517 5407 3249 31",
          "bic": "SSKMDEMMXXX",
          "bank": "Stadtsparkasse M\u00FCnchen"
        },
        "paymentTerms": "Pay within 7 days",
        "lineItems": {
          "lineItems": [
            {
              "date": "2026-09-03",
              "description": "Double Room",
              "price": {
                "amount": 130.0,
                "currency": "EUR"
              },
              "vatType": "Reduced",
              "vatPercent": 7.0,
              "isNoShowFee": false,
              "guest": "John Doe"
            },
            {
              "date": "2026-09-03",
              "description": "Service Package",
              "price": {
                "amount": 20.0,
                "currency": "EUR"
              },
              "vatType": "Normal",
              "vatPercent": 19.0,
              "isNoShowFee": false,
              "guest": "Jane Air"
            },
            {
              "date": "2026-09-03",
              "description": "Business Lounge Access",
              "price": {
                "amount": 40.0,
                "currency": "EUR"
              },
              "vatType": "Normal",
              "vatPercent": 19.0,
              "isNoShowFee": false,
              "guest": "John Doe"
            }
          ],
          "subTotal": {
            "amount": 190.0,
            "currency": "EUR"
          }
        },
        "payments": [
          {
            "id": "PAY-1",
            "method": "BankTransfer",
            "methodName": "Bank\u00FCberweisung",
            "amount": {
              "amount": 130.0,
              "currency": "EUR"
            },
            "paymentDate": "2026-09-03T12:12:05.4656483\u002B02:00",
            "businessDate": "0001-01-01"
          },
          {
            "id": "PAY-2",
            "method": "Cash",
            "methodName": "Bar",
            "amount": {
              "amount": 30.0,
              "currency": "EUR"
            },
            "paymentDate": "2026-09-03T12:12:05.4656483\u002B02:00",
            "businessDate": "0001-01-01"
          }
        ],
        "taxDetails": [
          {
            "vatType": "Reduced",
            "vatPercent": 7.0,
            "net": {
              "amount": 120.0,
              "currency": "EUR"
            },
            "tax": {
              "amount": 10.0,
              "currency": "EUR"
            }
          },
          {
            "vatType": "Normal",
            "vatPercent": 19.0,
            "net": {
              "amount": 49.0,
              "currency": "EUR"
            },
            "tax": {
              "amount": 11.0,
              "currency": "EUR"
            }
          }
        ],
        "total": {
          "amount": -30.0,
          "currency": "EUR"
        },
        "stayInfo": {
          "guestName": "John Doe",
          "arrivalDate": "2026-09-02",
          "departureDate": "2026-09-05",
          "reservationId": "ASTUBXVZ-1"
        },
        "propertyId": "MUC",
        "propertyCountryCode": "DE",
        "languageCode": "EN",
        "company": {
          "id": "MUC-ACME",
          "code": "ACME",
          "name": "ACME Inc."
        }
      }
    },
    "InvoiceNetworkIdentityModel": {
      "type": "object",
      "required": [
        "id",
        "network"
      ],
      "properties": {
        "network": {
          "type": "string",
          "description": "The Network through which to send the Invoice\ne. g. Peppol",
          "enum": [
            "Peppol"
          ]
        },
        "id": {
          "type": "string",
          "description": "The Id of the company at the network.\ne.g. \u00220208:123456789\u0022",
          "minLength": 1
        }
      },
      "additionalProperties": false
    },
    "InvoicePaymentModel": {
      "type": "object",
      "required": [
        "amount",
        "id",
        "method",
        "methodName"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Id of the payment. This is unique within one folio."
        },
        "method": {
          "type": "string",
          "description": "The Payment Method type.",
          "enum": [
            "Cash",
            "BankTransfer",
            "CreditCard",
            "Invoice",
            "Amex",
            "VisaCredit",
            "VisaDebit",
            "MasterCard",
            "MasterCardDebit",
            "Maestro",
            "GiroCard",
            "DiscoverCard",
            "Diners",
            "Jcb",
            "BookingCom",
            "VPay",
            "PayPal",
            "Postcard",
            "Reka",
            "Twint",
            "Lunchcheck",
            "Voucher",
            "ChinaUnionPay",
            "Other",
            "Cheque",
            "Airbnb",
            "HolidayCheck",
            "PspCash",
            "PspDebit",
            "PspBanking",
            "PspOpenInvoice",
            "PspWallet",
            "Representation",
            "IDeal"
          ]
        },
        "methodName": {
          "type": "string",
          "description": "The Payment Method name translated in the requested language of the invoice",
          "minLength": 1
        },
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "paymentDate": {
          "type": "string",
          "description": "The date when the payment was done\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
          "format": "date-time"
        },
        "businessDate": {
          "type": "string",
          "description": "The business date of the payment, can be different from the payment date for some payments posted after midnight and before 6AM.",
          "format": "date",
          "example": "2020-10-10"
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "C3Q890XZ",
        "method": "BankTransfer",
        "methodName": "Bank\u00FCberweisung",
        "amount": {
          "amount": 230.0,
          "currency": "EUR"
        },
        "paymentDate": "2026-09-03T11:12:05.4656483\u002B02:00",
        "businessDate": "1984-06-07"
      }
    },
    "InvoiceRecipientModel": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "x-nullable": true
        },
        "address": {
          "$ref": "#/definitions/NonStrictAddressModel"
        },
        "companyName": {
          "type": "string",
          "x-nullable": true
        },
        "companyTaxId": {
          "type": "string",
          "x-nullable": true
        },
        "reference": {
          "type": "string",
          "x-nullable": true
        },
        "personalTaxId": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "InvoiceSenderModel": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1
        },
        "address": {
          "$ref": "#/definitions/AddressModel"
        }
      },
      "additionalProperties": false
    },
    "MessageItemCollection": {
      "type": "object",
      "properties": {
        "messages": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "MonetaryValueModel": {
      "type": "object",
      "required": [
        "amount",
        "currency"
      ],
      "properties": {
        "amount": {
          "type": "number",
          "format": "double"
        },
        "currency": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "MoveAllChargesRequest": {
      "type": "object",
      "required": [
        "reason",
        "targetFolioId"
      ],
      "properties": {
        "targetFolioId": {
          "type": "string",
          "description": "ID of the target folio"
        },
        "reason": {
          "type": "string",
          "description": "Description of why the move is performed",
          "minLength": 1
        }
      },
      "additionalProperties": false,
      "example": {
        "targetFolioId": "KFCSQUID-1",
        "reason": "Test"
      }
    },
    "MoveChargesRequest": {
      "type": "object",
      "required": [
        "reason",
        "targetFolioId"
      ],
      "properties": {
        "targetFolioId": {
          "type": "string",
          "description": "ID of the target folio"
        },
        "reason": {
          "type": "string",
          "description": "Description of why the move is performed",
          "minLength": 1
        },
        "chargeIds": {
          "type": "array",
          "description": "The IDs of the charges that should be moved",
          "items": {
            "type": "string"
          },
          "x-nullable": true
        },
        "allowanceIds": {
          "type": "array",
          "description": "The IDs of the allowances that should be moved.\nOnly moving global allowances is supported",
          "items": {
            "type": "string"
          },
          "x-nullable": true
        },
        "transitoryChargeIds": {
          "type": "array",
          "description": "The IDs of the transitory charges that should be moved",
          "items": {
            "type": "string"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "targetFolioId": "KFCSQUID-1",
        "reason": "Test",
        "chargeIds": [
          "KFCSQUID-1-C-1",
          "KFCSQUID-1-C-5"
        ],
        "allowanceIds": [
          "KFCSQUID-1-A-1",
          "KFCSQUID-1-A-2"
        ],
        "transitoryChargeIds": [
          "KFCSQUID-1-TC-1",
          "KFCSQUID-1-TC-2"
        ]
      }
    },
    "MovePaymentsRequest": {
      "type": "object",
      "required": [
        "paymentIds",
        "reason",
        "targetFolioId"
      ],
      "properties": {
        "targetFolioId": {
          "type": "string",
          "description": "ID of the target folio"
        },
        "reason": {
          "type": "string",
          "description": "Description of why the move is performed",
          "minLength": 1
        },
        "paymentIds": {
          "type": "array",
          "description": "The IDs of the payments that should be moved",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false,
      "example": {
        "targetFolioId": "KFCSQUID-1",
        "reason": "Test",
        "paymentIds": [
          "KFCSQUID-1-C-1",
          "KFCSQUID-1-C-5"
        ]
      }
    },
    "NonStrictAddressModel": {
      "type": "object",
      "properties": {
        "addressLine1": {
          "type": "string",
          "x-nullable": true
        },
        "addressLine2": {
          "type": "string",
          "x-nullable": true
        },
        "postalCode": {
          "type": "string",
          "x-nullable": true
        },
        "city": {
          "type": "string",
          "x-nullable": true
        },
        "regionCode": {
          "type": "string",
          "x-nullable": true
        },
        "countryCode": {
          "type": "string",
          "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
    },
    "PayInvoiceRequest": {
      "type": "object",
      "required": [
        "paymentMethod",
        "receipt"
      ],
      "properties": {
        "paymentMethod": {
          "type": "string",
          "description": "The payment method used for paying the invoice. Used for accounting.",
          "enum": [
            "Cash",
            "BankTransfer",
            "CreditCard",
            "Amex",
            "VisaCredit",
            "VisaDebit",
            "MasterCard",
            "MasterCardDebit",
            "Maestro",
            "GiroCard",
            "DiscoverCard",
            "Diners",
            "Jcb",
            "BookingCom",
            "VPay",
            "PayPal",
            "Postcard",
            "Reka",
            "Twint",
            "Lunchcheck",
            "Voucher",
            "ChinaUnionPay",
            "Other",
            "Cheque",
            "Airbnb",
            "HolidayCheck",
            "Representation",
            "IDeal"
          ]
        },
        "receipt": {
          "type": "string",
          "description": "The receipt for the payment. Each transaction in accounting has a receipt set.",
          "minLength": 1
        }
      },
      "additionalProperties": false,
      "example": {
        "paymentMethod": "BankTransfer",
        "receipt": "BANK-123456"
      }
    },
    "PaymentCreatedModel": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "PaymentListModel": {
      "type": "object",
      "required": [
        "count",
        "payments"
      ],
      "properties": {
        "payments": {
          "type": "array",
          "description": "List of payments",
          "items": {
            "$ref": "#/definitions/FolioPaymentModel"
          }
        },
        "count": {
          "type": "integer",
          "description": "Total count of items",
          "format": "int64"
        }
      },
      "additionalProperties": false,
      "example": {
        "payments": [
          {
            "id": "PAY-1",
            "method": "BankTransfer",
            "amount": {
              "amount": 50.0,
              "currency": "EUR"
            },
            "receipt": "CA-147-339",
            "paymentDate": "0001-01-01T00:00:00Z",
            "status": "Success",
            "type": "Custom",
            "businessDate": "0001-01-01"
          },
          {
            "id": "PAY-2",
            "amount": {
              "amount": 2.14,
              "currency": "EUR"
            },
            "receipt": "HSKJCNDR-1",
            "paymentDate": "0001-01-01T00:00:00Z",
            "status": "Pending",
            "type": "Custom",
            "businessDate": "0001-01-01"
          }
        ],
        "count": 2
      }
    },
    "PaymentMethodListModel": {
      "type": "object",
      "required": [
        "paymentMethods"
      ],
      "properties": {
        "paymentMethods": {
          "type": "array",
          "description": "List of supported payment methods.",
          "items": {
            "type": "string",
            "enum": [
              "Cash",
              "BankTransfer",
              "CreditCard",
              "Amex",
              "VisaCredit",
              "VisaDebit",
              "MasterCard",
              "MasterCardDebit",
              "Maestro",
              "GiroCard",
              "DiscoverCard",
              "Diners",
              "Jcb",
              "BookingCom",
              "VPay",
              "PayPal",
              "Postcard",
              "Reka",
              "Twint",
              "Lunchcheck",
              "Voucher",
              "ChinaUnionPay",
              "Other",
              "Cheque",
              "Airbnb",
              "HolidayCheck",
              "Representation",
              "IDeal"
            ]
          }
        }
      },
      "additionalProperties": false,
      "example": {
        "paymentMethods": [
          "Cash",
          "BankTransfer",
          "CreditCard",
          "Amex",
          "VisaCredit",
          "VisaDebit",
          "MasterCard",
          "MasterCardDebit",
          "Maestro",
          "GiroCard",
          "DiscoverCard",
          "Diners",
          "Jcb",
          "BookingCom",
          "VPay",
          "PayPal",
          "Postcard",
          "Reka",
          "Twint",
          "Lunchcheck",
          "Voucher",
          "ChinaUnionPay",
          "Other",
          "Cheque",
          "Airbnb",
          "HolidayCheck",
          "Representation",
          "IDeal"
        ]
      }
    },
    "PaymentModel": {
      "type": "object",
      "required": [
        "amount",
        "businessDate",
        "id",
        "method"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Id of the payment. This is unique within one folio."
        },
        "method": {
          "type": "string",
          "description": "The Payment Method.",
          "enum": [
            "Cash",
            "BankTransfer",
            "CreditCard",
            "Invoice",
            "Amex",
            "VisaCredit",
            "VisaDebit",
            "MasterCard",
            "MasterCardDebit",
            "Maestro",
            "GiroCard",
            "DiscoverCard",
            "Diners",
            "Jcb",
            "BookingCom",
            "VPay",
            "PayPal",
            "Postcard",
            "Reka",
            "Twint",
            "Lunchcheck",
            "Voucher",
            "ChinaUnionPay",
            "Other",
            "Cheque",
            "Airbnb",
            "HolidayCheck",
            "PspCash",
            "PspDebit",
            "PspBanking",
            "PspOpenInvoice",
            "PspWallet",
            "Representation",
            "IDeal"
          ]
        },
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "externalReference": {
          "$ref": "#/definitions/ExternalReference"
        },
        "receipt": {
          "type": "string",
          "description": "Receipt for the payment. For payments done by the payment service provider integration, this is the same as the pspReference.",
          "x-nullable": true
        },
        "paymentDate": {
          "type": "string",
          "description": "The date when the payment was done\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
          "format": "date-time"
        },
        "movedFrom": {
          "$ref": "#/definitions/EmbeddedFolioModel"
        },
        "movedTo": {
          "$ref": "#/definitions/EmbeddedFolioModel"
        },
        "movedReason": {
          "type": "string",
          "description": "A reason why move operation was performed",
          "x-nullable": true
        },
        "sourcePaymentId": {
          "type": "string",
          "description": "A link to the original payment in case of splitting payments",
          "x-nullable": true
        },
        "depositEntryId": {
          "type": "string",
          "description": "Id of the deposit entry this payment was classified as, if any",
          "x-nullable": true
        },
        "businessDate": {
          "type": "string",
          "description": "The business date of the payment",
          "format": "date",
          "example": "2020-10-10"
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "C3Q890XZ",
        "method": "Cash",
        "amount": {
          "amount": 230.0,
          "currency": "EUR"
        },
        "externalReference": {
          "merchantReference": "BLIPKWXP-1",
          "pspReference": "8535063621298633"
        },
        "paymentDate": "0001-01-01T00:00:00Z",
        "businessDate": "2021-05-22"
      }
    },
    "PaymentPaidChargesRequest": {
      "type": "object",
      "required": [
        "amount",
        "chargeId"
      ],
      "properties": {
        "chargeId": {
          "type": "string",
          "description": "The ID of the charge being paid"
        },
        "amount": {
          "type": "number",
          "description": "The amount being covered with the payment. If not provided it is assumed that the payment is covering the full amount of the charge",
          "format": "double"
        }
      },
      "additionalProperties": false
    },
    "PendingPaymentModel": {
      "type": "object",
      "required": [
        "amount",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Id of the payment task."
        },
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "terminalId": {
          "type": "string",
          "description": "The terminal used for the payment.",
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "HESOYAM",
        "amount": {
          "amount": 228.0,
          "currency": "EUR"
        },
        "terminalId": "T400"
      }
    },
    "PreciseMonetaryValueModel": {
      "type": "object",
      "description": "Use this model in all accounting reports",
      "required": [
        "amount",
        "currency"
      ],
      "properties": {
        "amount": {
          "type": "number",
          "format": "double"
        },
        "currency": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "PreviewInvoiceModel": {
      "type": "object",
      "required": [
        "commercialInformation",
        "createInvoiceAction",
        "folioId",
        "from",
        "invoiceDate",
        "languageCode",
        "lineItems",
        "propertyCountryCode",
        "propertyId",
        "total"
      ],
      "properties": {
        "to": {
          "$ref": "#/definitions/InvoiceRecipientModel"
        },
        "createInvoiceAction": {
          "type": "string",
          "description": "Describes what will happen, when you try to create an invoice with the folio in the state it is in now.",
          "enum": [
            "CannotCreateInvoice",
            "CreatesInvoice",
            "CreatesInvoiceAndClosesFolio",
            "CreatesArInvoiceAndClosesFolio"
          ]
        },
        "createInvoiceWarning": {
          "$ref": "#/definitions/CreateInvoiceWarningModel"
        },
        "invoiceDate": {
          "type": "string",
          "description": "Date the invoice has been created",
          "format": "date",
          "example": "2020-10-10"
        },
        "folioId": {
          "type": "string",
          "description": "The folio this invoice was requested for"
        },
        "from": {
          "$ref": "#/definitions/InvoiceSenderModel"
        },
        "commercialInformation": {
          "$ref": "#/definitions/CommercialInfoModel"
        },
        "bankAccount": {
          "$ref": "#/definitions/BankAccountModel"
        },
        "paymentTerms": {
          "type": "string",
          "description": "Specification of the payment terms, as defined in the property",
          "x-nullable": true
        },
        "lineItems": {
          "$ref": "#/definitions/InvoiceLineItemsModel"
        },
        "payments": {
          "type": "array",
          "description": "A list of all payments",
          "items": {
            "$ref": "#/definitions/InvoicePaymentModel"
          },
          "x-nullable": true
        },
        "outstandingPayment": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "taxDetails": {
          "type": "array",
          "description": "The subtotal, displaying net and tax amount for each VAT type",
          "items": {
            "$ref": "#/definitions/TaxDetailModel"
          },
          "x-nullable": true
        },
        "total": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "stayInfo": {
          "$ref": "#/definitions/StayInfoModel"
        },
        "propertyId": {
          "type": "string",
          "description": "The ID of the property"
        },
        "propertyCountryCode": {
          "type": "string",
          "description": "The country code of the property",
          "minLength": 1
        },
        "languageCode": {
          "type": "string",
          "description": "Language which was used to create the invoice",
          "minLength": 1
        },
        "company": {
          "$ref": "#/definitions/EmbeddedCompanyModel"
        }
      },
      "additionalProperties": false,
      "example": {
        "to": {
          "name": "John D. Doe",
          "address": {
            "addressLine1": "Baker Street 7",
            "postalCode": "10005",
            "city": "London",
            "countryCode": "GB"
          },
          "companyName": "Investigators Inc.",
          "companyTaxId": "GB-3358791",
          "reference": "REF-11",
          "personalTaxId": "123-321"
        },
        "createInvoiceAction": "CreatesInvoice",
        "invoiceDate": "2026-09-03",
        "folioId": "SGZLTBJC-1",
        "from": {
          "name": "The Bay Hotel",
          "address": {
            "addressLine1": "Ocean Drive 44",
            "postalCode": "55511",
            "city": "Santa Cruz",
            "countryCode": "US"
          }
        },
        "commercialInformation": {
          "registerEntry": "200417510087, California",
          "taxId": "775-43-2106"
        },
        "bankAccount": {
          "iban": "DE44 5001 0517 5407 3249 31",
          "bic": "SSKMDEMMXXX",
          "bank": "Stadtsparkasse M\u00FCnchen"
        },
        "paymentTerms": "Pay within 7 days",
        "lineItems": {
          "lineItems": [
            {
              "date": "2026-09-03",
              "description": "Double Room",
              "price": {
                "amount": 130.0,
                "currency": "EUR"
              },
              "vatType": "Reduced",
              "vatPercent": 7.0,
              "isNoShowFee": false
            },
            {
              "date": "2026-09-03",
              "description": "Service Package",
              "price": {
                "amount": 20.0,
                "currency": "EUR"
              },
              "vatType": "Normal",
              "vatPercent": 19.0,
              "isNoShowFee": false
            },
            {
              "date": "2026-09-03",
              "description": "Business Lounge Access",
              "price": {
                "amount": 40.0,
                "currency": "EUR"
              },
              "vatType": "Normal",
              "vatPercent": 19.0,
              "isNoShowFee": false
            }
          ],
          "subTotal": {
            "amount": 190.0,
            "currency": "EUR"
          }
        },
        "payments": [
          {
            "id": "PAY-1",
            "method": "BankTransfer",
            "methodName": "Bank\u00FCberweisung",
            "amount": {
              "amount": 130.0,
              "currency": "EUR"
            },
            "paymentDate": "2026-09-03T12:12:05.4656483\u002B02:00",
            "businessDate": "0001-01-01"
          },
          {
            "id": "PAY-2",
            "method": "Cash",
            "methodName": "Bar",
            "amount": {
              "amount": 30.0,
              "currency": "EUR"
            },
            "paymentDate": "2026-09-03T12:12:05.4656483\u002B02:00",
            "businessDate": "0001-01-01"
          }
        ],
        "taxDetails": [
          {
            "vatType": "Reduced",
            "vatPercent": 7.0,
            "net": {
              "amount": 120.0,
              "currency": "EUR"
            },
            "tax": {
              "amount": 10.0,
              "currency": "EUR"
            }
          },
          {
            "vatType": "Normal",
            "vatPercent": 19.0,
            "net": {
              "amount": 49.0,
              "currency": "EUR"
            },
            "tax": {
              "amount": 11.0,
              "currency": "EUR"
            }
          }
        ],
        "total": {
          "amount": -30.0,
          "currency": "EUR"
        },
        "stayInfo": {
          "guestName": "John Doe",
          "arrivalDate": "2026-09-02",
          "departureDate": "2026-09-05",
          "reservationId": "ASTUBXVZ-1"
        },
        "propertyId": "ID",
        "propertyCountryCode": "BY",
        "languageCode": "en"
      }
    },
    "ReceiptModel": {
      "type": "object",
      "required": [
        "number"
      ],
      "properties": {
        "type": {
          "type": "string",
          "description": "The type of receipt.",
          "enum": [
            "Custom",
            "Reservation",
            "Invoice",
            "PspReference"
          ]
        },
        "number": {
          "type": "string",
          "description": "The receipt number.",
          "minLength": 1
        }
      },
      "additionalProperties": false
    },
    "RefundCreatedModel": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "RefundListModel": {
      "type": "object",
      "required": [
        "count",
        "refunds"
      ],
      "properties": {
        "refunds": {
          "type": "array",
          "description": "List of refunds",
          "items": {
            "$ref": "#/definitions/RefundModel"
          }
        },
        "count": {
          "type": "integer",
          "description": "Total count of items",
          "format": "int64"
        }
      },
      "additionalProperties": false,
      "example": {
        "refunds": [
          {
            "id": "MUC-12454",
            "method": "Cash",
            "amount": {
              "amount": 100.0,
              "currency": "EUR"
            },
            "refundDate": "2026-09-03T12:12:05.4656483\u002B02:00",
            "sourcePaymentId": "MUC-KSJHDF",
            "status": "Failure",
            "failureReason": "Can\u0027t refund more than original payment.",
            "failureCode": "Failed",
            "businessDate": "2026-09-03",
            "reason": "Refund for the cancelled service"
          },
          {
            "id": "BER-12454",
            "method": "CreditCard",
            "amount": {
              "amount": 220.0,
              "currency": "EUR"
            },
            "refundDate": "2026-09-03T12:12:05.4656483\u002B02:00",
            "sourcePaymentId": "BER-UWNWFD",
            "status": "Pending",
            "businessDate": "2026-09-03",
            "reason": "Refund for the cancelled service"
          }
        ],
        "count": 2
      }
    },
    "RefundModel": {
      "type": "object",
      "required": [
        "amount",
        "businessDate",
        "id",
        "method",
        "refundDate",
        "status"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Id of the refund"
        },
        "method": {
          "type": "string",
          "description": "The payment method",
          "enum": [
            "Cash",
            "BankTransfer",
            "CreditCard",
            "Invoice",
            "Amex",
            "VisaCredit",
            "VisaDebit",
            "MasterCard",
            "MasterCardDebit",
            "Maestro",
            "GiroCard",
            "DiscoverCard",
            "Diners",
            "Jcb",
            "BookingCom",
            "VPay",
            "PayPal",
            "Postcard",
            "Reka",
            "Twint",
            "Lunchcheck",
            "Voucher",
            "ChinaUnionPay",
            "Other",
            "Cheque",
            "Airbnb",
            "HolidayCheck",
            "PspCash",
            "PspDebit",
            "PspBanking",
            "PspOpenInvoice",
            "PspWallet",
            "Representation",
            "IDeal"
          ]
        },
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "externalReference": {
          "$ref": "#/definitions/ExternalReference"
        },
        "receipt": {
          "type": "string",
          "description": "Receipt for the payment. For payments run through the apaleo payment services it is set to the pspReference",
          "x-nullable": true
        },
        "refundDate": {
          "type": "string",
          "description": "The date when the refund was done\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
          "format": "date-time"
        },
        "sourcePaymentId": {
          "type": "string",
          "description": "A link to the payment that the refund was done for",
          "x-nullable": true
        },
        "status": {
          "type": "string",
          "description": "Status of the refund",
          "enum": [
            "Pending",
            "Success",
            "Failure",
            "Canceled"
          ]
        },
        "failureReason": {
          "type": "string",
          "x-nullable": true
        },
        "failureCode": {
          "type": "string",
          "enum": [
            "Failed",
            "TimedOut"
          ],
          "x-nullable": true
        },
        "movedFrom": {
          "$ref": "#/definitions/EmbeddedFolioModel"
        },
        "movedTo": {
          "$ref": "#/definitions/EmbeddedFolioModel"
        },
        "movedReason": {
          "type": "string",
          "description": "A reason why the move operation was performed",
          "x-nullable": true
        },
        "businessDate": {
          "type": "string",
          "description": "The business date of the refund",
          "format": "date",
          "example": "2020-10-10"
        },
        "reason": {
          "type": "string",
          "description": "The reason for payment refund",
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "KDSF86SF",
        "method": "CreditCard",
        "amount": {
          "amount": 150.0,
          "currency": "EUR"
        },
        "externalReference": {
          "merchantReference": "JDKLKDS-1",
          "pspReference": "091283918312"
        },
        "refundDate": "2026-09-03T12:12:05.4656483\u002B02:00",
        "status": "Pending",
        "businessDate": "2026-09-03",
        "reason": "Refund for the cancelled service"
      }
    },
    "RoutingCreatedModel": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the routing"
        }
      },
      "additionalProperties": false
    },
    "RoutingFilterModel": {
      "type": "object",
      "properties": {
        "folioIds": {
          "type": "array",
          "description": "The folio ids filter",
          "items": {
            "type": "string"
          },
          "x-nullable": true
        },
        "subAccounts": {
          "type": "array",
          "description": "The subaccounts filter",
          "items": {
            "$ref": "#/definitions/RoutingSubAccountModel"
          },
          "x-nullable": true
        },
        "serviceTypes": {
          "type": "array",
          "description": "The service types filter",
          "items": {
            "type": "string",
            "enum": [
              "Other",
              "Accommodation",
              "FoodAndBeverages",
              "CancellationFees",
              "NoShow",
              "CityTax",
              "SecondCityTax",
              "LocalTax",
              "ConsumptionTax"
            ]
          },
          "x-nullable": true
        },
        "services": {
          "type": "array",
          "description": "The services filter",
          "items": {
            "$ref": "#/definitions/RoutingServiceModel"
          },
          "x-nullable": true
        },
        "from": {
          "type": "string",
          "description": "The start date filter",
          "format": "date",
          "example": "2020-10-10",
          "x-nullable": true
        },
        "to": {
          "type": "string",
          "description": "The end date filter",
          "format": "date",
          "example": "2020-10-10",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "RoutingFolioModel": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the folio"
        },
        "debitorType": {
          "type": "string",
          "description": "The debitor type of the folio",
          "enum": [
            "Booker",
            "PrimaryGuest",
            "Company",
            "AdditionalGuest",
            "Property"
          ],
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "RoutingListModel": {
      "type": "object",
      "required": [
        "count",
        "routings"
      ],
      "properties": {
        "routings": {
          "type": "array",
          "description": "The list of routings",
          "items": {
            "$ref": "#/definitions/RoutingModel"
          }
        },
        "count": {
          "type": "integer",
          "description": "Total count of items",
          "format": "int64"
        }
      },
      "additionalProperties": false,
      "example": {
        "routings": [
          {
            "id": "PKLJUASV",
            "bookingId": "XPGMSXGF",
            "propertyId": "MUC",
            "filter": {
              "folioIds": [
                "XPGMSXGF-1-1"
              ],
              "subAccounts": [
                {
                  "id": "MUC-ACC",
                  "name": "Accommodation"
                }
              ],
              "serviceTypes": [
                "Accommodation",
                "FoodAndBeverages"
              ],
              "services": [
                {
                  "id": "MUC-BRK",
                  "name": "Breakfast"
                }
              ]
            },
            "destinationFolio": {
              "id": "XPGMSXGF-2-1",
              "debitorType": "PrimaryGuest"
            }
          },
          {
            "id": "PKLABCYV",
            "bookingId": "XPGMSXGF",
            "propertyId": "MUC",
            "filter": {
              "serviceTypes": [
                "Accommodation"
              ],
              "from": "2024-01-01",
              "to": "2024-01-07"
            },
            "destinationFolio": {
              "id": "XPGMSXGF-2-2",
              "debitorType": "PrimaryGuest"
            }
          }
        ],
        "count": 1
      }
    },
    "RoutingModel": {
      "type": "object",
      "required": [
        "bookingId",
        "destinationFolio",
        "id",
        "propertyId"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the routing"
        },
        "bookingId": {
          "type": "string",
          "description": "The ID of the booking"
        },
        "propertyId": {
          "type": "string",
          "description": "The ID of the property"
        },
        "filter": {
          "$ref": "#/definitions/RoutingFilterModel"
        },
        "destinationFolio": {
          "$ref": "#/definitions/RoutingFolioModel"
        },
        "actions": {
          "type": "array",
          "description": "The list of actions for this routing",
          "items": {
            "$ref": "#/definitions/ActionModel[RoutingAction,NotAllowedRoutingActionReason]"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "PKLJUASV",
        "bookingId": "XPGMSXGF",
        "propertyId": "MUC",
        "filter": {
          "folioIds": [
            "XPGMSXGF-1-1"
          ],
          "subAccounts": [
            {
              "id": "MUC-REST",
              "name": "Accommodation"
            }
          ],
          "serviceTypes": [
            "Accommodation",
            "FoodAndBeverages"
          ],
          "services": [
            {
              "id": "MUC-BRK",
              "name": "Breakfast"
            }
          ]
        },
        "destinationFolio": {
          "id": "XPGMSXGF-2-1",
          "debitorType": "PrimaryGuest"
        }
      }
    },
    "RoutingServiceModel": {
      "type": "object",
      "required": [
        "id",
        "name"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the service"
        },
        "name": {
          "type": "string",
          "description": "The name of the service",
          "minLength": 1
        }
      },
      "additionalProperties": false
    },
    "RoutingSubAccountModel": {
      "type": "object",
      "required": [
        "id",
        "name"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the subaccount"
        },
        "name": {
          "type": "string",
          "description": "The name of the subaccount",
          "minLength": 1
        }
      },
      "additionalProperties": false
    },
    "ServiceTypeListModel": {
      "type": "object",
      "required": [
        "serviceTypes"
      ],
      "properties": {
        "serviceTypes": {
          "type": "array",
          "description": "List of supported payment methods.",
          "items": {
            "type": "string",
            "enum": [
              "Other",
              "Accommodation",
              "FoodAndBeverages",
              "CancellationFees",
              "NoShow",
              "CityTax",
              "SecondCityTax",
              "LocalTax",
              "ConsumptionTax"
            ]
          }
        }
      },
      "additionalProperties": false,
      "example": {
        "serviceTypes": [
          "Other",
          "Accommodation",
          "FoodAndBeverages",
          "CancellationFees",
          "NoShow",
          "CityTax",
          "SecondCityTax",
          "LocalTax",
          "ConsumptionTax"
        ]
      }
    },
    "SlimFinanceAccountModel": {
      "type": "object",
      "required": [
        "accountNumber",
        "hasChildren",
        "isArchived",
        "name",
        "type"
      ],
      "properties": {
        "accountNumber": {
          "type": "string",
          "description": "The account number. Unique identifier within one property.",
          "minLength": 1
        },
        "name": {
          "type": "string",
          "description": "The name of the account.",
          "minLength": 1
        },
        "type": {
          "type": "string",
          "description": "The type of account.",
          "enum": [
            "Revenues",
            "Payments",
            "Liabilities",
            "Receivables",
            "Vat",
            "House",
            "AccountsReceivable",
            "CityTaxes",
            "TransitoryItems",
            "VatOnLiabilities",
            "LossOfAccountsReceivable",
            "SecondCityTax",
            "GuestLevies"
          ]
        },
        "parentNumber": {
          "type": "string",
          "description": "Parent account number. Null for top-level accounts.",
          "x-nullable": true
        },
        "hasChildren": {
          "type": "boolean",
          "description": "Indicates whether this account has children / sub accounts or not."
        },
        "isArchived": {
          "type": "boolean",
          "description": "Indicates whether this account is archived ot not."
        },
        "vat": {
          "$ref": "#/definitions/VatItemModel"
        },
        "subAccounts": {
          "type": "array",
          "description": "Sub accounts for this accounts.",
          "items": {
            "$ref": "#/definitions/SlimFinanceAccountModel"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "accountNumber": "1000",
        "name": "Other Revenues",
        "type": "Revenues",
        "parentNumber": "5000",
        "hasChildren": true,
        "isArchived": false,
        "subAccounts": [
          {
            "accountNumber": "1000",
            "name": "Other Revenues (7%)",
            "type": "Revenues",
            "parentNumber": "RevenueOther",
            "hasChildren": false,
            "isArchived": true
          }
        ]
      }
    },
    "SplitChargeRequest": {
      "type": "object",
      "required": [
        "type"
      ],
      "properties": {
        "percent": {
          "type": "number",
          "description": "The percent to split charge (between 0 and 100)",
          "format": "double",
          "x-nullable": true
        },
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "type": {
          "type": "string",
          "description": "How to split the charge: by percent value, or by absolute amount",
          "enum": [
            "ByPercent",
            "ByAmount"
          ]
        }
      },
      "additionalProperties": false,
      "example": {
        "percent": 51.0,
        "type": "ByPercent"
      }
    },
    "SplitChargeResult": {
      "type": "object",
      "required": [
        "allowanceId",
        "firstChargeId",
        "secondChargeId"
      ],
      "properties": {
        "allowanceId": {
          "type": "string"
        },
        "firstChargeId": {
          "type": "string"
        },
        "secondChargeId": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "example": {
        "allowanceId": "ABCDEF-1-1",
        "firstChargeId": "ABCDEF-1-2",
        "secondChargeId": "ABCDEF-1-2"
      }
    },
    "SplitPaymentRequest": {
      "type": "object",
      "required": [
        "type"
      ],
      "properties": {
        "percent": {
          "type": "number",
          "description": "The percent to split payment (between 0 and 100)",
          "format": "double",
          "x-nullable": true
        },
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "type": {
          "type": "string",
          "description": "How to split the payment: by percent value, or by absolute amount",
          "enum": [
            "ByPercent",
            "ByAmount"
          ]
        }
      },
      "additionalProperties": false,
      "example": {
        "percent": 51.0,
        "type": "ByPercent"
      }
    },
    "SplitPaymentResult": {
      "type": "object",
      "properties": {
        "refundId": {
          "type": "string",
          "x-nullable": true
        },
        "firstPaymentId": {
          "type": "string",
          "x-nullable": true
        },
        "secondPaymentId": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "refundId": "ABCDEF-1-1",
        "firstPaymentId": "ABCDEF-1-2",
        "secondPaymentId": "ABCDEF-1-3"
      }
    },
    "StayInfoModel": {
      "type": "object",
      "required": [
        "arrivalDate",
        "departureDate",
        "guestName",
        "reservationId"
      ],
      "properties": {
        "guestName": {
          "type": "string",
          "description": "Name of the primary guest",
          "minLength": 1
        },
        "arrivalDate": {
          "type": "string",
          "description": "The arrival date",
          "format": "date",
          "example": "2020-10-10"
        },
        "departureDate": {
          "type": "string",
          "description": "The departure date",
          "format": "date",
          "example": "2020-10-10"
        },
        "reservationId": {
          "type": "string",
          "description": "ID of the reservation this invoice is for, if any.",
          "minLength": 1
        },
        "roomNumber": {
          "type": "string",
          "description": "The last room number",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "TaxAmountModel": {
      "type": "object",
      "required": [
        "amount",
        "percent",
        "type"
      ],
      "properties": {
        "type": {
          "type": "string",
          "description": "The VAT type",
          "enum": [
            "Null",
            "VeryReduced",
            "Reduced",
            "Normal",
            "Without",
            "Special",
            "Special1",
            "Special2",
            "ReducedCovid19",
            "NormalCovid19",
            "Mixed"
          ]
        },
        "percent": {
          "type": "number",
          "description": "The currently valid percent to calculate the VAT",
          "format": "double"
        },
        "amount": {
          "type": "number",
          "description": "The tax amount",
          "format": "double"
        }
      },
      "additionalProperties": false
    },
    "TaxDetailModel": {
      "type": "object",
      "required": [
        "net",
        "tax",
        "vatPercent",
        "vatType"
      ],
      "properties": {
        "vatType": {
          "type": "string",
          "enum": [
            "Null",
            "VeryReduced",
            "Reduced",
            "Normal",
            "Without",
            "Special",
            "Special1",
            "Special2",
            "ReducedCovid19",
            "NormalCovid19",
            "Mixed"
          ]
        },
        "vatPercent": {
          "type": "number",
          "format": "double"
        },
        "net": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "tax": {
          "$ref": "#/definitions/MonetaryValueModel"
        }
      },
      "additionalProperties": false
    },
    "TransitoryChargeModel": {
      "type": "object",
      "required": [
        "amount",
        "created",
        "id",
        "name",
        "quantity",
        "serviceDate"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "ID for transitory charge. This is unique within one folio."
        },
        "name": {
          "type": "string",
          "description": "The name, article number, or other description of this item",
          "minLength": 1
        },
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "serviceType": {
          "type": "string",
          "description": "The service type of this transitory charge. As revenue and VAT of transitory charges are not recorded for the hotel, this is just FYI.",
          "enum": [
            "Other",
            "Accommodation",
            "FoodAndBeverages",
            "CancellationFees",
            "NoShow",
            "CityTax",
            "SecondCityTax",
            "LocalTax",
            "ConsumptionTax"
          ],
          "x-nullable": true
        },
        "serviceDate": {
          "type": "string",
          "description": "The date when this charge was added.",
          "format": "date",
          "example": "2020-10-10"
        },
        "created": {
          "type": "string",
          "description": "Date of creation\u003Cbr /\u003EA date and time (without fractional second part) in UTC or with UTC offset as defined in \u003Ca href=\u0022https://en.wikipedia.org/wiki/ISO_8601\u0022\u003EISO8601:2004\u003C/a\u003E",
          "format": "date-time"
        },
        "receipt": {
          "type": "string",
          "description": "Receipt for this transaction",
          "x-nullable": true
        },
        "movedFrom": {
          "$ref": "#/definitions/EmbeddedFolioModel"
        },
        "movedTo": {
          "$ref": "#/definitions/EmbeddedFolioModel"
        },
        "movedReason": {
          "type": "string",
          "description": "A reason why move operation was performed",
          "x-nullable": true
        },
        "quantity": {
          "type": "integer",
          "description": "The count of services provided",
          "format": "int32"
        }
      },
      "additionalProperties": false
    },
    "VatItemModel": {
      "type": "object",
      "required": [
        "percent",
        "type"
      ],
      "properties": {
        "type": {
          "type": "string",
          "description": "The VAT type",
          "enum": [
            "Null",
            "VeryReduced",
            "Reduced",
            "Normal",
            "Without",
            "Special",
            "Special1",
            "Special2",
            "ReducedCovid19",
            "NormalCovid19",
            "Mixed"
          ]
        },
        "percent": {
          "type": "number",
          "description": "The currently valid percent to calculate the VAT",
          "format": "double"
        }
      },
      "additionalProperties": false
    },
    "VatListModel": {
      "type": "object",
      "properties": {
        "vatTypes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/VatItemModel"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "vatTypes": [
          {
            "type": "Null",
            "percent": 0.0
          },
          {
            "type": "Reduced",
            "percent": 7.0
          },
          {
            "type": "Normal",
            "percent": 19.0
          }
        ]
      }
    }
  },
  "securityDefinitions": {
    "oauth2": {
      "type": "oauth2",
      "flow": "implicit",
      "authorizationUrl": "https://identity.apaleo.com/connect/authorize",
      "scopes": {
        "admin": "Full access",
        "reservations.import": "Import reservations"
      }
    }
  },
  "tags": [
    {
      "name": "Folio"
    },
    {
      "name": "FolioActions"
    },
    {
      "name": "FolioPayments"
    },
    {
      "name": "Invoice"
    },
    {
      "name": "InvoiceAction"
    },
    {
      "name": "Routing"
    },
    {
      "name": "SubLedger"
    },
    {
      "name": "Types"
    }
  ]
}