{
  "swagger": "2.0",
  "info": {
    "title": "apaleo Finance API - not safe for work",
    "description": "Continuously evolving version - use at your own risk! Everything around the Folio, Invoices and Accounting.",
    "version": "v0-nsfw"
  },
  "paths": {
    "/finance/v0-nsfw/deposit-containers/{id}": {
      "get": {
        "tags": [
          "DepositContainer"
        ],
        "summary": "Get a deposit container by ID.",
        "description": "Returns the reservation-level deposit container including entries, VAT allocations, and remaining amount.\nRemaining is computed on read and is zero when the container has no entries.\u003Cbr\u003EYou must have at least one of these scopes: \u0027folios.read, folios.manage\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.deposit_container.read\u0027.",
        "operationId": "FinanceDeposit-containersByIdGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The id of the deposit container.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/DepositContainerModel"
            }
          },
          "404": {
            "description": "The deposit container was not found.",
            "schema": {
              "$ref": "#/definitions/ProblemDetails"
            }
          },
          "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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.read\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": "dateFilter",
            "description": "Filter by date and time attributes of folio. Use in combination with the \u0027To\u0027 and \u0027From\u0027 attributes.\nAll filters will check if the date specified by the filter type is between from (included) and to (excluded).\nThe exception being filtering for \u0027stay\u0027, which will return all reservations that are overlapping with the interval specified by from and to.",
            "type": "string",
            "enum": [
              "Stay",
              "Creation",
              "Modification"
            ]
          },
          {
            "in": "query",
            "name": "from",
            "description": "The start of the time interval. When filtering by date, at least one of \u0027from\u0027 and \u0027to\u0027 has to be specified\u003Cbr /\u003EA date and time 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": "to",
            "description": "The end of the time interval, must be larger than \u0027from\u0027. When filtering by date, at least one of \u0027from\u0027 and \u0027to\u0027 has to be specified\u003Cbr /\u003EA date and time 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": "createdFrom",
            "description": "The inclusive start time of the date of creation. Mostly useful for external folios - \u003Cb\u003EDEPRECATED: This field will be removed on August 17th 2026. Please use DateFilter instead.\u003C/b\u003E\u003Cbr /\u003EA date and time 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 - \u003Cb\u003EDEPRECATED: This field will be removed on August 17th 2026. Please use DateFilter instead.\u003C/b\u003E\u003Cbr /\u003EA date and time 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 - \u003Cb\u003EDEPRECATED: This field will be removed on August 17th 2026. Please use DateFilter instead.\u003C/b\u003E\u003Cbr /\u003EA date and time 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 - \u003Cb\u003EDEPRECATED: This field will be removed on August 17th 2026. Please use DateFilter instead.\u003C/b\u003E\u003Cbr /\u003EA date and time 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": "reservationStatus",
            "description": "Filter result by reservation status. If filtering by reservation status, only guest folios linked to reservations with the specified status(es) will be returned.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Confirmed",
                "InHouse",
                "CheckedOut",
                "Canceled",
                "NoShow"
              ]
            }
          },
          {
            "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, depositItems, payments, warnings. All other values will be silently ignored.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "allowances",
                "allowedActions",
                "transitoryCharges",
                "charges",
                "company",
                "depositItems",
                "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, for a booking, 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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.create\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.read\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": "dateFilter",
            "description": "Filter by date and time attributes of folio. Use in combination with the \u0027To\u0027 and \u0027From\u0027 attributes.\nAll filters will check if the date specified by the filter type is between from (included) and to (excluded).\nThe exception being filtering for \u0027stay\u0027, which will return all reservations that are overlapping with the interval specified by from and to.",
            "type": "string",
            "enum": [
              "Stay",
              "Creation",
              "Modification"
            ]
          },
          {
            "in": "query",
            "name": "from",
            "description": "The start of the time interval. When filtering by date, at least one of \u0027from\u0027 and \u0027to\u0027 has to be specified\u003Cbr /\u003EA date and time 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": "to",
            "description": "The end of the time interval, must be larger than \u0027from\u0027. When filtering by date, at least one of \u0027from\u0027 and \u0027to\u0027 has to be specified\u003Cbr /\u003EA date and time 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": "createdFrom",
            "description": "The inclusive start time of the date of creation. Mostly useful for external folios - \u003Cb\u003EDEPRECATED: This field will be removed on August 17th 2026. Please use DateFilter instead.\u003C/b\u003E\u003Cbr /\u003EA date and time 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 - \u003Cb\u003EDEPRECATED: This field will be removed on August 17th 2026. Please use DateFilter instead.\u003C/b\u003E\u003Cbr /\u003EA date and time 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 - \u003Cb\u003EDEPRECATED: This field will be removed on August 17th 2026. Please use DateFilter instead.\u003C/b\u003E\u003Cbr /\u003EA date and time 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 - \u003Cb\u003EDEPRECATED: This field will be removed on August 17th 2026. Please use DateFilter instead.\u003C/b\u003E\u003Cbr /\u003EA date and time 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": "reservationStatus",
            "description": "Filter result by reservation status. If filtering by reservation status, only guest folios linked to reservations with the specified status(es) will be returned.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Confirmed",
                "InHouse",
                "CheckedOut",
                "Canceled",
                "NoShow"
              ]
            }
          },
          {
            "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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.read\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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.modify\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 FolioDebitorUnstableModel 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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.read\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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.delete\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/v0-nsfw/folios/{id}/paid-charges": {
      "get": {
        "tags": [
          "Folio"
        ],
        "summary": "Returns the list of paid charges for a folio.",
        "description": "This is an internal API subject to change at any moment.\u003Cbr\u003EYou must have at least one of these scopes: \u0027folios.read, folios.manage\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.read\u0027.",
        "operationId": "FinanceFoliosByIdPaid-chargesGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The ID of the folio.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/FolioPaidChargeListModel"
            }
          },
          "204": {
            "description": "No paid charges 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"
            ]
          }
        ]
      }
    },
    "/finance/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.post_charge\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.post_transitory_charge\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.post_cancellation_fee\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.post_no_show_fee\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.close\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.reopen\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.move_charge\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.move_charge\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.move_charge\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.post_charge_allowance\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.post_folio_allowance\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.post_charge_allowance\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.post_unposted_charges\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.move_payment\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.correct\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.split_charge\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.split_payment\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/v0-nsfw/folio-actions/{folioId}/deposit-items": {
      "post": {
        "tags": [
          "FolioActions"
        ],
        "summary": "Creates a new deposit item for the specified folio",
        "description": "\u003Cbr\u003EYou must have at least one of these scopes: \u0027depositItems.manage, folios.manage\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.create_deposit_item\u0027.",
        "operationId": "FinanceFolio-actionsByFolioIdDeposit-itemsPost",
        "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 deposit item\u0027s data",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateOrUpdateDepositItemModel"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/AddedDepositItemModel"
            },
            "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": [
              "depositItems.manage",
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v0-nsfw/folio-actions/{folioId}/deposit-items/{depositItemId}": {
      "patch": {
        "tags": [
          "FolioActions"
        ],
        "summary": "Update an item with the given ID",
        "description": "\u003Cbr\u003EYou must have at least one of these scopes: \u0027depositItems.manage, folios.manage\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.modify_deposit_item\u0027.",
        "operationId": "FinanceFolio-actionsByFolioIdDeposit-itemsByDepositItemIdPatch",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "The folio ID",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "depositItemId",
            "description": "The ID of the deposit item to be updated",
            "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": "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": [
              "depositItems.manage",
              "folios.manage",
              "admin"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "FolioActions"
        ],
        "summary": "Deletes an item with the given ID",
        "description": "\u003Cbr\u003EYou must have at least one of these scopes: \u0027depositItems.manage, folios.manage\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folios.delete_deposit_item\u0027.",
        "operationId": "FinanceFolio-actionsByFolioIdDeposit-itemsByDepositItemIdDelete",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "The folio ID",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "depositItemId",
            "description": "The ID of the deposit item to be deleted",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "depositItems.manage",
              "folios.manage",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folio_payments.read\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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folio_payments.create\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folio_payments.read\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folio_payments.create\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folio_payments.create\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folio_payments.create\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folio_payments.create\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/v0-nsfw/folios/{folioId}/payments/{paymentId}/fail": {
      "put": {
        "tags": [
          "FolioPayments"
        ],
        "summary": "Fails a payment.",
        "description": "Fails a payment and therefore increases the allowed payment amount for the respective folio again.\nCan be called multiple times\u003Cbr\u003EYou must have this scope: \u0027payments.admin\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folio_payments.fail\u0027.",
        "operationId": "FinanceFoliosByFolioIdPaymentsByPaymentIdFailPut",
        "consumes": [
          "application/json"
        ],
        "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"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/FailPaymentModel"
            }
          }
        ],
        "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": [
              "payments.admin",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v0-nsfw/folios/{folioId}/payments/{paymentId}/commit": {
      "put": {
        "tags": [
          "FolioPayments"
        ],
        "summary": "Set a payment to success.",
        "description": "Sets a payment to success and triggers the accounting. This API can also be called on failed or timed out payments\u003Cbr\u003EYou must have this scope: \u0027payments.admin\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folio_payments.commit\u0027.",
        "operationId": "FinanceFoliosByFolioIdPaymentsByPaymentIdCommitPut",
        "consumes": [
          "application/json"
        ],
        "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"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CommitPaymentModel"
            }
          }
        ],
        "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": [
              "payments.admin",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folio_payments.cancel\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folio_refunds.read\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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folio_refunds.create\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folio_refunds.read\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folio_refunds.create\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/v0-nsfw/folios/{folioId}/refunds/{refundId}/fail": {
      "put": {
        "tags": [
          "FolioPayments"
        ],
        "summary": "Fails a refund.",
        "description": "Fails a refund and therefore increases the allowed refund amount for the respective folio again.\nCan be called multiple times\u003Cbr\u003EYou must have this scope: \u0027payments.admin\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folio_refunds.fail\u0027.",
        "operationId": "FinanceFoliosByFolioIdRefundsByRefundIdFailPut",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "refundId",
            "description": "The id of the refund.",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RefundFailModel"
            }
          }
        ],
        "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": [
              "payments.admin",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v0-nsfw/folios/{folioId}/refunds/{refundId}/commit": {
      "put": {
        "tags": [
          "FolioPayments"
        ],
        "summary": "Set a refund to success.",
        "description": "Sets a refund to success and triggers the accounting. This API can also be called on failed or timed out refunds\u003Cbr\u003EYou must have this scope: \u0027payments.admin\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.folio_refunds.commit\u0027.",
        "operationId": "FinanceFoliosByFolioIdRefundsByRefundIdCommitPut",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "folioId",
            "description": "",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "refundId",
            "description": "The id of the refund.",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CommitRefundModel"
            }
          }
        ],
        "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": [
              "payments.admin",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.invoices.read\u0027.",
        "operationId": "FinanceInvoicesPreview-pdfGet",
        "produces": [
          "application/pdf",
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "lineItemGrouping",
            "description": "The line item grouping type to be applied to the invoice being created.",
            "type": "string",
            "enum": [
              "NoGrouping",
              "ByCharge",
              "ByRatePlanDetailed",
              "ByRatePlanSimplified",
              "ByReceipt"
            ]
          },
          {
            "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/v0-nsfw/invoices/preview-advance-pdf": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Gets a preview advance invoice PDF for one specific folio.",
        "description": "Gets a preview advance invoice PDF for one specific folio.\u003Cbr\u003EYou must have this scope: \u0027invoices.read\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.invoices.read\u0027.",
        "operationId": "FinanceInvoicesPreview-advance-pdfGet",
        "produces": [
          "application/pdf",
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "folioId",
            "description": "The ID of the folio for which the advance invoice should be created.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "languageCode",
            "description": "The language in which the advance invoice should be produced.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "chargeIds",
            "description": "The filter for charges",
            "required": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "paymentIds",
            "description": "The filter for payments",
            "required": true,
            "type": "array",
            "items": {
              "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/v0-nsfw/invoices/preview-deposit-pdf": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Gets a preview deposit invoice PDF for one deposit entry.",
        "description": "Gets a preview deposit invoice PDF for one deposit entry.\u003Cbr\u003EYou must have this scope: \u0027invoices.read\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.invoices.read\u0027.",
        "operationId": "FinanceInvoicesPreview-deposit-pdfGet",
        "produces": [
          "application/pdf",
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "depositEntryId",
            "description": "The ID of the deposit entry to issue a deposit invoice for.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "languageCode",
            "description": "The language in which the deposit invoice should be produced.",
            "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/v0-nsfw/invoices/preview": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "description": "\u003Cbr\u003EYou must have this scope: \u0027invoices.read\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.invoices.read\u0027.",
        "operationId": "FinanceInvoicesPreviewGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "folioId",
            "description": "The ID of the folio for which the advance invoice should be created.",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "chargeIds",
            "description": "The filter for charges",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "paymentIds",
            "description": "The filter for payments",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "lineItemGrouping",
            "description": "The line item grouping type to be applied to the invoice being created.",
            "type": "string",
            "enum": [
              "NoGrouping",
              "ByCharge",
              "ByRatePlanDetailed",
              "ByRatePlanSimplified",
              "ByReceipt"
            ]
          },
          {
            "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": "OK",
            "schema": {
              "$ref": "#/definitions/UnstablePreviewInvoiceModel"
            }
          },
          "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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.invoices.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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.invoices.create\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/v0-nsfw/invoices/advance": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Creates an advance invoice for one specific folio.",
        "description": "Creates an advance invoice for one specific folio.\u003Cbr\u003EYou must have at least one of these scopes: \u0027invoices.create, invoices.manage\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.invoices.create\u0027.",
        "operationId": "FinanceInvoicesAdvancePost",
        "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 advance invoice for.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateAdvanceInvoicePdfRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "The advance 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/v0-nsfw/invoices/deposit": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Issues a deposit invoice for a deposit entry.",
        "description": "Issues a deposit invoice on the source folio of the given deposit entry.\nLine items are generic per VAT bracket from the entry allocation and are not tied to specific charges.\nA replay of the same request returns the existing invoice.\u003Cbr\u003EYou must have at least one of these scopes: \u0027invoices.create, invoices.manage\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.invoices.create\u0027.",
        "operationId": "FinanceInvoicesDepositPost",
        "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 deposit entry to issue an invoice for.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateDepositInvoiceRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "The deposit invoice was created successfully.",
            "schema": {
              "$ref": "#/definitions/InvoiceCreatedModel"
            },
            "headers": {
              "Location": {
                "description": "The location of the created resource.",
                "type": "string"
              }
            }
          },
          "200": {
            "description": "The deposit invoice already existed and was returned.",
            "schema": {
              "$ref": "#/definitions/InvoiceCreatedModel"
            }
          },
          "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/v0-nsfw/invoices/pro-forma": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Creates a pro-forma invoice for one specific folio.",
        "description": "Creates a pro-forma invoice for one specific folio.\u003Cbr\u003EYou must have at least one of these scopes: \u0027invoices.create, invoices.manage\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.invoices.create\u0027.",
        "operationId": "FinanceInvoicesPro-formaPost",
        "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 pro-forma invoice for.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateProformaInvoicePdfRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "The advance 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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.invoices.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/v0-nsfw/invoices/{id}": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "description": "\u003Cbr\u003EYou must have this scope: \u0027invoices.read\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.invoices.read\u0027.",
        "operationId": "FinanceInvoicesByIdGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "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, groupedLineItems. All other values will be silently ignored.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "company",
                "groupedLineItems"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/UnstableInvoiceModel"
            }
          },
          "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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.invoice_actions.pay\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/v0-nsfw/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.\nFor deposit invoices, creates a deposit cancellation. Re-issuing the entry then creates a deposit correction.\u003Cbr\u003EYou must have this scope: \u0027invoices.manage\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.invoice_actions.cancel\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/v0-nsfw/invoice-actions/{id}/write-off": {
      "put": {
        "tags": [
          "InvoiceAction"
        ],
        "summary": "Writes off an invoice",
        "description": "Marks the invoice as \u0060Write Off\u0060 so that the amount of such invoice is removed from the unpaid invoices.\u003Cbr\u003EYou must have this scope: \u0027invoices.manage\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.invoice_actions.write_off\u0027.",
        "operationId": "FinanceInvoice-actionsByIdWrite-offPut",
        "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/WriteOffInvoiceRequest"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Invoice written off."
          },
          "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/v0-nsfw/invoice-actions/{id}/commit": {
      "put": {
        "tags": [
          "InvoiceAction"
        ],
        "summary": "Commits a pending or failed invoice",
        "description": "Sets an invoice as successfully created. This API can also be called on failed invoices.\u003Cbr\u003EYou must have this scope: \u0027admin\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.invoice_actions.commit\u0027.",
        "operationId": "FinanceInvoice-actionsByIdCommitPut",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The invoice ID",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "Request with FiscalNumber",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CommitInvoiceRequest"
            }
          }
        ],
        "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": [
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v0-nsfw/invoice-actions/{id}/commit-rendered": {
      "put": {
        "tags": [
          "InvoiceAction"
        ],
        "summary": "Commits a rendered status for a successful invoice",
        "description": "Triggers \u0022rendered\u0022 webhook event for the invoice.\u003Cbr\u003EYou must have this scope: \u0027admin\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.invoice_actions.commit_rendered\u0027.",
        "operationId": "FinanceInvoice-actionsByIdCommit-renderedPut",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The invoice 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": [
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v0-nsfw/invoice-actions/{id}/fail": {
      "put": {
        "tags": [
          "InvoiceAction"
        ],
        "summary": "Fails a pending invoice",
        "description": "Sets an invoice as failed to create.\u003Cbr\u003EYou must have this scope: \u0027admin\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.invoice_actions.fail\u0027.",
        "operationId": "FinanceInvoice-actionsByIdFailPut",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "description": "The invoice ID",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "Request with optional FiscalNumber",
            "required": true,
            "schema": {
              "$ref": "#/definitions/FailInvoiceRequest"
            }
          }
        ],
        "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": [
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v0-nsfw/prepayment-notices/preview": {
      "post": {
        "tags": [
          "PrepaymentNotice"
        ],
        "summary": "Gets a prepayment notice preview for some specific charges, or deposit items.",
        "description": "\u003Cbr\u003EYou must have this scope: \u0027prepayment-notices.read\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.prepayment_notices.preview\u0027.",
        "operationId": "FinancePrepayment-noticesPreviewPost",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/pdf",
          "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": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PrepaymentNoticeRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "type": "file"
            }
          },
          "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": [
              "prepayment-notices.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v0-nsfw/routings": {
      "post": {
        "tags": [
          "Routing"
        ],
        "summary": "Create a routing.",
        "description": "\u003Cbr\u003EYou must have at least one of these scopes: \u0027routings.create, routings.manage\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.routings.create\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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.routings.read\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.routings.read\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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.routings.modify\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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.routings.delete\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.subledger_aggregate.create\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.subledger_aggregate.create\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.subledger_aggregate.create\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 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 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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.subledger_export.create\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 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 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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.subledger_export.create\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.subledger_export.create\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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.subledger_schema.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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.subledger_global_accounts.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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.subledger_guest_accounts.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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.subledger_external_accounts.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/v0-nsfw/booking-accounts": {
      "get": {
        "tags": [
          "SubLedger"
        ],
        "summary": "Returns a list of booking accounts.",
        "description": "Returns a list of booking accounts in one property for a booking.\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.read, accounting.read\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.subledger_booking_accounts.read\u0027.",
        "operationId": "FinanceBooking-accountsGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "Filter account list by property id",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "bookingId",
            "description": "Filter account list by booking id",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "languageCode",
            "description": "The language for the the report",
            "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": "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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.subledger_accounts.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/ExtendedFinanceAccountModel"
            }
          },
          "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/v0-nsfw/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.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.subledger_accounts.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/v0-nsfw/accounts/top-accounts": {
      "get": {
        "tags": [
          "SubLedger"
        ],
        "summary": "Returns a list of top-level accounts",
        "description": "\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.read, accounting.read\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.subledger_accounts.read\u0027.",
        "operationId": "FinanceAccountsTop-accountsGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "Filter account list by property ID",
            "required": true,
            "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": "languageCode",
            "description": "The language for the the report",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/FinanceAccountListModel"
            }
          },
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "subledger.read",
              "accounting.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v0-nsfw/accounts/guest-transactions": {
      "get": {
        "tags": [
          "SubLedger"
        ],
        "summary": "Returns a list of transactions for a reservation [DEPRECATED]",
        "description": "This field will be removed soon. Use GET /finance/v1/accounts/transactions instead.\u003Cbr/ \u003E\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.read, accounting.read\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.subledger_accounts.read\u0027.",
        "operationId": "FinanceAccountsGuest-transactionsGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "Filter transactions by property ID",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "reservationId",
            "description": "Filter transactions by reservation ID",
            "required": true,
            "type": "string"
          },
          {
            "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/PageableAccountingTransactionListModel"
            }
          },
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "oauth2": [
              "subledger.read",
              "accounting.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v0-nsfw/accounts/booking-transactions": {
      "get": {
        "tags": [
          "SubLedger"
        ],
        "summary": "Returns a list of transactions for a booking [DEPRECATED]",
        "description": "This field will be removed soon. Use GET /finance/v1/accounts/transactions instead.\u003Cbr/ \u003E\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.read, accounting.read\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.subledger_accounts.read\u0027.",
        "operationId": "FinanceAccountsBooking-transactionsGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "Filter transactions by property ID",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "bookingId",
            "description": "Filter transactions by booking ID",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "accountingSchema",
            "description": "Allows to override the default accounting schema",
            "type": "string",
            "enum": [
              "Simple",
              "Extended"
            ]
          },
          {
            "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/PageableAccountingTransactionListModel"
            }
          },
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "oauth2": [
              "subledger.read",
              "accounting.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v0-nsfw/accounts/external-transactions": {
      "get": {
        "tags": [
          "SubLedger"
        ],
        "summary": "Returns a list of transactions for an external folio [DEPRECATED]",
        "description": "This field will be removed soon. Use GET /finance/v1/accounts/transactions instead.\u003Cbr/ \u003E\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.read, accounting.read\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.subledger_accounts.read\u0027.",
        "operationId": "FinanceAccountsExternal-transactionsGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "Filter transactions by property ID",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "folioId",
            "description": "Filter transactions by external folio ID",
            "required": true,
            "type": "string"
          },
          {
            "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/PageableAccountingTransactionListModel"
            }
          },
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "oauth2": [
              "subledger.read",
              "accounting.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v0-nsfw/accounts/transactions": {
      "get": {
        "tags": [
          "SubLedger"
        ],
        "summary": "Returns a list of transactions",
        "description": "\u003Cbr\u003EYou must have at least one of these scopes: \u0027subledger.read, accounting.read\u0027.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.subledger_accounts.read\u0027.",
        "operationId": "FinanceAccountsTransactionsGet",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "propertyId",
            "description": "Filter transactions by property ID",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "reference",
            "description": "Filter transactions by reference",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "referenceType",
            "description": "Filter transactions by reference type",
            "type": "string",
            "enum": [
              "House",
              "Guest",
              "External",
              "Booking"
            ]
          },
          {
            "in": "query",
            "name": "accountingSchema",
            "description": "Allows to override the default accounting schema",
            "type": "string",
            "enum": [
              "Simple",
              "Extended"
            ]
          },
          {
            "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/PageableAccountingTransactionListModel"
            }
          },
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "The Request-URI could not be found."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "You are unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "499": {
            "description": "Client closed request."
          },
          "500": {
            "description": "An unexpected error occurred."
          },
          "503": {
            "description": "The server is currently unavailable. Please try later."
          },
          "422": {
            "description": "Validation errors in the request body or query params.",
            "schema": {
              "$ref": "#/definitions/MessageItemCollection"
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "subledger.read",
              "accounting.read",
              "admin"
            ]
          }
        ]
      }
    },
    "/finance/v0-nsfw/types/currencies": {
      "get": {
        "tags": [
          "Types"
        ],
        "summary": "Returns a list of all currencies.",
        "description": "Returns a list of all currencies.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.types.read\u0027.",
        "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/v0-nsfw/types/payment-methods": {
      "get": {
        "tags": [
          "Types"
        ],
        "summary": "Returns a list of all supported payment methods.",
        "description": "Returns a list of all supported payment methods.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.types.read\u0027.",
        "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/v0-nsfw/types/service-types": {
      "get": {
        "tags": [
          "Types"
        ],
        "summary": "Returns a list of all supported service types.",
        "description": "Returns a list of all supported service types.\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.types.read\u0027.",
        "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/v0-nsfw/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)\u003Cbr\u003EFor fine-grained clients, you must have this permission: \u0027core.types.read\u0027.",
        "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 only the VAT types that are in place for this specific date.\nIf nothing specified, returns all VAT types that existed and will exist for the country.",
            "type": "string",
            "format": "date"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/VatInfoRangeListModel"
            }
          },
          "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-11-02T23:52:30.0125986Z",
            "date": "2026-11-02",
            "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 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",
            "FullOnlineRefund"
          ]
        },
        "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"
        ]
      }
    },
    "AddedDepositItemModel": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the newly created deposit item."
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "1234"
      }
    },
    "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 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
        },
        "revenueAllocation": {
          "type": "array",
          "description": "Revenue allocation for this allowance.",
          "items": {
            "$ref": "#/definitions/FolioItemRevenueAllocationModel"
          },
          "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
    },
    "BookingInfoModel": {
      "type": "object",
      "required": [
        "bookerName",
        "bookingId",
        "reservationsNumber"
      ],
      "properties": {
        "bookingId": {
          "type": "string",
          "description": "ID of the booking this invoice is for, if any.",
          "minLength": 1
        },
        "bookingName": {
          "type": "string",
          "description": "Name of the booking.",
          "x-nullable": true
        },
        "bookerName": {
          "type": "string",
          "description": "Full name of the booker",
          "minLength": 1
        },
        "reservationsNumber": {
          "type": "integer",
          "description": "Number of reservations",
          "format": "int32"
        },
        "firstArrivalDate": {
          "type": "string",
          "description": "The first reservation arrival date",
          "format": "date",
          "example": "2020-10-10",
          "x-nullable": true
        },
        "lastDepartureDate": {
          "type": "string",
          "description": "The last reservation departure date",
          "format": "date",
          "example": "2020-10-10",
          "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 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 subaccount the charge has been posted to",
          "x-nullable": true
        },
        "serviceId": {
          "type": "string",
          "description": "The ID of the service which might be:\n- The service used as a reference when creating a charge.\n- The additional service to which the charge is applied.\n- The included service for which the charge is added.\nNote: the ID of the service is only for reference purposes and is not equivalent to booking a service!\nThus, it wouldn\u0027t impact the service quota and any other related metrics.",
          "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"
          ]
        },
        "revenueAllocation": {
          "type": "array",
          "description": "Revenue allocation for this charge.",
          "items": {
            "$ref": "#/definitions/FolioItemRevenueAllocationModel"
          },
          "x-nullable": true
        }
      },
      "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
    },
    "CommitInvoiceRequest": {
      "type": "object",
      "required": [
        "fiscalNumber"
      ],
      "properties": {
        "fiscalNumber": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false,
      "example": {
        "fiscalNumber": "00001646/A"
      }
    },
    "CommitPaymentModel": {
      "type": "object",
      "required": [
        "paymentMethod",
        "pspReference"
      ],
      "properties": {
        "pspReference": {
          "type": "string",
          "description": "The id of the payment from the payment service provider",
          "minLength": 1
        },
        "paymentMethod": {
          "type": "string",
          "description": "Payment method this payment was processed with",
          "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"
          ]
        },
        "refundActionAllowed": {
          "type": "string",
          "enum": [
            "None",
            "Online",
            "Manual",
            "OnlyFull"
          ],
          "x-nullable": true
        },
        "capturedAmount": {
          "$ref": "#/definitions/MonetaryValueModel"
        }
      },
      "additionalProperties": false,
      "example": {
        "pspReference": "4325816867241937",
        "paymentMethod": "VisaCredit",
        "refundActionAllowed": "Online",
        "capturedAmount": {
          "amount": 210.0,
          "currency": "EUR"
        }
      }
    },
    "CommitRefundModel": {
      "type": "object",
      "required": [
        "pspReference"
      ],
      "properties": {
        "pspReference": {
          "type": "string",
          "description": "The id of the refund transaction from the payment service provider",
          "minLength": 1
        }
      },
      "additionalProperties": false,
      "example": {
        "pspReference": "4325816867241937"
      }
    },
    "CompanyIdentifierModel": {
      "type": "object",
      "required": [
        "scheme",
        "value"
      ],
      "properties": {
        "scheme": {
          "type": "string",
          "description": "The identifier scheme (must exist in the company identifier-scheme registry).",
          "maxLength": 50,
          "minLength": 1
        },
        "value": {
          "type": "string",
          "description": "The identifier value for the scheme.",
          "maxLength": 50,
          "minLength": 1
        }
      },
      "additionalProperties": false
    },
    "CompanyInfoModel": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "type": {
          "type": "string",
          "description": "The type of the company. Copied from the linked company when the company is attached to the folio.",
          "enum": [
            "CorporateClient",
            "GovernmentBuyer"
          ],
          "x-nullable": true
        },
        "identifiers": {
          "type": "array",
          "description": "Structured company identifiers. Copied from the linked company when the company is attached to the folio.",
          "items": {
            "$ref": "#/definitions/CompanyIdentifierModel"
          },
          "x-nullable": true
        },
        "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
          }
        ]
      }
    },
    "CreateAdvanceInvoicePdfRequest": {
      "type": "object",
      "required": [
        "chargeIds",
        "folioId",
        "languageCode",
        "paymentIds"
      ],
      "properties": {
        "folioId": {
          "type": "string",
          "description": "The ID of the folio for which the advance invoice should be created."
        },
        "languageCode": {
          "type": "string",
          "description": "The language in which the advance invoice should be produced."
        },
        "chargeIds": {
          "type": "array",
          "description": "The filter for charges",
          "items": {
            "type": "string"
          }
        },
        "paymentIds": {
          "type": "array",
          "description": "The filter for payments",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false,
      "example": {
        "folioId": "HBCXQZ-1",
        "languageCode": "en",
        "chargeIds": [
          "HBCXQZ-1-C-1"
        ],
        "paymentIds": [
          "HBCXQZ-1-C-1"
        ]
      }
    },
    "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",
        "serviceType"
      ],
      "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. Ignored if ServiceId is provided.",
          "enum": [
            "Null",
            "VeryReduced",
            "Reduced",
            "Normal",
            "Without",
            "Special",
            "Special1",
            "Special2",
            "ReducedCovid19",
            "NormalCovid19",
            "Mixed"
          ],
          "x-nullable": true
        },
        "subAccountId": {
          "type": "string",
          "description": "ID of the custom sub-account to post the charge to, used by accounting to determine the correct revenue account. Ignored if ServiceId is provided.",
          "x-nullable": true
        },
        "serviceId": {
          "type": "string",
          "description": "The serviceId is used only as a template for posting a charge and is not equivalent to booking a service on the reservation.\nTherefore, it does not affect service quotas or any related metrics.",
          "x-nullable": true
        },
        "name": {
          "type": "string",
          "description": "The name, article number, or other description of this charge",
          "x-nullable": true
        },
        "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
          }
        ]
      }
    },
    "CreateDepositInvoiceRequest": {
      "type": "object",
      "required": [
        "depositEntryId",
        "languageCode"
      ],
      "properties": {
        "depositEntryId": {
          "type": "string",
          "description": "The ID of the deposit entry to issue a deposit invoice for."
        },
        "languageCode": {
          "type": "string",
          "description": "The language in which the deposit invoice should be produced."
        }
      },
      "additionalProperties": false,
      "example": {
        "depositEntryId": "DEPE-MUC-ABCDEF-1",
        "languageCode": "en"
      }
    },
    "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
        },
        "bookingId": {
          "type": "string",
          "description": "The ID of the booking for which a booking 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",
            "Booking"
          ],
          "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": {
            "type": "GovernmentBuyer",
            "identifiers": [
              {
                "scheme": "PEPPOL:0204",
                "value": "991-12345-37"
              }
            ],
            "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-11-02",
        "reason": "Refund for the cancelled service"
      }
    },
    "CreateInvoiceRequest": {
      "type": "object",
      "required": [
        "folioId",
        "languageCode"
      ],
      "properties": {
        "lineItemGrouping": {
          "type": "string",
          "description": "The line item grouping type to be applied to the invoice being created.",
          "enum": [
            "NoGrouping",
            "ByCharge",
            "ByRatePlanDetailed",
            "ByRatePlanSimplified",
            "ByReceipt"
          ],
          "x-nullable": true
        },
        "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": {
        "lineItemGrouping": "NoGrouping",
        "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
    },
    "CreateOrUpdateDepositItemModel": {
      "type": "object",
      "required": [
        "amount",
        "name"
      ],
      "properties": {
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "serviceDate": {
          "type": "string",
          "description": "The date the service is expected to be provided",
          "format": "date",
          "example": "2020-10-10"
        },
        "name": {
          "type": "object",
          "description": "Names of the deposit item in different languages.",
          "additionalProperties": {
            "type": "string",
            "x-nullable": true
          }
        },
        "vatType": {
          "type": "string",
          "description": "The VAT type of the service to be provided",
          "enum": [
            "Null",
            "VeryReduced",
            "Reduced",
            "Normal",
            "Without",
            "Special",
            "Special1",
            "Special2",
            "ReducedCovid19",
            "NormalCovid19",
            "Mixed"
          ]
        },
        "quantity": {
          "type": "integer",
          "description": "The quantity of provided services",
          "format": "int32",
          "maximum": 2147483647,
          "minimum": 1
        }
      },
      "additionalProperties": false,
      "example": {
        "amount": {
          "amount": 10.0,
          "currency": "EUR"
        },
        "serviceDate": "2026-11-02",
        "name": {
          "en": "Parking slot",
          "de": "Parkplatz"
        },
        "vatType": "Normal",
        "quantity": 1
      }
    },
    "CreatePaymentLinkRequest": {
      "type": "object",
      "required": [
        "amount",
        "countryCode",
        "expiresAt"
      ],
      "properties": {
        "expiresAt": {
          "type": "string",
          "description": "The date that the link expires\u003Cbr /\u003EA date and time 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-11-04T23:52:29.9182063Z",
        "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-11-02",
        "reason": "Refund for the cancelled service"
      }
    },
    "CreateProformaInvoicePdfRequest": {
      "type": "object",
      "required": [
        "chargeIds",
        "folioId",
        "languageCode"
      ],
      "properties": {
        "folioId": {
          "type": "string",
          "description": "The ID of the folio for which the pro-forma invoice should be created."
        },
        "languageCode": {
          "type": "string",
          "description": "The language in which the pro-forma invoice should be produced."
        },
        "chargeIds": {
          "type": "array",
          "description": "The filter for charges",
          "items": {
            "type": "string"
          }
        },
        "paymentIds": {
          "type": "array",
          "description": "The filter for payments",
          "items": {
            "type": "string"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "folioId": "HBCXQZ-1",
        "languageCode": "en",
        "chargeIds": [
          "HBCXQZ-1-C-1"
        ],
        "paymentIds": [
          "HBCXQZ-1-C-1"
        ]
      }
    },
    "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
        },
        "askForTip": {
          "type": "boolean",
          "description": "When true, the terminal prompts for a tip. Defaults to false when omitted."
        },
        "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",
        "askForTip": false,
        "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"
        ]
      }
    },
    "DateRangeModel": {
      "type": "object",
      "required": [
        "end",
        "start"
      ],
      "properties": {
        "start": {
          "type": "string",
          "description": "Specifies the start date of a date range.",
          "format": "date",
          "example": "2020-10-10"
        },
        "end": {
          "type": "string",
          "description": "Specifies the end date of a date range.",
          "format": "date",
          "example": "2020-10-10"
        }
      },
      "additionalProperties": false
    },
    "DepositContainerModel": {
      "type": "object",
      "required": [
        "currency",
        "id",
        "propertyId",
        "remaining",
        "reservationId"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The id of the deposit container."
        },
        "reservationId": {
          "type": "string",
          "description": "The id of the reservation this container belongs to."
        },
        "propertyId": {
          "type": "string",
          "description": "The id of the property."
        },
        "currency": {
          "type": "string",
          "description": "The currency of the container remaining amount."
        },
        "remaining": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "entries": {
          "type": "array",
          "description": "The deposit entries of this container.",
          "items": {
            "$ref": "#/definitions/DepositEntryModel"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "DEPC-MUC-ABCDEF",
        "reservationId": "ABCDEF",
        "propertyId": "MUC",
        "currency": "EUR",
        "remaining": {
          "amount": 0.0,
          "currency": "EUR"
        },
        "entries": []
      }
    },
    "DepositEntryModel": {
      "type": "object",
      "required": [
        "amount",
        "created",
        "id",
        "remaining",
        "sourceFolioId",
        "sourcePaymentId",
        "vatAllocation"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The id of the deposit entry."
        },
        "sourcePaymentId": {
          "type": "string",
          "description": "The id of the payment that created this entry."
        },
        "sourceFolioId": {
          "type": "string",
          "description": "The id of the folio the source payment was posted to."
        },
        "amount": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "remaining": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "vatAllocation": {
          "type": "array",
          "description": "The VAT snapshot stored with the entry.",
          "items": {
            "$ref": "#/definitions/DepositEntryVatAllocationModel"
          }
        },
        "invoiceIds": {
          "type": "array",
          "description": "The ids of issued deposit invoices for this entry. Not set until an invoice has been issued.",
          "items": {
            "type": "string"
          },
          "x-nullable": true
        },
        "latestInvoiceId": {
          "type": "string",
          "description": "The invoice to download when AllowedDepositEntryAction.DownloadInvoice is allowed.\nIt is the latest active deposit document. Not set otherwise.",
          "x-nullable": true
        },
        "allowedActions": {
          "type": "array",
          "description": "Depending on the state of the deposit entry, certain actions are allowed or not.\nThis list includes all actions you can perform on this deposit entry.",
          "items": {
            "type": "string",
            "enum": [
              "CreateInvoice",
              "DownloadInvoice"
            ]
          },
          "x-nullable": true
        },
        "created": {
          "type": "string",
          "description": "Date and time of creation.\u003Cbr /\u003EA date and time 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"
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "DEPE-MUC-ABCDEF-1",
        "sourcePaymentId": "PAY-MUC-1",
        "sourceFolioId": "MUC-ABCDEF-1",
        "amount": {
          "amount": 500.0,
          "currency": "EUR"
        },
        "remaining": {
          "amount": 500.0,
          "currency": "EUR"
        },
        "vatAllocation": [
          {
            "vatType": "Normal",
            "vatPercent": 19.0,
            "grossAmount": 425.0,
            "netAmount": 357.14,
            "name": "Deposit \u2014 19% VAT"
          }
        ],
        "allowedActions": [
          "CreateInvoice"
        ],
        "created": "2026-11-02T10:02:51.646497\u002B01:00"
      }
    },
    "DepositEntryVatAllocationModel": {
      "type": "object",
      "required": [
        "grossAmount",
        "name",
        "netAmount",
        "vatPercent",
        "vatType"
      ],
      "properties": {
        "vatType": {
          "type": "string",
          "description": "The VAT type of this allocation.",
          "enum": [
            "Null",
            "VeryReduced",
            "Reduced",
            "Normal",
            "Without",
            "Special",
            "Special1",
            "Special2",
            "ReducedCovid19",
            "NormalCovid19",
            "Mixed"
          ]
        },
        "vatPercent": {
          "type": "number",
          "description": "The VAT percent of this allocation.",
          "format": "double"
        },
        "grossAmount": {
          "type": "number",
          "description": "The gross amount of this allocation.",
          "format": "double"
        },
        "netAmount": {
          "type": "number",
          "description": "The net amount of this allocation.",
          "format": "double"
        },
        "name": {
          "type": "string",
          "description": "The name of the allocation, localized using the Accept-Language header.",
          "minLength": 1
        }
      },
      "additionalProperties": false,
      "example": {
        "vatType": "Normal",
        "vatPercent": 19.0,
        "grossAmount": 425.0,
        "netAmount": 357.14,
        "name": "Deposit \u2014 19% VAT"
      }
    },
    "DepositItemModel": {
      "type": "object",
      "required": [
        "amount",
        "created",
        "id",
        "serviceDate",
        "updated"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the deposit",
          "minLength": 1
        },
        "created": {
          "type": "string",
          "description": "The deposit item was created\u003Cbr /\u003EA date and time 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": "The deposit item was updated last time\u003Cbr /\u003EA date and time 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"
        },
        "serviceDate": {
          "type": "string",
          "description": "The date the service is expected to be provided",
          "format": "date",
          "example": "2020-10-10"
        },
        "quantity": {
          "type": "integer",
          "description": "The quantity of provided services",
          "format": "int32"
        },
        "amount": {
          "$ref": "#/definitions/AmountModel"
        },
        "name": {
          "type": "object",
          "description": "Names of the deposit item in different languages.",
          "additionalProperties": {
            "type": "string",
            "x-nullable": true
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "CHFGDSD-PROP-1-DI-1",
        "created": "2026-11-02T23:52:29.8198197Z",
        "updated": "2026-11-02T23:52:29.8198213Z",
        "serviceDate": "2026-11-02",
        "quantity": 5,
        "amount": {
          "grossAmount": 100.0,
          "netAmount": 91.0,
          "vatType": "Normal",
          "vatPercent": 9.0,
          "currency": "EUR"
        }
      }
    },
    "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 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-11-02T23:52:30.0172303Z",
            "date": "2026-11-02",
            "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-11-02T23:52:30.0172334Z",
            "date": "2026-11-02",
            "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"
          }
        ]
      }
    },
    "ExtendedFinanceAccountModel": {
      "type": "object",
      "required": [
        "accountNumber",
        "hasChildren",
        "isArchived",
        "name",
        "type"
      ],
      "properties": {
        "debitedAmount": {
          "$ref": "#/definitions/PreciseMonetaryValueModel"
        },
        "creditedAmount": {
          "$ref": "#/definitions/PreciseMonetaryValueModel"
        },
        "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-11-02T08:02:51.646497\u002B01:00",
            "date": "2026-11-02",
            "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-11-02T09:02:51.646497\u002B01:00",
            "date": "2026-11-02",
            "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"
          }
        ]
      }
    },
    "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
    },
    "FailInvoiceRequest": {
      "type": "object",
      "properties": {
        "fiscalNumber": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "fiscalNumber": "00001646/A"
      }
    },
    "FailPaymentModel": {
      "type": "object",
      "properties": {
        "failureReason": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "failureReason": "Timeout during PIN entry"
      }
    },
    "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
      }
    },
    "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 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 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",
              "DepositNotInvoiced"
            ]
          },
          "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",
              "CreateDepositInvoice"
            ]
          },
          "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"
          ]
        },
        "depositItems": {
          "type": "array",
          "description": "The list of deposit items",
          "items": {
            "$ref": "#/definitions/DepositItemModel"
          },
          "x-nullable": true
        },
        "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
    },
    "FolioItemRevenueAllocationModel": {
      "type": "object",
      "required": [
        "amount",
        "percent"
      ],
      "properties": {
        "amount": {
          "$ref": "#/definitions/AmountModel"
        },
        "subAccountId": {
          "type": "string",
          "description": "ID of the custom subaccount",
          "x-nullable": true
        },
        "percent": {
          "type": "integer",
          "description": "The percentage of revenue allocated to the VAT type",
          "format": "int32"
        }
      },
      "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-10-03",
            "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 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 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"
        },
        "depositItems": {
          "type": "array",
          "description": "The list of deposit items",
          "items": {
            "$ref": "#/definitions/DepositItemModel"
          },
          "x-nullable": true
        },
        "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",
              "DepositNotInvoiced"
            ]
          },
          "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",
              "CreateDepositInvoice"
            ]
          },
          "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": {
            "type": "GovernmentBuyer",
            "identifiers": [
              {
                "scheme": "PEPPOL:0204",
                "value": "991-12345-37"
              }
            ],
            "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": 14.04,
              "netAmount": 12.0,
              "vatType": "Mixed",
              "vatPercent": -1.0,
              "currency": "EUR"
            },
            "subAccountId": "MUC-REST",
            "serviceId": "MUC-REST",
            "quantity": 0,
            "type": "Direct",
            "revenueAllocation": [
              {
                "amount": {
                  "grossAmount": 11.9,
                  "netAmount": 10.0,
                  "vatType": "Normal",
                  "vatPercent": 19.0,
                  "currency": "EUR"
                },
                "subAccountId": "MUC-REST",
                "percent": 50
              },
              {
                "amount": {
                  "grossAmount": 2.14,
                  "netAmount": 2.0,
                  "vatType": "Reduced",
                  "vatPercent": 7.0,
                  "currency": "EUR"
                },
                "percent": 50
              }
            ]
          }
        ],
        "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": 14.04,
              "netAmount": 12.0,
              "vatType": "Mixed",
              "vatPercent": -1.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",
            "revenueAllocation": [
              {
                "amount": {
                  "grossAmount": 11.9,
                  "netAmount": 10.0,
                  "vatType": "Normal",
                  "vatPercent": 19.0,
                  "currency": "EUR"
                },
                "subAccountId": "MUC-REST",
                "percent": 50
              },
              {
                "amount": {
                  "grossAmount": 2.14,
                  "netAmount": 2.0,
                  "vatType": "Reduced",
                  "vatPercent": 7.0,
                  "currency": "EUR"
                },
                "percent": 50
              }
            ]
          }
        ],
        "balance": {
          "amount": 57.0,
          "currency": "EUR"
        },
        "checkedOutOnAccountsReceivable": false,
        "isMainFolio": true,
        "isEmpty": false,
        "allowedActions": [
          "AddCharge",
          "AddPayment",
          "Close"
        ],
        "allowedPayment": 45.1,
        "maximumAllowance": 20.0,
        "status": "Open"
      }
    },
    "FolioPaidChargeListModel": {
      "type": "object",
      "properties": {
        "paidCharges": {
          "type": "array",
          "description": "List of paid charges.",
          "items": {
            "$ref": "#/definitions/FolioPaidChargeModel"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "paidCharges": [
          {
            "chargeId": "IDDQD-1",
            "amount": 10.0,
            "paymentId": "IDKFA"
          },
          {
            "chargeId": "IDDQD-1",
            "amount": 20.0,
            "paymentId": "IDCLIP"
          },
          {
            "chargeId": "IDDQD-2",
            "amount": 30.0,
            "paymentId": "IDCLIP"
          }
        ]
      }
    },
    "FolioPaidChargeModel": {
      "type": "object",
      "required": [
        "amount",
        "chargeId",
        "paymentId"
      ],
      "properties": {
        "chargeId": {
          "type": "string",
          "description": "The ID of the charge"
        },
        "amount": {
          "type": "number",
          "description": "The amount the charge is paid by this payment",
          "format": "double"
        },
        "paymentId": {
          "type": "string",
          "description": "The ID of the payment"
        }
      },
      "additionalProperties": false
    },
    "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 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 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"
      }
    },
    "InvoiceCreatedModel": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The invoice id"
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "MUC_201705070000012"
      }
    },
    "InvoiceGroupedLineItemModel": {
      "type": "object",
      "required": [
        "date",
        "dateRange",
        "description",
        "grossPrice",
        "id",
        "vatDetails"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The id of the line item",
          "minLength": 1
        },
        "date": {
          "type": "string",
          "description": "The date on which this line item is delivered",
          "format": "date",
          "example": "2020-10-10"
        },
        "dateRange": {
          "$ref": "#/definitions/DateRangeModel"
        },
        "description": {
          "type": "string",
          "description": "The description of the line item",
          "minLength": 1
        },
        "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
        },
        "sourceLineItemId": {
          "type": "string",
          "description": "The id of the source line item (for allowances and split charges)",
          "x-nullable": true
        },
        "grossPrice": {
          "$ref": "#/definitions/MonetaryValueModel"
        },
        "vatDetails": {
          "$ref": "#/definitions/VatInfoModel"
        },
        "serviceType": {
          "type": "string",
          "description": "The type of the service",
          "enum": [
            "Other",
            "Accommodation",
            "FoodAndBeverages",
            "CancellationFees",
            "NoShow",
            "CityTax",
            "SecondCityTax",
            "LocalTax",
            "ConsumptionTax"
          ],
          "x-nullable": true
        },
        "serviceId": {
          "type": "string",
          "description": "The ID of the service which might be:\n- The service used as a reference when creating a charge which is lately used to create the invoice line item.\n- The additional service to which the charge is applied.\n- The included service for which the charge is added.",
          "x-nullable": true
        },
        "quantity": {
          "type": "integer",
          "description": "The count of services provided",
          "format": "int32"
        }
      },
      "additionalProperties": false
    },
    "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",
            "Deposit",
            "DepositCancellation",
            "DepositCorrection"
          ]
        },
        "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 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
    },
    "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-11-01T10:02:51.646497\u002B01: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-11-01T10:02:51.646497\u002B01: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-11-02T08:02:51.646497\u002B01: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-11-02T08:02:51.646497\u002B01: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-11-02T07:02:51.646497\u002B01:00",
            "guestName": "Yury Vlasov"
          }
        ],
        "count": 5
      }
    },
    "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 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-11-02T09:02:51.646497\u002B01:00",
        "businessDate": "1984-06-07"
      }
    },
    "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
    },
    "PageableAccountingTransactionListModel": {
      "type": "object",
      "required": [
        "count",
        "transactions"
      ],
      "properties": {
        "transactions": {
          "type": "array",
          "description": "The list of transactions",
          "items": {
            "$ref": "#/definitions/AccountingTransactionModel"
          }
        },
        "count": {
          "type": "integer",
          "description": "Total count of items",
          "format": "int64"
        }
      },
      "additionalProperties": false,
      "example": {
        "transactions": [
          {
            "timestamp": "2026-11-02T23:52:30.0344831Z",
            "date": "2026-11-02",
            "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"
          }
        ],
        "count": 282
      }
    },
    "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 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
    },
    "PrepaymentNoticeRequest": {
      "type": "object",
      "required": [
        "chargeIds",
        "folioId",
        "languageCode"
      ],
      "properties": {
        "folioId": {
          "type": "string",
          "description": "The folio id"
        },
        "chargeIds": {
          "type": "array",
          "description": "The ids of the charges to consider",
          "items": {
            "type": "string"
          }
        },
        "languageCode": {
          "type": "string",
          "description": "The language in which the document should be produced"
        }
      },
      "additionalProperties": false
    },
    "ProblemDetails": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "x-nullable": true
        },
        "title": {
          "type": "string",
          "x-nullable": true
        },
        "status": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true
        },
        "detail": {
          "type": "string",
          "x-nullable": true
        },
        "instance": {
          "type": "string",
          "x-nullable": true
        }
      }
    },
    "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
    },
    "RefundFailModel": {
      "type": "object",
      "properties": {
        "failureReason": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "failureReason": "Insufficient fund in process."
      }
    },
    "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-11-02T10:02:51.646497\u002B01:00",
            "sourcePaymentId": "MUC-KSJHDF",
            "status": "Failure",
            "failureReason": "Can\u0027t refund more than original payment.",
            "failureCode": "Failed",
            "businessDate": "2026-11-02",
            "reason": "Refund for the cancelled service"
          },
          {
            "id": "BER-12454",
            "method": "CreditCard",
            "amount": {
              "amount": 220.0,
              "currency": "EUR"
            },
            "refundDate": "2026-11-02T10:02:51.646497\u002B01:00",
            "sourcePaymentId": "BER-UWNWFD",
            "status": "Pending",
            "businessDate": "2026-11-02",
            "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 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-11-02T10:02:51.646497\u002B01:00",
        "status": "Pending",
        "businessDate": "2026-11-02",
        "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"
      }
    },
    "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
    },
    "TaxRemittanceDetailsModel": {
      "type": "object",
      "properties": {
        "channelName": {
          "type": "string",
          "description": "The channel name i.e. Booking.com, Expedia, etc.",
          "x-nullable": true
        },
        "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 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
    },
    "UnstableIncludedLineItemModel": {
      "type": "object",
      "required": [
        "id",
        "price"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The id of the included line item",
          "minLength": 1
        },
        "description": {
          "type": "string",
          "description": "The description of the item or service",
          "x-nullable": true
        },
        "createdInFolio": {
          "type": "string",
          "description": "The time when the corresponding charge was added to the folio\u003Cbr /\u003EA date and time 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
        },
        "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
        },
        "serviceType": {
          "type": "string",
          "description": "The type of the service",
          "enum": [
            "Other",
            "Accommodation",
            "FoodAndBeverages",
            "CancellationFees",
            "NoShow",
            "CityTax",
            "SecondCityTax",
            "LocalTax",
            "ConsumptionTax"
          ],
          "x-nullable": true
        },
        "serviceId": {
          "type": "string",
          "description": "The ID of the service which might be:\n- The service used as a reference when creating a charge which is lately used to create the invoice line item.\n- The additional service to which the charge is applied.\n- The included service for which the charge is added.",
          "x-nullable": true
        },
        "productId": {
          "type": "string",
          "description": "The code which is used to identify service within fiscalization provider.\nCalculated property",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "UnstableInvoiceLineItemModel": {
      "type": "object",
      "required": [
        "date",
        "dateRange",
        "description",
        "id",
        "isNoShowFee",
        "price"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The id of the line item",
          "minLength": 1
        },
        "serviceType": {
          "type": "string",
          "description": "The type of the service",
          "enum": [
            "Other",
            "Accommodation",
            "FoodAndBeverages",
            "CancellationFees",
            "NoShow",
            "CityTax",
            "SecondCityTax",
            "LocalTax",
            "ConsumptionTax"
          ],
          "x-nullable": true
        },
        "productType": {
          "type": "string",
          "description": "The product type of this line item.\nSome jurisdictions require specifying the type of offering the line item represents.",
          "enum": [
            "Service",
            "Goods"
          ],
          "x-nullable": true
        },
        "serviceId": {
          "type": "string",
          "description": "The ID of the service which might be:\n- The service used as a reference when creating a charge which is lately used to create the invoice line item.\n- The additional service to which the charge is applied.\n- The included service for which the charge is added.",
          "x-nullable": true
        },
        "productId": {
          "type": "string",
          "description": "The code which is used to identify service within fiscalization provider.\nCalculated property",
          "x-nullable": true
        },
        "date": {
          "type": "string",
          "description": "The date on which this item or service is delivered",
          "format": "date",
          "example": "2020-10-10"
        },
        "createdInFolio": {
          "type": "string",
          "description": "The time when the corresponding charge was added to the folio\u003Cbr /\u003EA date and time 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
        },
        "dateRange": {
          "$ref": "#/definitions/DateRangeModel"
        },
        "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/UnstableIncludedLineItemModel"
          },
          "x-nullable": true
        },
        "groupedLineItems": {
          "type": "array",
          "description": "A list of line items that are grouped together when the line item was created from multiple items.",
          "items": {
            "$ref": "#/definitions/InvoiceGroupedLineItemModel"
          },
          "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
        },
        "sourceLineItemId": {
          "type": "string",
          "description": "The id of the source line item (for allowances and split charges)",
          "x-nullable": true
        },
        "quantity": {
          "type": "integer",
          "description": "The count of services provided",
          "format": "int32",
          "x-nullable": true
        },
        "type": {
          "type": "string",
          "description": "The type of the invoice line item.",
          "enum": [
            "Charge",
            "Allowance",
            "TransitoryCharge",
            "DepositDeduction"
          ]
        },
        "depositEntryId": {
          "type": "string",
          "description": "The deposit entry this deduction line refers to. Set only for deposit deductions.",
          "x-nullable": true
        },
        "sourceDepositInvoiceId": {
          "type": "string",
          "description": "The deposit invoice that originally taxed this amount. Set only for deposit deductions.",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "UnstableInvoiceLineItemsModel": {
      "type": "object",
      "required": [
        "subTotal"
      ],
      "properties": {
        "lineItems": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/UnstableInvoiceLineItemModel"
          },
          "x-nullable": true
        },
        "lineItemGrouping": {
          "type": "string",
          "description": "Grouping type used to group the line items in the invoice",
          "enum": [
            "NoGrouping",
            "ByCharge",
            "ByRatePlanDetailed",
            "ByRatePlanSimplified",
            "ByReceipt"
          ]
        },
        "subTotal": {
          "$ref": "#/definitions/MonetaryValueModel"
        }
      },
      "additionalProperties": false
    },
    "UnstableInvoiceModel": {
      "type": "object",
      "required": [
        "commercialInformation",
        "created",
        "folioId",
        "from",
        "id",
        "invoiceDate",
        "languageCode",
        "lineItems",
        "number",
        "paymentSettled",
        "processingStatus",
        "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",
            "Deposit",
            "DepositCancellation",
            "DepositCorrection"
          ]
        },
        "series": {
          "type": "string",
          "description": "Invoice number series",
          "x-nullable": true
        },
        "to": {
          "$ref": "#/definitions/UnstableInvoiceRecipientModel"
        },
        "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"
          ]
        },
        "processingStatus": {
          "type": "string",
          "description": "Processing status of the invoice",
          "enum": [
            "Pending",
            "Success",
            "Failure"
          ]
        },
        "created": {
          "type": "string",
          "description": "Date of creation\u003Cbr /\u003EA date and time 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
        },
        "relatedInvoiceId": {
          "type": "string",
          "description": "If the invoice is related to another invoice, this field contains related invoice id\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/UnstableInvoiceLineItemsModel"
        },
        "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/UnstableStayInfoModel"
        },
        "bookingInfo": {
          "$ref": "#/definitions/BookingInfoModel"
        },
        "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"
        },
        "taxRemittanceDetails": {
          "$ref": "#/definitions/TaxRemittanceDetailsModel"
        }
      },
      "additionalProperties": false,
      "example": {
        "id": "INVOICE-SGZLTBJC-1",
        "number": "MUC_20190328000000228",
        "type": "Initial",
        "series": "INV0000200",
        "to": {
          "name": "John D. Doe",
          "phone": "123456789",
          "address": {
            "addressLine1": "Baker Street 7",
            "postalCode": "10005",
            "city": "London",
            "countryCode": "GB"
          },
          "companyName": "Investigators Inc.",
          "companyTaxId": "GB-3358791",
          "companyAdditionalTaxId": "AD-TAX-24256432",
          "companyAdditionalTaxId2": "AD2-TAX-24256432",
          "companyInvoiceNetworkIdentity": {
            "network": "Peppol",
            "id": "0208:123456789"
          },
          "companyType": "GovernmentBuyer",
          "companyIdentifiers": [
            {
              "scheme": "PEPPOL:0204",
              "value": "991-12345-37"
            }
          ],
          "reference": "REF-111",
          "personalTaxId": "123-321"
        },
        "paymentSettled": true,
        "status": "FullyPaid",
        "processingStatus": "Success",
        "created": "0001-01-01T00:00:00Z",
        "writeOffReason": "Weighty reason",
        "allowedActions": [
          "CorrectAddress",
          "CorrectCharges"
        ],
        "invoiceDate": "2026-11-02",
        "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": [
            {
              "id": "SGZLTBJC-TS-1",
              "serviceType": "Accommodation",
              "date": "2026-11-02",
              "description": "Double Room",
              "price": {
                "amount": 130.0,
                "currency": "EUR"
              },
              "vatType": "Reduced",
              "vatPercent": 7.0,
              "isNoShowFee": false,
              "guest": "John Doe",
              "type": "Charge"
            },
            {
              "serviceType": "Other",
              "date": "2026-11-02",
              "description": "Business Lounge Access",
              "price": {
                "amount": 40.0,
                "currency": "EUR"
              },
              "vatType": "Normal",
              "vatPercent": 19.0,
              "isNoShowFee": false,
              "guest": "John Doe",
              "type": "Charge"
            },
            {
              "id": "CHARGE-NAME-VAT-GROUP-1",
              "serviceType": "FoodAndBeverages",
              "date": "2026-11-02",
              "description": "Service Package",
              "price": {
                "amount": 40.0,
                "currency": "EUR"
              },
              "vatType": "Normal",
              "vatPercent": 19.0,
              "isNoShowFee": false,
              "groupedLineItems": [
                {
                  "id": "SGZLTBJC-TS-1-2",
                  "date": "2026-11-02",
                  "description": "Service Package",
                  "guest": "Jane Air",
                  "grossPrice": {
                    "amount": 20.0,
                    "currency": "EUR"
                  },
                  "vatDetails": {
                    "type": "Normal",
                    "percent": 19.0
                  },
                  "serviceType": "FoodAndBeverages",
                  "quantity": 1
                },
                {
                  "id": "SGZLTBJC-TS-1-3",
                  "date": "2026-11-03",
                  "description": "Service Package",
                  "guest": "Jane Air",
                  "grossPrice": {
                    "amount": 20.0,
                    "currency": "EUR"
                  },
                  "vatDetails": {
                    "type": "Normal",
                    "percent": 19.0
                  },
                  "serviceType": "FoodAndBeverages",
                  "quantity": 1
                }
              ],
              "guest": "Jane Air",
              "quantity": 2,
              "type": "Charge"
            }
          ],
          "lineItemGrouping": "ByCharge",
          "subTotal": {
            "amount": 210.0,
            "currency": "EUR"
          }
        },
        "payments": [
          {
            "id": "PAY-1",
            "method": "BankTransfer",
            "methodName": "Bank\u00FCberweisung",
            "amount": {
              "amount": 130.0,
              "currency": "EUR"
            },
            "paymentDate": "2026-11-02T10:02:51.646497\u002B01:00",
            "businessDate": "0001-01-01"
          },
          {
            "id": "PAY-2",
            "method": "Cash",
            "methodName": "Bar",
            "amount": {
              "amount": 60.0,
              "currency": "EUR"
            },
            "paymentDate": "2026-11-02T10:02:51.646497\u002B01: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": -20.0,
          "currency": "EUR"
        },
        "stayInfo": {
          "guestName": "John Doe",
          "arrivalDate": "2026-10-30",
          "departureDate": "2026-11-02",
          "reservationId": "ASTUBXVZ-1",
          "guestsNumber": 1
        },
        "bookingInfo": {
          "bookingId": "ASTUBXVZ",
          "bookerName": "John Doe",
          "reservationsNumber": 1,
          "firstArrivalDate": "2026-10-30",
          "lastDepartureDate": "2026-11-02"
        },
        "propertyId": "MUC",
        "propertyCountryCode": "DE",
        "languageCode": "EN",
        "company": {
          "id": "MUC-ACME",
          "code": "ACME",
          "name": "ACME Inc."
        }
      }
    },
    "UnstableInvoiceRecipientModel": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "x-nullable": true
        },
        "phone": {
          "type": "string",
          "x-nullable": true
        },
        "address": {
          "$ref": "#/definitions/NonStrictAddressModel"
        },
        "companyName": {
          "type": "string",
          "x-nullable": true
        },
        "companyTaxId": {
          "type": "string",
          "x-nullable": true
        },
        "companyAdditionalTaxId": {
          "type": "string",
          "x-nullable": true
        },
        "companyAdditionalTaxId2": {
          "type": "string",
          "x-nullable": true
        },
        "companyInvoiceNetworkIdentity": {
          "$ref": "#/definitions/InvoiceNetworkIdentityModel"
        },
        "companyType": {
          "type": "string",
          "enum": [
            "CorporateClient",
            "GovernmentBuyer"
          ],
          "x-nullable": true
        },
        "companyIdentifiers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CompanyIdentifierModel"
          },
          "x-nullable": true
        },
        "reference": {
          "type": "string",
          "x-nullable": true
        },
        "personalTaxId": {
          "type": "string",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "UnstablePreviewInvoiceModel": {
      "type": "object",
      "required": [
        "commercialInformation",
        "createInvoiceAction",
        "folioId",
        "from",
        "invoiceDate",
        "languageCode",
        "lineItems",
        "propertyCountryCode",
        "propertyId",
        "total"
      ],
      "properties": {
        "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"
        },
        "folioType": {
          "type": "string",
          "description": "The type of the folio this invoice was requested for",
          "enum": [
            "House",
            "Guest",
            "External",
            "Booking"
          ]
        },
        "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/UnstableInvoiceLineItemsModel"
        },
        "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/UnstableStayInfoModel"
        },
        "bookingInfo": {
          "$ref": "#/definitions/BookingInfoModel"
        },
        "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"
        },
        "to": {
          "$ref": "#/definitions/UnstableInvoiceRecipientModel"
        },
        "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"
        },
        "taxRemittanceDetails": {
          "$ref": "#/definitions/TaxRemittanceDetailsModel"
        }
      },
      "additionalProperties": false,
      "example": {
        "invoiceDate": "2026-11-02",
        "folioId": "SGZLTBJC-1",
        "folioType": "Guest",
        "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-11-02",
              "description": "Double Room",
              "price": {
                "amount": 130.0,
                "currency": "EUR"
              },
              "vatType": "Reduced",
              "vatPercent": 7.0,
              "isNoShowFee": false,
              "type": "Charge"
            },
            {
              "date": "2026-11-02",
              "description": "Service Package",
              "price": {
                "amount": 20.0,
                "currency": "EUR"
              },
              "vatType": "Normal",
              "vatPercent": 19.0,
              "isNoShowFee": false,
              "type": "Charge"
            },
            {
              "date": "2026-11-02",
              "description": "Business Lounge Access",
              "price": {
                "amount": 40.0,
                "currency": "EUR"
              },
              "vatType": "Normal",
              "vatPercent": 19.0,
              "isNoShowFee": false,
              "type": "Charge"
            }
          ],
          "lineItemGrouping": "NoGrouping",
          "subTotal": {
            "amount": 190.0,
            "currency": "EUR"
          }
        },
        "payments": [
          {
            "id": "PAY-1",
            "method": "BankTransfer",
            "methodName": "Bank\u00FCberweisung",
            "amount": {
              "amount": 130.0,
              "currency": "EUR"
            },
            "paymentDate": "2026-11-02T10:02:51.646497\u002B01:00",
            "businessDate": "0001-01-01"
          },
          {
            "id": "PAY-2",
            "method": "Cash",
            "methodName": "Bar",
            "amount": {
              "amount": 30.0,
              "currency": "EUR"
            },
            "paymentDate": "2026-11-02T10:02:51.646497\u002B01: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-10-30",
          "departureDate": "2026-11-02",
          "reservationId": "ASTUBXVZ-1",
          "roomNumber": "10001",
          "guestsNumber": 2
        },
        "bookingInfo": {
          "bookingId": "ASTUBXVZ",
          "bookerName": "John Doe",
          "reservationsNumber": 1,
          "firstArrivalDate": "2026-10-30",
          "lastDepartureDate": "2026-11-02"
        },
        "propertyId": "ID",
        "propertyCountryCode": "BY",
        "languageCode": "en",
        "to": {
          "name": "John D. Doe",
          "phone": "123456789",
          "address": {
            "addressLine1": "Baker Street 7",
            "postalCode": "10005",
            "city": "London",
            "countryCode": "GB"
          },
          "companyName": "Investigators Inc.",
          "companyTaxId": "GB-3358791",
          "companyAdditionalTaxId": "AD-TAX-24256432",
          "companyAdditionalTaxId2": "AD2-TAX-24256432",
          "companyInvoiceNetworkIdentity": {
            "network": "Peppol",
            "id": "0208:123456789"
          },
          "companyType": "GovernmentBuyer",
          "companyIdentifiers": [
            {
              "scheme": "PEPPOL:0204",
              "value": "991-12345-37"
            }
          ],
          "reference": "REF-11",
          "personalTaxId": "123-321"
        },
        "createInvoiceAction": "CreatesInvoice"
      }
    },
    "UnstableStayInfoModel": {
      "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
        },
        "guestsNumber": {
          "type": "integer",
          "description": "Number of Guests",
          "format": "int32",
          "x-nullable": true
        }
      },
      "additionalProperties": false
    },
    "VatInfoModel": {
      "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
    },
    "VatInfoRangeListModel": {
      "type": "object",
      "properties": {
        "vatTypes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/VatInfoRangeModel"
          },
          "x-nullable": true
        }
      },
      "additionalProperties": false,
      "example": {
        "vatTypes": [
          {
            "type": "Null",
            "percent": 0.0,
            "from": "0001-01-01",
            "to": "0001-01-01"
          },
          {
            "type": "Reduced",
            "percent": 7.0,
            "from": "0001-01-01",
            "to": "0001-01-01"
          },
          {
            "type": "Normal",
            "percent": 19.0,
            "from": "0001-01-01",
            "to": "0001-01-01"
          }
        ]
      }
    },
    "VatInfoRangeModel": {
      "type": "object",
      "required": [
        "from",
        "percent",
        "to",
        "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"
        },
        "from": {
          "type": "string",
          "description": "Inclusive start date of the VAT validity",
          "format": "date",
          "example": "2020-10-10"
        },
        "to": {
          "type": "string",
          "description": "Inclusive end date of the VAT validity",
          "format": "date",
          "example": "2020-10-10"
        }
      },
      "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
    },
    "WriteOffInvoiceRequest": {
      "type": "object",
      "required": [
        "reason"
      ],
      "properties": {
        "reason": {
          "type": "string",
          "description": "The reason why the open amount of the invoice is written off",
          "minLength": 1
        }
      },
      "additionalProperties": false,
      "example": {
        "reason": "Customer refuses to pay."
      }
    }
  },
  "securityDefinitions": {
    "oauth2": {
      "type": "oauth2",
      "flow": "implicit",
      "authorizationUrl": "https://identity.apaleo.com/connect/authorize",
      "scopes": {
        "admin": "Full access",
        "reservations.import": "Import reservations"
      }
    }
  },
  "tags": [
    {
      "name": "DepositContainer"
    },
    {
      "name": "Folio"
    },
    {
      "name": "FolioActions"
    },
    {
      "name": "FolioPayments"
    },
    {
      "name": "Invoice"
    },
    {
      "name": "InvoiceAction"
    },
    {
      "name": "PrepaymentNotice"
    },
    {
      "name": "Routing"
    },
    {
      "name": "SubLedger"
    },
    {
      "name": "Types"
    }
  ]
}