{
  "openapi": "3.0.4",
  "info": {
    "title": "Wint API Documentation",
    "version": "v1"
  },
  "paths": {
    "/api/Account": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "Filter account",
        "parameters": [
          {
            "name": "Name",
            "in": "query",
            "description": "Name to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "NumberList",
            "in": "query",
            "description": "List of account numbers to include",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "ExcludedAccountNumbers",
            "in": "query",
            "description": "List of accounts to exclude",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "ExactNumber",
            "in": "query",
            "description": "Account number",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "StartNumber",
            "in": "query",
            "description": "Start of account number",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "EndNumber",
            "in": "query",
            "description": "End of account number",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Active",
            "in": "query",
            "description": "Include only active accounts",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Modified",
            "in": "query",
            "description": "Include accounts modified since this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ExactAccounts",
            "in": "query",
            "description": "Account Ids",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Accounting.Account"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Accounting.Account"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Accounting.Account"
                }
              }
            }
          }
        }
      }
    },
    "/api/Account/AccountBalance/{account}": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "Get account balance",
        "parameters": [
          {
            "name": "account",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Accounting.AccountBalance"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accounting.AccountBalance"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accounting.AccountBalance"
                }
              }
            }
          }
        }
      }
    },
    "/api/Account/AccountingDoneUntil": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "Get accounting completed until: year month",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "date-time",
                  "nullable": true
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "date-time",
                  "nullable": true
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "date-time",
                  "nullable": true
                }
              }
            }
          }
        }
      }
    },
    "/api/Account/RevenueAccounts": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "The revenue accounts selectable on articles, per VAT rate: the company's\r\nHeart-configured intervals intersected with active accounts. Uses article roles\r\n(the plain account filter endpoint requires Reports/Admin, which invoice users lack).",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Accounting.RevenueAccountsResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accounting.RevenueAccountsResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accounting.RevenueAccountsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/AgingIncomingInvoice": {
      "put": {
        "tags": [
          "AgingIncomingInvoice"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AgingIncomingInvoices.AgingIncomingInvoiceUpdateInfo"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgingIncomingInvoices.AgingIncomingInvoiceUpdateInfo"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AgingIncomingInvoices.AgingIncomingInvoiceUpdateInfo"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AgingIncomingInvoices.AgingIncomingInvoiceUpdateInfo"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Article": {
      "get": {
        "tags": [
          "Article"
        ],
        "summary": "Returns a list of articles based on given article filter",
        "parameters": [
          {
            "name": "UnitId",
            "in": "query",
            "description": "Article unit id",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "UpdatedAfter",
            "in": "query",
            "description": "Articles updated after given date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Inactive",
            "in": "query",
            "description": "Whether the article is active or not.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Name",
            "in": "query",
            "description": "Article name contains this text.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EuVatProductType",
            "in": "query",
            "description": "Article has one of the EU Vat types.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/EuVatProductType"
              }
            }
          },
          {
            "name": "UnitPriceFrom",
            "in": "query",
            "description": "Article has a unit price greater than or equal to this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "UnitPriceTo",
            "in": "query",
            "description": "Article has a unit price less than or equal to this",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "TotalAmountForLastYearlyPeriodFrom",
            "in": "query",
            "description": "Article's total sales within last 12 months greater than or equal to this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "TotalAmountForLastYearlyPeriodTo",
            "in": "query",
            "description": "Article's total sales within last 12 months less than or equal to this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "TotalQuantityForLastYearlyPeriodFrom",
            "in": "query",
            "description": "Article's total quatities sold within last 12 months greater than or equal to this",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "TotalQuantityForLastYearlyPeriodTo",
            "in": "query",
            "description": "Article's total quatities sold within last 12 months less than or equal to this",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Article"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Article"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Article"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Article"
        ],
        "summary": "Creates an article based on given article data",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ArticlePost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArticlePost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ArticlePost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ArticlePost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/Article/{id}": {
      "get": {
        "tags": [
          "Article"
        ],
        "summary": "Returns a article based on given article id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Article"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Article"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Article"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Article"
        ],
        "summary": "Updates an article based on given article id and data",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ArticlePut"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArticlePut"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ArticlePut"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ArticlePut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Article"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Article/Activate/{id}": {
      "post": {
        "tags": [
          "Article"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Article/Deactivate/{id}": {
      "post": {
        "tags": [
          "Article"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Article/SearchByName": {
      "get": {
        "tags": [
          "Article"
        ],
        "parameters": [
          {
            "name": "searchName",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ArticleSearchResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ArticleSearchResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ArticleSearchResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Article/Common": {
      "get": {
        "tags": [
          "Article"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ArticleSearchResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ArticleSearchResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ArticleSearchResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Article/ImportArticles": {
      "post": {
        "tags": [
          "Article"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ArticleImportRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArticleImportRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ArticleImportRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ArticleImportRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Auth": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AuthPost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthPost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthPost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AuthPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserLoginInfo"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserLoginInfo"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserLoginInfo"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Auth"
        ],
        "summary": "Information about the current authenticated company",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Company"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Company"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Company"
                }
              }
            }
          }
        }
      }
    },
    "/api/Auth/jwt": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AuthPost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthPost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthPost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AuthPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserLoginInfo"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserLoginInfo"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserLoginInfo"
                }
              }
            }
          }
        }
      }
    },
    "/api/Auth/refresh": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "string"
              }
            },
            "application/json": {
              "schema": {
                "type": "string"
              }
            },
            "text/json": {
              "schema": {
                "type": "string"
              }
            },
            "application/*+json": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserLoginInfo"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserLoginInfo"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserLoginInfo"
                }
              }
            }
          }
        }
      }
    },
    "/api/Auth/ForgotPassword": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ForgotPassword"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ForgotPassword"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ForgotPassword"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ForgotPassword"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Auth/ResetPassword": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPassword"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPassword"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPassword"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPassword"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/BankBalance/dashboard": {
      "get": {
        "tags": [
          "BankBalance"
        ],
        "summary": "Get the bank balances to show on the dashboard.",
        "description": "One entry per bank account with a live bank connection — a camt statement feed or\r\nBankService — that the company has chosen to show. Returns an empty list when the widget\r\nis not activated for the company, when no account has a live connection, or when the user\r\nlacks the reports permission.",
        "responses": {
          "200": {
            "description": "successful operation, possibly an empty list",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BankBalance"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BankBalance"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BankBalance"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/BankBalance/settings": {
      "get": {
        "tags": [
          "BankBalance"
        ],
        "summary": "Get every account the company can show or hide in the widget.",
        "description": "Same data as the dashboard endpoint but including accounts the company has hidden, so the\r\nsettings screen can offer a toggle per account.",
        "responses": {
          "200": {
            "description": "successful operation, possibly an empty list",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BankBalance"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BankBalance"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BankBalance"
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "BankBalance"
        ],
        "summary": "Change which accounts appear in the widget.",
        "requestBody": {
          "description": "The accounts to show or hide.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/BankBalanceVisibilityPut"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/BankBalanceVisibilityPut"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/BankBalanceVisibilityPut"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/BankBalanceVisibilityPut"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation"
          },
          "400": {
            "description": "An account id the company does not have — the client should reload"
          },
          "403": {
            "description": "The widget is not activated, or the caller may not change it"
          }
        }
      }
    },
    "/api/CashReconciliation/template": {
      "get": {
        "tags": [
          "CashReconciliation"
        ],
        "summary": "Get cash reconciliation template.",
        "description": "Get the daily cash template for a company if daily cash enabled.",
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CashReconciliationTemplate"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CashReconciliationTemplate"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CashReconciliationTemplate"
                }
              }
            }
          },
          "400": {
            "description": "Daily cash is disabled for the logged in company"
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/CashReconciliation/{id}": {
      "get": {
        "tags": [
          "CashReconciliation"
        ],
        "summary": "Get cash reconciliation instance.",
        "description": "Get a specific daily cash instance for the given id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique ID for the daily cash instance.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CashReconciliationInstance"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CashReconciliationInstance"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CashReconciliationInstance"
                }
              }
            }
          },
          "400": {
            "description": "Invalid information"
          },
          "403": {
            "description": "No permission"
          }
        }
      },
      "put": {
        "tags": [
          "CashReconciliation"
        ],
        "summary": "Update cash reconciliation instance.",
        "description": "Update an existing daily cash instance with given data.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique ID for a daily cash instance.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Daily cash data to be updated.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CashReconciliationInstanceDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CashReconciliationInstanceDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CashReconciliationInstanceDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CashReconciliationInstanceDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "400": {
            "description": "Invalid information"
          },
          "403": {
            "description": "No permission"
          }
        }
      },
      "delete": {
        "tags": [
          "CashReconciliation"
        ],
        "summary": "Delete cash reconciliation instance.",
        "description": "Delete an existing daily cash instance.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the daily cash instance to be deleted.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          },
          "400": {
            "description": "Invalid information"
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/CashReconciliation/{id}/attachment/{attachmentId}": {
      "get": {
        "tags": [
          "CashReconciliation"
        ],
        "summary": "Get cash reconciliation instance attachment.",
        "description": "Get the attachment associated with a daily cash instance.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique ID for a daily cash instance.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "attachmentId",
            "in": "path",
            "description": "Unique ID for a specific attachment. If not provided, the default attachment will be returned.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CashReconciliationAttachment"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CashReconciliationAttachment"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CashReconciliationAttachment"
                }
              }
            }
          },
          "400": {
            "description": "Invalid information"
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/CashReconciliation/{id}/attachment": {
      "put": {
        "tags": [
          "CashReconciliation"
        ],
        "summary": "Update cash reconciliation instance attachment.",
        "description": "Update the attachment associated with a daily cash instance.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique ID for a daily cash instance.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "New attachment.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CashReconciliationAttachment"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CashReconciliationAttachment"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CashReconciliationAttachment"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CashReconciliationAttachment"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "400": {
            "description": "Invalid information"
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/CashReconciliation": {
      "get": {
        "tags": [
          "CashReconciliation"
        ],
        "summary": "Get cash reconciliation instance list.",
        "description": "Get all daily cash instances based on the filter.",
        "parameters": [
          {
            "name": "IncludeAll",
            "in": "query",
            "description": "Set flag to get company's all daily cash entries or logged in user's entries",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "FromDate",
            "in": "query",
            "description": "Include daily cash entries created from this date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ToDate",
            "in": "query",
            "description": "Include daily cash entries created to this date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MaxSalesAmount",
            "in": "query",
            "description": "Include daily cash entries with sales less than or equal this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MinSalesAmount",
            "in": "query",
            "description": "Include daily cash entries with sales greater than or equal this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MaxDifference",
            "in": "query",
            "description": "Include daily cash entries with difference less than or equal this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MinDifference",
            "in": "query",
            "description": "Include daily cash entries with difference greater than or equal this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "OwnerIds",
            "in": "query",
            "description": "Include daily cash entries with these owners.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "DimensionIds",
            "in": "query",
            "description": "Include daily cash entries with these dimensions.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_CashReconciliationInstanceDescriptor"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_CashReconciliationInstanceDescriptor"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_CashReconciliationInstanceDescriptor"
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      },
      "post": {
        "tags": [
          "CashReconciliation"
        ],
        "summary": "Create new daily cash instance for given data.",
        "description": "Create new daily cash instance for given data.\r\nUse TemplateItemId instead of Account number if your template has duplicate accounts.",
        "requestBody": {
          "description": "Cash reconciliation data.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CashReconciliationInstanceDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CashReconciliationInstanceDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CashReconciliationInstanceDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CashReconciliationInstanceDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "400": {
            "description": "Invalid information"
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/CashReconciliation/{id}/StateLogs": {
      "get": {
        "tags": [
          "CashReconciliation"
        ],
        "summary": "Returns a list of state logs related to given daily cash instance",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Daily cash id",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EntityStateLog"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EntityStateLog"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EntityStateLog"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/CashReconciliation/{id}/Transactions": {
      "get": {
        "tags": [
          "CashReconciliation"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Accounting.SimplifiedVoucher"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Accounting.SimplifiedVoucher"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Accounting.SimplifiedVoucher"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/CostForwarding/forwardable": {
      "get": {
        "tags": [
          "CostForwarding"
        ],
        "summary": "Costs waiting to be forwarded to a customer, oldest first, with the net amount each\r\ninvoice row is built from. Count and total for the reminder come from this same list.",
        "parameters": [
          {
            "name": "customerId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ForwardableCost"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ForwardableCost"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ForwardableCost"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/CostForwarding/receipt/{receiptId}": {
      "get": {
        "tags": [
          "CostForwarding"
        ],
        "summary": "The forwarding marking on a receipt. 204 when the receipt is not marked.",
        "parameters": [
          {
            "name": "receiptId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CostForwarding"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CostForwarding"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CostForwarding"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      },
      "put": {
        "tags": [
          "CostForwarding"
        ],
        "summary": "Mark a receipt for forwarding to a customer, or remove the marking with a null CustomerId.",
        "parameters": [
          {
            "name": "receiptId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CostForwardingPut"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CostForwardingPut"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CostForwardingPut"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CostForwardingPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/CostForwarding/incominginvoice/{incomingInvoiceId}": {
      "get": {
        "tags": [
          "CostForwarding"
        ],
        "summary": "The forwarding marking on a supplier invoice. 204 when the invoice is not marked.",
        "parameters": [
          {
            "name": "incomingInvoiceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CostForwarding"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CostForwarding"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CostForwarding"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      },
      "put": {
        "tags": [
          "CostForwarding"
        ],
        "summary": "Mark a supplier invoice for forwarding to a customer, or remove the marking with a null CustomerId.",
        "parameters": [
          {
            "name": "incomingInvoiceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CostForwardingPut"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CostForwardingPut"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CostForwardingPut"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CostForwardingPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/CostForwarding/{id}/release": {
      "post": {
        "tags": [
          "CostForwarding"
        ],
        "summary": "Make a forwarded cost available again, whatever the state of the invoice it is on.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/Currency/{currency}": {
      "get": {
        "tags": [
          "Currency"
        ],
        "summary": "Get currency exchange between SEK and other currency",
        "parameters": [
          {
            "name": "currency",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "number",
                  "format": "double"
                }
              },
              "application/json": {
                "schema": {
                  "type": "number",
                  "format": "double"
                }
              },
              "text/json": {
                "schema": {
                  "type": "number",
                  "format": "double"
                }
              }
            }
          }
        }
      }
    },
    "/api/Customer/GlnLookup": {
      "get": {
        "tags": [
          "Customer"
        ],
        "parameters": [
          {
            "name": "organisationNumber",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerGlnLookupResult"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerGlnLookupResult"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerGlnLookupResult"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          }
        }
      }
    },
    "/api/Customer": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Returns a list of customers based on given customer filter",
        "parameters": [
          {
            "name": "UpdatedAfter",
            "in": "query",
            "description": "Customers updated after given date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "OrgNumber",
            "in": "query",
            "description": "Customers orgnumber",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Name",
            "in": "query",
            "description": "Customers name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "VatNumber",
            "in": "query",
            "description": "The VAT-number of the customer. The string is case-insensitive.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "GlnNumber",
            "in": "query",
            "description": "The GLN-number of the customer. The string is case-insensitive.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Inactive",
            "in": "query",
            "description": "Whether the customer is active or not.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "RatingFrom",
            "in": "query",
            "description": "Customer Rating From",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "RatingTo",
            "in": "query",
            "description": "Customer Rating To",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "InvoiceDateFrom",
            "in": "query",
            "description": "Get summary of invoices with invoice date greater than this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "InvoiceDateTo",
            "in": "query",
            "description": "Get summary of invoices with invoice date less than this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "NumOfInvoicesFrom",
            "in": "query",
            "description": "Include customers with number of invoices greater than this",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumOfInvoicesTo",
            "in": "query",
            "description": "Include customers with number of invoices less than this",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumOfRecurringInvoicesFrom",
            "in": "query",
            "description": "Include customers with number of recurring invoices greater than this",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumOfRecurringInvoicesTo",
            "in": "query",
            "description": "Include customers with number of recurring invoices less than this",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "InvoicedAmountFrom",
            "in": "query",
            "description": "Include customers with total invoiced amount greater than this",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "InvoicedAmountTo",
            "in": "query",
            "description": "Include customers with total invoiced amount less than this",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "UnpaidAmountFrom",
            "in": "query",
            "description": "Include customers with total unpaid amount greater than this",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "UnpaidAmountTo",
            "in": "query",
            "description": "Include customers with total unpaid amount less than this",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Customer"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Customer"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Customer"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Customer"
        ],
        "summary": "Creates a customer based on given customer data",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerPost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerPost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerPost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/Customer/{id}": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Returns a customer based on given customer id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Customer"
        ],
        "summary": "Updates a customer based on given customer id and data",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerPut"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerPut"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerPut"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/Customer/SearchByName": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Return list of invoice customers based on searchString",
        "description": "For search string, you can use the format of \"Name (Organization number)\"",
        "parameters": [
          {
            "name": "searchString",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerSearchResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerSearchResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerSearchResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Customer/SearchByOrgNr": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Return list of invoice customers based on searchString",
        "parameters": [
          {
            "name": "searchString",
            "in": "query",
            "description": "A substring of an organization number",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerOrgNrSearchResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerOrgNrSearchResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerOrgNrSearchResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Customer/Common": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Return a list of top 5 common customers",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerSearchResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerSearchResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerSearchResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Customer/Search": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Return a list of customer information based on given search filter",
        "parameters": [
          {
            "name": "SearchOrgNr",
            "in": "query",
            "description": "Search by organization number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SearchName",
            "in": "query",
            "description": "Search by name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SearchCity",
            "in": "query",
            "description": "Search by city",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SearchCustomerInformationResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SearchCustomerInformationResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SearchCustomerInformationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/Customer/Rating": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Return the rating related to an organization number",
        "parameters": [
          {
            "name": "CustomerId",
            "in": "query",
            "description": "Customer Id to check Rating",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrgNr",
            "in": "query",
            "description": "Organization Number to check Rating\r\nE.g. 123456-7890",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerRating"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerRating"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerRating"
                }
              }
            }
          }
        }
      }
    },
    "/api/Customer/Activate/{id}": {
      "post": {
        "tags": [
          "Customer"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Customer/Deactivate/{id}": {
      "post": {
        "tags": [
          "Customer"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Customer/CustomerWithSameDetails": {
      "post": {
        "tags": [
          "Customer"
        ],
        "summary": "Return details of an existing customer with the same information in customer",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ExistingCustomerCheckRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExistingCustomerCheckRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ExistingCustomerCheckRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ExistingCustomerCheckRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExistingCustomerCheckResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExistingCustomerCheckResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExistingCustomerCheckResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/Customer/{id}/PenaltyInterestType": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Returns the default penalty interest type to use for a customer",
        "parameters": [
          {
            "name": "customerId",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoicePenaltyInterestType"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoicePenaltyInterestType"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoicePenaltyInterestType"
                }
              }
            }
          }
        }
      }
    },
    "/api/Customer/{id}/PenaltyInterestRate": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Returns the default penalty interest rate of the given type",
        "parameters": [
          {
            "name": "customerId",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "",
            "schema": {
              "$ref": "#/components/schemas/InvoicePenaltyInterestType"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "number",
                  "format": "double",
                  "nullable": true
                }
              },
              "application/json": {
                "schema": {
                  "type": "number",
                  "format": "double",
                  "nullable": true
                }
              },
              "text/json": {
                "schema": {
                  "type": "number",
                  "format": "double",
                  "nullable": true
                }
              }
            }
          }
        }
      }
    },
    "/api/Customer/Delete/{id}": {
      "delete": {
        "tags": [
          "Customer"
        ],
        "summary": "Delete a customer based on given id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Customer/ImportCustomers": {
      "post": {
        "tags": [
          "Customer"
        ],
        "summary": "Import customers from given request",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerImport"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerImport"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerImport"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerImport"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Declaration/SaveDeclaration": {
      "post": {
        "tags": [
          "Declaration"
        ],
        "summary": "Saves the logged-in person's declaration data for the given year. PersonId in the body is ignored.",
        "requestBody": {
          "description": "The declaration data to save",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Declarations.Declaration"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Declarations.Declaration"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Declarations.Declaration"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Declarations.Declaration"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/Dimension": {
      "get": {
        "tags": [
          "Dimension"
        ],
        "summary": "Returns a list of dimensions based on given dimension filter",
        "parameters": [
          {
            "name": "TypeId",
            "in": "query",
            "description": "Filters on a specific dimension type id",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "CompatibilityType",
            "in": "query",
            "description": "Dimension type, where 0 is CostCenter and 1 is Project",
            "schema": {
              "$ref": "#/components/schemas/DimensionTypes"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Dimension"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Dimension"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Dimension"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Dimension"
        ],
        "summary": "Creates a dimension",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DimensionPost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DimensionPost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DimensionPost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DimensionPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          }
        }
      }
    },
    "/api/Dimension/Invoices": {
      "get": {
        "tags": [
          "Dimension"
        ],
        "summary": "Returns dimensions available for invoices",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Dimension"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Dimension"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Dimension"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Dimension/IncomingInvoices": {
      "get": {
        "tags": [
          "Dimension"
        ],
        "summary": "Returns dimensions available for incoming invoices",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Dimension"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Dimension"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Dimension"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Dimension/Receipts": {
      "get": {
        "tags": [
          "Dimension"
        ],
        "summary": "Returns dimensions available for receipts",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Dimension"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Dimension"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Dimension"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Dimension/{id}": {
      "put": {
        "tags": [
          "Dimension"
        ],
        "summary": "Modify a dimension",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DimensionPut"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DimensionPut"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DimensionPut"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DimensionPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Dimension"
        ],
        "summary": "Deletes a dimension",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/DimensionsReport": {
      "get": {
        "tags": [
          "DimensionsReport"
        ],
        "summary": "Get dimension report",
        "parameters": [
          {
            "name": "StartMonth",
            "in": "query",
            "description": "Start month",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndMonth",
            "in": "query",
            "description": "End Month",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "TypeId",
            "in": "query",
            "description": "Dimension Type Id",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OnlyDimensionsWithTransactions",
            "in": "query",
            "description": "True if only dimensions which has transaction in the given time period should be returned",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OnlyActiveDimensions",
            "in": "query",
            "description": "True if only active dimensions should be returned,\r\nFalse if all should be returned.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Accounting.DimensionReport"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accounting.DimensionReport"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accounting.DimensionReport"
                }
              }
            }
          }
        }
      }
    },
    "/api/DimensionTypes": {
      "get": {
        "tags": [
          "DimensionTypes"
        ],
        "summary": "Filter DimensionTypes",
        "parameters": [
          {
            "name": "Name",
            "in": "query",
            "description": "Name to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Types",
            "in": "query",
            "description": "Compatibility types to be included",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/DimensionCompatibilityType"
              }
            }
          },
          {
            "name": "TypeIds",
            "in": "query",
            "description": "List of DimensionType Ids to be included",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_DimensionType"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_DimensionType"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_DimensionType"
                }
              }
            }
          }
        }
      }
    },
    "/api/DimensionTypes/IncomingInvoices": {
      "get": {
        "tags": [
          "DimensionTypes"
        ],
        "summary": "Returns dimension types available for incoming invoices",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DimensionType"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DimensionType"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DimensionType"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/DimensionTypes/Invoices": {
      "get": {
        "tags": [
          "DimensionTypes"
        ],
        "summary": "Returns dimension types available for invoices",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DimensionType"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DimensionType"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DimensionType"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/DimensionTypes/Receipts": {
      "get": {
        "tags": [
          "DimensionTypes"
        ],
        "summary": "Returns dimension types available for receipts",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DimensionType"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DimensionType"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DimensionType"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Document/SIEFiles": {
      "post": {
        "tags": [
          "Document"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SIEFilePost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SIEFilePost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SIEFilePost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SIEFilePost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Employees": {
      "get": {
        "tags": [
          "Employees"
        ],
        "summary": "Returns a list of emplpoyees based on filter provided",
        "parameters": [
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Employee"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Employee"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Employee"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Employees"
        ],
        "summary": "Creates a employee given by Wint.Superkoll.API.Model.EmployeePost",
        "requestBody": {
          "description": "Details of employee",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeePost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeePost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeePost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeePost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/Employees/{id}": {
      "get": {
        "tags": [
          "Employees"
        ],
        "summary": "Return the employee given by the id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the employee",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExtendedEmployee"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExtendedEmployee"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExtendedEmployee"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Employees"
        ],
        "summary": "Update employee",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the employee",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Details of the employee",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeePut"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeePut"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeePut"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeePut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Employees"
        ],
        "summary": "Delete the employee given in Id\r\nOptional to provide a date for employment end",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "EmploymentEndDate",
            "in": "query",
            "description": "The date of ending employment",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/FinancialReports/ResultReport": {
      "post": {
        "tags": [
          "FinancialReports"
        ],
        "summary": "Get result report",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportFilter"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportFilter"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportFilter"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportFilter"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              }
            }
          }
        }
      }
    },
    "/api/FinancialReports/MonthlyResultReport": {
      "post": {
        "tags": [
          "FinancialReports"
        ],
        "summary": "Get monthly result report",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportMonthlyFilter"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportMonthlyFilter"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportMonthlyFilter"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportMonthlyFilter"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              }
            }
          }
        }
      }
    },
    "/api/FinancialReports/BalanceReport": {
      "post": {
        "tags": [
          "FinancialReports"
        ],
        "summary": "Get balance report",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportFilter"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportFilter"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportFilter"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportFilter"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              }
            }
          }
        }
      }
    },
    "/api/FinancialReports/Audit/BalanceReport": {
      "post": {
        "tags": [
          "FinancialReports"
        ],
        "summary": "Get the audit balance reconciliation report",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.AuditReportFilter"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.AuditReportFilter"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.AuditReportFilter"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.AuditReportFilter"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              }
            }
          }
        }
      }
    },
    "/api/FinancialReports/Audit/BalanceReportFilterData": {
      "get": {
        "tags": [
          "FinancialReports"
        ],
        "summary": "Get valid filter values for the Audit balance report",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.AuditReportFilterData"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.AuditReportFilterData"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.AuditReportFilterData"
                }
              }
            }
          }
        }
      }
    },
    "/api/FinancialReports/MonthlyBalanceReport": {
      "post": {
        "tags": [
          "FinancialReports"
        ],
        "summary": "Get monthly balance report",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportMonthlyFilter"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportMonthlyFilter"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportMonthlyFilter"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportMonthlyFilter"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              }
            }
          }
        }
      }
    },
    "/api/FinancialReports/DimensionReport": {
      "post": {
        "tags": [
          "FinancialReports"
        ],
        "summary": "Get dimension report",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportDimensionFilter"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportDimensionFilter"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportDimensionFilter"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportDimensionFilter"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              }
            }
          }
        }
      }
    },
    "/api/FinancialReports/MultiDimensionReport": {
      "post": {
        "tags": [
          "FinancialReports"
        ],
        "summary": "Get multi dimensional dimensions report",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportMultiDimensionFilter"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportMultiDimensionFilter"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportMultiDimensionFilter"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FinancialReport.FinancialReportMultiDimensionFilter"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.FinancialReport"
                }
              }
            }
          }
        }
      }
    },
    "/api/FinancialReports/{financialYearId}/LastReconciliationId": {
      "get": {
        "tags": [
          "FinancialReports"
        ],
        "summary": "Retrieves the last monthly reconciliation id for the given financial year id.",
        "parameters": [
          {
            "name": "financialYearId",
            "in": "path",
            "description": "The financial year id",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.AuditReportFilterItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.AuditReportFilterItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialReport.AuditReportFilterItem"
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Returns a list of invoices based on given invoice filter",
        "parameters": [
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "Obsolete property. use MinSerialNumber instead. If this is used, MinSerialNumber and MaxSerialNumber will not be applied",
            "schema": {
              "type": "integer",
              "format": "int64",
              "deprecated": true
            }
          },
          {
            "name": "Ocr",
            "in": "query",
            "description": "OCR number on invoice",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "Credit",
            "in": "query",
            "description": "Regular invoice or credit invoice",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Rot",
            "in": "query",
            "description": "Invoice contains rot",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Rut",
            "in": "query",
            "description": "Invoice contains rut",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "LastUpdated",
            "in": "query",
            "description": "Only include invoices where LastUpdate is greater or equal",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Statuses",
            "in": "query",
            "description": "Only include invoices which is in one of the provided state. Empty list will include all.\r\n0 - Invoice is not sent\r\n1 - Invoice is unpaid\r\n2 - Invoice is overdue and reminder has been sent\r\n3 - Invoice is overdue and reminder has not been sent\r\n4 - Invoice is paid\r\n5 - Invoice is cancelled\r\n6 - Invoice is in debt collection",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/InvoiceStatus"
              }
            }
          },
          {
            "name": "CustomerId",
            "in": "query",
            "description": "Obsolete property. Use CustomerIds instead.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "deprecated": true
            }
          },
          {
            "name": "ArticleIds",
            "in": "query",
            "description": "Only include invoices which contain provided articles.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "OwnerIds",
            "in": "query",
            "description": "Only include invoices with given owners.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "CustomerIds",
            "in": "query",
            "description": "Only include invoices of customer with given Wint.Superkoll.API.Model.Customer",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "MinSerialNumber",
            "in": "query",
            "description": "Include invoices with serial number greater than or equal this.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxSerialNumber",
            "in": "query",
            "description": "Include invoices with serial number less than or equal this.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "InvoiceDateFrom",
            "in": "query",
            "description": "Include invoices with posting date after this date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "InvoiceDateTo",
            "in": "query",
            "description": "Include invoices with posting date before this date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "DueDateFrom",
            "in": "query",
            "description": "Include invoices which are going to due after this date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "DueDateTo",
            "in": "query",
            "description": "Include invoices which are going to due before this date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MinTotalAmount",
            "in": "query",
            "description": "Include incoming invoices having an invoiced amount greater than or equal this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MaxTotalAmount",
            "in": "query",
            "description": "Include incoming invoices having an invoiced amount less than or equal this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "ShowCreditSameMonth",
            "in": "query",
            "description": "View credit invoices during the month of the original invoice. Default value is false.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PaymentStatuses",
            "in": "query",
            "description": "Include invoices with these payment statuses.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/InvoicePaymentState"
              }
            }
          },
          {
            "name": "MinUnpaidAmount",
            "in": "query",
            "description": "Include invoice with unpaid amount greater than or equal this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MaxUnpaidAmount",
            "in": "query",
            "description": "Include invoice with unpaid amount less than or equal this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "SnapshotDate",
            "in": "query",
            "description": "Snapshot of the current states of all transactions recorded up until this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreditStatuses",
            "in": "query",
            "description": "Include invoice with these credit statuses",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/InvoiceCreditStatus"
              }
            }
          },
          {
            "name": "HouseWorkInvoice",
            "in": "query",
            "description": "Include invoices with Rut/Rot",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "RecurringInvoiceId",
            "in": "query",
            "description": "Include invoices created from the referenced recurring invoice",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Dimensions",
            "in": "query",
            "description": "Only include invoices having these dimensions.\r\nWill be OR between dimensions within same dimension type and AND between different dimension types",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "ShowAgentInvoices",
            "in": "query",
            "description": "Include comission- and/or downpayment invoices.",
            "schema": {
              "$ref": "#/components/schemas/DownPaymentVisibility"
            }
          },
          {
            "name": "ExcludeTimeReportingInvoices",
            "in": "query",
            "description": "Exclude time reporting invoices",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SerialNumberSearchText",
            "in": "query",
            "description": "Serial Number Search Text",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SelfInvoiceId",
            "in": "query",
            "description": "Related self invoice id",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Sources",
            "in": "query",
            "description": "Include invoices with these sources",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/InvoiceSource"
              }
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Invoice"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Invoice"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Invoice"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Creates an invoice based on given invoice data",
        "description": "Note: the status 400 error code UncategorizedEuCustomerInvoiceItems deserves special mention. It is issued for invoices to EU customers when no invoice item EU VAT product type has been specified.\r\nThese are necessary for generating the recapitulative statement and can be set for invoice items directly, but preferrably at Wint.Superkoll.API.Model.Article level.\r\n            \r\nValid values are:\r\n-  1 (Unknown)\r\n-  2 (Exempt)\r\n- 24 (Goods)\r\n- 28 (Services)\r\n- 27 (ThirdPartyTrade)",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/List": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Returns a list of invoices based on given invoice filter",
        "parameters": [
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "Obsolete property. use MinSerialNumber instead. If this is used, MinSerialNumber and MaxSerialNumber will not be applied",
            "schema": {
              "type": "integer",
              "format": "int64",
              "deprecated": true
            }
          },
          {
            "name": "Ocr",
            "in": "query",
            "description": "OCR number on invoice",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "Credit",
            "in": "query",
            "description": "Regular invoice or credit invoice",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Rot",
            "in": "query",
            "description": "Invoice contains rot",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Rut",
            "in": "query",
            "description": "Invoice contains rut",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "LastUpdated",
            "in": "query",
            "description": "Only include invoices where LastUpdate is greater or equal",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Statuses",
            "in": "query",
            "description": "Only include invoices which is in one of the provided state. Empty list will include all.\r\n0 - Invoice is not sent\r\n1 - Invoice is unpaid\r\n2 - Invoice is overdue and reminder has been sent\r\n3 - Invoice is overdue and reminder has not been sent\r\n4 - Invoice is paid\r\n5 - Invoice is cancelled\r\n6 - Invoice is in debt collection",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/InvoiceStatus"
              }
            }
          },
          {
            "name": "CustomerId",
            "in": "query",
            "description": "Obsolete property. Use CustomerIds instead.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "deprecated": true
            }
          },
          {
            "name": "ArticleIds",
            "in": "query",
            "description": "Only include invoices which contain provided articles.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "OwnerIds",
            "in": "query",
            "description": "Only include invoices with given owners.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "CustomerIds",
            "in": "query",
            "description": "Only include invoices of customer with given Wint.Superkoll.API.Model.Customer",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "MinSerialNumber",
            "in": "query",
            "description": "Include invoices with serial number greater than or equal this.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxSerialNumber",
            "in": "query",
            "description": "Include invoices with serial number less than or equal this.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "InvoiceDateFrom",
            "in": "query",
            "description": "Include invoices with posting date after this date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "InvoiceDateTo",
            "in": "query",
            "description": "Include invoices with posting date before this date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "DueDateFrom",
            "in": "query",
            "description": "Include invoices which are going to due after this date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "DueDateTo",
            "in": "query",
            "description": "Include invoices which are going to due before this date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MinTotalAmount",
            "in": "query",
            "description": "Include incoming invoices having an invoiced amount greater than or equal this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MaxTotalAmount",
            "in": "query",
            "description": "Include incoming invoices having an invoiced amount less than or equal this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "ShowCreditSameMonth",
            "in": "query",
            "description": "View credit invoices during the month of the original invoice. Default value is false.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PaymentStatuses",
            "in": "query",
            "description": "Include invoices with these payment statuses.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/InvoicePaymentState"
              }
            }
          },
          {
            "name": "MinUnpaidAmount",
            "in": "query",
            "description": "Include invoice with unpaid amount greater than or equal this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MaxUnpaidAmount",
            "in": "query",
            "description": "Include invoice with unpaid amount less than or equal this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "SnapshotDate",
            "in": "query",
            "description": "Snapshot of the current states of all transactions recorded up until this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreditStatuses",
            "in": "query",
            "description": "Include invoice with these credit statuses",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/InvoiceCreditStatus"
              }
            }
          },
          {
            "name": "HouseWorkInvoice",
            "in": "query",
            "description": "Include invoices with Rut/Rot",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "RecurringInvoiceId",
            "in": "query",
            "description": "Include invoices created from the referenced recurring invoice",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Dimensions",
            "in": "query",
            "description": "Only include invoices having these dimensions.\r\nWill be OR between dimensions within same dimension type and AND between different dimension types",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "ShowAgentInvoices",
            "in": "query",
            "description": "Include comission- and/or downpayment invoices.",
            "schema": {
              "$ref": "#/components/schemas/DownPaymentVisibility"
            }
          },
          {
            "name": "ExcludeTimeReportingInvoices",
            "in": "query",
            "description": "Exclude time reporting invoices",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SerialNumberSearchText",
            "in": "query",
            "description": "Serial Number Search Text",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SelfInvoiceId",
            "in": "query",
            "description": "Related self invoice id",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Sources",
            "in": "query",
            "description": "Include invoices with these sources",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/InvoiceSource"
              }
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_InvoiceListItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_InvoiceListItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_InvoiceListItem"
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/Todos": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Return a list of Invoice Todos based on given filter",
        "parameters": [
          {
            "name": "SerialNumber",
            "in": "query",
            "description": "Obsolete property. use MinSerialNumber instead. If this is used, MinSerialNumber and MaxSerialNumber will not be applied",
            "schema": {
              "type": "integer",
              "format": "int64",
              "deprecated": true
            }
          },
          {
            "name": "Ocr",
            "in": "query",
            "description": "OCR number on invoice",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "Credit",
            "in": "query",
            "description": "Regular invoice or credit invoice",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Rot",
            "in": "query",
            "description": "Invoice contains rot",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Rut",
            "in": "query",
            "description": "Invoice contains rut",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "LastUpdated",
            "in": "query",
            "description": "Only include invoices where LastUpdate is greater or equal",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Statuses",
            "in": "query",
            "description": "Only include invoices which is in one of the provided state. Empty list will include all.\r\n0 - Invoice is not sent\r\n1 - Invoice is unpaid\r\n2 - Invoice is overdue and reminder has been sent\r\n3 - Invoice is overdue and reminder has not been sent\r\n4 - Invoice is paid\r\n5 - Invoice is cancelled\r\n6 - Invoice is in debt collection",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/InvoiceStatus"
              }
            }
          },
          {
            "name": "CustomerId",
            "in": "query",
            "description": "Obsolete property. Use CustomerIds instead.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "deprecated": true
            }
          },
          {
            "name": "ArticleIds",
            "in": "query",
            "description": "Only include invoices which contain provided articles.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "OwnerIds",
            "in": "query",
            "description": "Only include invoices with given owners.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "CustomerIds",
            "in": "query",
            "description": "Only include invoices of customer with given Wint.Superkoll.API.Model.Customer",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "MinSerialNumber",
            "in": "query",
            "description": "Include invoices with serial number greater than or equal this.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxSerialNumber",
            "in": "query",
            "description": "Include invoices with serial number less than or equal this.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "InvoiceDateFrom",
            "in": "query",
            "description": "Include invoices with posting date after this date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "InvoiceDateTo",
            "in": "query",
            "description": "Include invoices with posting date before this date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "DueDateFrom",
            "in": "query",
            "description": "Include invoices which are going to due after this date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "DueDateTo",
            "in": "query",
            "description": "Include invoices which are going to due before this date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MinTotalAmount",
            "in": "query",
            "description": "Include incoming invoices having an invoiced amount greater than or equal this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MaxTotalAmount",
            "in": "query",
            "description": "Include incoming invoices having an invoiced amount less than or equal this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "ShowCreditSameMonth",
            "in": "query",
            "description": "View credit invoices during the month of the original invoice. Default value is false.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PaymentStatuses",
            "in": "query",
            "description": "Include invoices with these payment statuses.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/InvoicePaymentState"
              }
            }
          },
          {
            "name": "MinUnpaidAmount",
            "in": "query",
            "description": "Include invoice with unpaid amount greater than or equal this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MaxUnpaidAmount",
            "in": "query",
            "description": "Include invoice with unpaid amount less than or equal this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "SnapshotDate",
            "in": "query",
            "description": "Snapshot of the current states of all transactions recorded up until this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreditStatuses",
            "in": "query",
            "description": "Include invoice with these credit statuses",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/InvoiceCreditStatus"
              }
            }
          },
          {
            "name": "HouseWorkInvoice",
            "in": "query",
            "description": "Include invoices with Rut/Rot",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "RecurringInvoiceId",
            "in": "query",
            "description": "Include invoices created from the referenced recurring invoice",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Dimensions",
            "in": "query",
            "description": "Only include invoices having these dimensions.\r\nWill be OR between dimensions within same dimension type and AND between different dimension types",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "ShowAgentInvoices",
            "in": "query",
            "description": "Include comission- and/or downpayment invoices.",
            "schema": {
              "$ref": "#/components/schemas/DownPaymentVisibility"
            }
          },
          {
            "name": "ExcludeTimeReportingInvoices",
            "in": "query",
            "description": "Exclude time reporting invoices",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SerialNumberSearchText",
            "in": "query",
            "description": "Serial Number Search Text",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SelfInvoiceId",
            "in": "query",
            "description": "Related self invoice id",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Sources",
            "in": "query",
            "description": "Include invoices with these sources",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/InvoiceSource"
              }
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Invoice"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Invoice"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Invoice"
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/{id}": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Returns an invoice based on given invoice id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Invoice"
        ],
        "summary": "Update the invoice based on given id and invoicePut",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePut"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePut"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePut"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Sends the invoice corresponding to the given id by the help\r\nof the given options.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the invoice.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Options specifying how to send the invoice.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceSendProperties"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceSendProperties"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceSendProperties"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceSendProperties"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Invoice"
        ],
        "summary": "Delete an invoice (status will be set to canceled).\r\nAn invoice can only be deleted if it has not been sent.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the invoice to be deleted",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Invoice/DimensionSuggestions": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/{id}/periodisations": {
      "put": {
        "tags": [
          "Invoice"
        ],
        "summary": "Replaces the periodisation state of one or more invoice items on the invoice\r\nidentified by id. Rows for items not in body\r\nare left untouched (partial PUT). Periodisation cannot be edited on cancelled invoices.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the invoice.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The desired periodisation state per invoice item.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePeriodisationsPut"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePeriodisationsPut"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePeriodisationsPut"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePeriodisationsPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Invoice/Send/{id}": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Sends the invoice corresponding to the given id by the help\r\nof the given options.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the invoice.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Options specifying how to send the invoice.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceSendProperties"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceSendProperties"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceSendProperties"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceSendProperties"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Invoice/{id}/Mail": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Email a specific version of a invoice corresponding to the given id by the help\r\nof the given options.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the invoice.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Options specifying how to send the invoice.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceSendProperties"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceSendProperties"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceSendProperties"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceSendProperties"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Invoice/{id}/SendEInvoice": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Sends the latest version of a invoice as a electronic invoice or print corresponding to the given id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the invoice.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Invoice/{id}/WriteOffReminderFee": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Write off the unpaid reminder fee and penalty interest for an invoice.\r\nThe invoice must be in ReminderFeeNotFullyPaid status.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the invoice.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Invoice/{invoiceId}/transactions": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "parameters": [
          {
            "name": "invoiceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Accounting.SimplifiedVoucher"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Accounting.SimplifiedVoucher"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Accounting.SimplifiedVoucher"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/{invoiceId}/attachments": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Returns a list ids of all attachments linked to an invioce",
        "parameters": [
          {
            "name": "invoiceId",
            "in": "path",
            "description": "The id of the invoice",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Add an attachment to an invoice",
        "parameters": [
          {
            "name": "invoiceId",
            "in": "path",
            "description": "The id of the invoice to which the attachment should be added",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Attachment data",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceAttachmentPost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceAttachmentPost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceAttachmentPost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceAttachmentPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Invoice/{invoiceId}/AttachmentList": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Add a list of attachments to an invoice",
        "parameters": [
          {
            "name": "invoiceId",
            "in": "path",
            "description": "The id of the invoice to which the attachment should be added",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Attachment data",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/InvoiceAttachmentPost"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/InvoiceAttachmentPost"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/InvoiceAttachmentPost"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/InvoiceAttachmentPost"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Invoice/{invoiceId}/attachments/{attachmentId}": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Returns an invoice attachment",
        "parameters": [
          {
            "name": "invoiceId",
            "in": "path",
            "description": "Id of the invoice which has the attachment",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "attachmentId",
            "in": "path",
            "description": "Id of the attachment to be returned",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceAttachment"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceAttachment"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceAttachment"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Invoice"
        ],
        "summary": "Delete an invoice attachment.",
        "parameters": [
          {
            "name": "invoiceId",
            "in": "path",
            "description": "Id of the invoice which has the attachment",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "attachmentId",
            "in": "path",
            "description": "Id of the attachment to be deleted",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Invoice/StateLogs/{id}": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EntityStateLog"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EntityStateLog"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EntityStateLog"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/FindSimilar/{id}": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Return a list of similar invoices based on given invoice id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 7
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InvoiceSimilarItem"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InvoiceSimilarItem"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InvoiceSimilarItem"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/{id}/pdf/{version}": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Returns the invoice as a pdf document",
        "description": "For an invoice to be available as a pdf it must have been sent, ie. it needs to have moved past the state 0 - NotSent.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the invoice",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "version",
            "in": "path",
            "description": "Version number of the pdf\r\n            \r\nIf omitted, the version, if any, saved last will be returned.</br>\r\n0 - invoice, </br>\r\n1 - reminder 1, </br>\r\n2 - reminder 2</br>",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoicePdf"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoicePdf"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoicePdf"
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/EditDueDate/{id}": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Edit payments in the invoice",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the invoice",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The object that contains the payment data",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceDue"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceDue"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceDue"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceDue"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Invoice/ReportAsPaid/{id}": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Edit payments in the invoice",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the invoice",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ReportPaymentRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportPaymentRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportPaymentRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReportPaymentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Invoice/{id}/Preview/{version}": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Returns the invoice pdf in html based on given id and version",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the invoice",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "version",
            "in": "path",
            "description": "Version number of the pdf",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/{id}/ReminderPreview": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Return a preview of invoice reminder pdf in html.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePaymentReminder"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePaymentReminder"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePaymentReminder"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePaymentReminder"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/SendPaymentReminder/{id}": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Send a payment reminder",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the invoice",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The object that contains the payment reminder data",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePaymentReminder"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePaymentReminder"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePaymentReminder"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePaymentReminder"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Invoice/Preview": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Returns the preview of the invoice in html based on given post",
        "requestBody": {
          "description": "Data of the invoice",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePreviewRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePreviewRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePreviewRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePreviewRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Invoice/Warnings": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Returns the warnings of an invoice based on given post",
        "parameters": [
          {
            "name": "invoiceId",
            "in": "query",
            "description": "The saved draft being edited, if any, so the costs already reserved on it are checked too.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Data of the invoice. Its ForwardedCostIds are checked, never reserved.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Warning"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Warning"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Warning"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/CommonSellers": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Return the names of top 5 sellers",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/{invoiceId}/UpdateDimension": {
      "put": {
        "tags": [
          "Invoice"
        ],
        "parameters": [
          {
            "name": "invoiceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceDimensionPut"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceDimensionPut"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceDimensionPut"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceDimensionPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Invoice/{id}/CreateCreditInvoice": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Return credit invoice for the invoice given by invoice id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/{id}/CreditAndReissue/Changes": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Returns which field groups differ between the sent invoice given by id\r\nand the edited invoice payload, for the credit-and-reissue confirmation step.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the original, sent invoice.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The edited invoice payload.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreditAndReissueChangesPost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreditAndReissueChangesPost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreditAndReissueChangesPost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreditAndReissueChangesPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InvoiceChangedFieldGroup"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InvoiceChangedFieldGroup"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InvoiceChangedFieldGroup"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/{id}/CreditAndReissue": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Credits the sent invoice given by id in full and creates a replacement\r\ninvoice from the edited payload, then sends both according to the given send options.\r\nThe two creations are not transactional: if the replacement cannot be created the credit\r\nnote is cancelled again, and if a send fails the unsent invoices are cancelled. The returned\r\nerrors describe the resulting state; a credit note that was already sent is never undone.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the original, sent invoice.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The edited invoice payload and send options.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreditAndReissuePost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreditAndReissuePost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreditAndReissuePost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreditAndReissuePost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CreditAndReissueResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreditAndReissueResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreditAndReissueResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/{id}/downloadPDF/{version}": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Returns the invoice as a pdf document in a format easier to be downloaded",
        "description": "For an invoice to be available as a pdf it must have been sent, ie. it needs to have moved past the state 0 - NotSent.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the invoice",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "version",
            "in": "path",
            "description": "Version number of the pdf\r\n            \r\nIf omitted, the version, if any, saved last will be returned.</br>\r\n0 - invoice, </br>\r\n1 - reminder 1, </br>\r\n2 - reminder 2</br>",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Invoice/DefaultMailOptions/{invoiceId}": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Get default information to send mail",
        "parameters": [
          {
            "name": "Version",
            "in": "query",
            "description": "Get e-mail options for a specific version",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "CustomerId",
            "in": "query",
            "description": "Invoice customer Id",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "invoiceId",
            "in": "path",
            "description": "reference to the id of invoice",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceDefaultMailOptions"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceDefaultMailOptions"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceDefaultMailOptions"
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/{id}/CreateRecurringInvoice": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Returns the recurring invoice for the given customer invoice",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the customer invoice",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RecurringInvoice"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecurringInvoice"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecurringInvoice"
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/GetInvoicePersons": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Returns employees with invoice permissions",
        "parameters": [
          {
            "name": "SearchStr",
            "in": "query",
            "description": "Search string for invoice person name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeSelf",
            "in": "query",
            "description": "If needs to include or exclude the current user",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ExcludeIds",
            "in": "query",
            "description": "If needs to exclude some users",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Wint.Utils.WebApi.SearchResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Wint.Utils.WebApi.SearchResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Wint.Utils.WebApi.SearchResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/GetInvoicePersonSuggestions": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Returns frequently used invoice owners",
        "parameters": [
          {
            "name": "Count",
            "in": "query",
            "description": "number of max persons to be fetched",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeSelf",
            "in": "query",
            "description": "If needs to include or exclude the current user",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ExcludeIds",
            "in": "query",
            "description": "If needs to exclude some users",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoicePersonsSuggestionCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoicePersonsSuggestionCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoicePersonsSuggestionCollection"
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/{id}/ReassignOwner": {
      "put": {
        "tags": [
          "Invoice"
        ],
        "summary": "Changes the owner of the invoice given by id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceOwnerReassignRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceOwnerReassignRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceOwnerReassignRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceOwnerReassignRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Invoice/RutRotWorkTypes": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "parameters": [
          {
            "name": "Type",
            "in": "query",
            "description": "Include house work types with this type (Rut/Rot)",
            "schema": {
              "$ref": "#/components/schemas/InvoiceHouseWorkType"
            }
          },
          {
            "name": "Name",
            "in": "query",
            "description": "Include house work types with this name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_RutRotWorkType"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_RutRotWorkType"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_RutRotWorkType"
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/DisableAutomaticReminders/{id}": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Disable automatic reminders if enabled",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the invoice",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Invoice/{id}/Copy": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Returns a copy of invoice given by id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/{id}/Versions": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Returns different version information of an invoice given by id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InvoiceVersionInfo"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InvoiceVersionInfo"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InvoiceVersionInfo"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Invoice/Activate": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceActivationRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceActivationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceActivationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceActivationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Invoice/GetNextCompanyInvoiceSerialNumber": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/InvoicePaymentOption": {
      "get": {
        "tags": [
          "InvoicePaymentOption"
        ],
        "summary": "Get available payment options",
        "parameters": [
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_InvoicePaymentOption"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_InvoicePaymentOption"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_InvoicePaymentOption"
                }
              }
            }
          }
        }
      }
    },
    "/api/MissingDocument/{id}": {
      "put": {
        "tags": [
          "MissingDocument"
        ],
        "summary": "Updates a missing document",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MissingDocumentPut"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MissingDocumentPut"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MissingDocumentPut"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MissingDocumentPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/MissingDocument/{missingDocumentId}/Attachments/{attachmentId}": {
      "get": {
        "tags": [
          "MissingDocument"
        ],
        "summary": "Returns the attachment corresponding to the given attachmentId that is associated with the given\r\nmissingDocumentId.",
        "parameters": [
          {
            "name": "missingDocumentId",
            "in": "path",
            "description": "The id of the missing document",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "attachmentId",
            "in": "path",
            "description": "The id of the attachment",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MissingDocumentAttachment"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MissingDocumentAttachment"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MissingDocumentAttachment"
                }
              }
            }
          }
        }
      }
    },
    "/api/MissingDocument/Pdf/{id}": {
      "get": {
        "tags": [
          "MissingDocument"
        ],
        "summary": "Download the missing document attachments as PDF",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/MonthlyReports": {
      "get": {
        "tags": [
          "MonthlyReports"
        ],
        "summary": "List the selected company's monthly reports in any state.",
        "description": "The reviewer's list: drafts, reports still generating and failed passes included, unlike the customer's\r\nlist. Newest period first. Takes the shared list filter: 0-based `page`, `numPerPage` (100 when\r\nomitted, capped by the report service at 1000), `isAutoPaginating` for everything in one page, and\r\n`status`, which may be repeated. Ordering properties are ignored. Read a full report with\r\n`GET api/MonthlyReports/{id}`.",
        "parameters": [
          {
            "name": "Status",
            "in": "query",
            "description": "Optional: only reports in these states. Omit for every state.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/MonthlyReportStatus"
              }
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_MonthlyReportSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_MonthlyReportSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_MonthlyReportSummary"
                }
              }
            }
          },
          "400": {
            "description": "A status value this API does not know",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      },
      "post": {
        "tags": [
          "MonthlyReports"
        ],
        "summary": "Generate a report for the selected company over one or three whole months ending with the given month.",
        "description": "Returns as soon as the report exists, in `Generating`. The generation pass itself takes 15-90\r\nseconds and runs in the report service's background; poll `GET api/MonthlyReports/{id}` until the\r\nstatus changes. Posting a period whose earlier pass failed retries it on the same report. Posting a\r\nperiod that already has a finished report is refused with a validation error.",
        "requestBody": {
          "description": "End year and month, month count, and options.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateMonthlyReportRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateMonthlyReportRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateMonthlyReportRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateMonthlyReportRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReportSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReportSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReportSummary"
                }
              }
            }
          },
          "400": {
            "description": "Missing body, invalid period, or a finished report already exists for it",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "The report service is busy; the report exists and can be retried shortly",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/MonthlyReports/{id}": {
      "get": {
        "tags": [
          "MonthlyReports"
        ],
        "summary": "Get a monthly report in any state, body and history included.",
        "description": "Shows drafts and reports still generating, so this is the endpoint to poll after generating:\r\nthe status moves from `Generating` to `Draft`, or to `Failed` if the pass threw, in\r\nwhich case posting the same period again retries it.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the report.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReport"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReport"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReport"
                }
              }
            }
          },
          "404": {
            "description": "The report could not be found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/MonthlyReports/{id}/regenerate": {
      "post": {
        "tags": [
          "MonthlyReports"
        ],
        "summary": "Run another generation pass over a report, optionally guided by feedback.",
        "description": "Synchronous: the response arrives when the new iteration exists, typically after 15-90 seconds.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the report.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Feedback and options for the next pass.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/RegenerateMonthlyReportRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegenerateMonthlyReportRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RegenerateMonthlyReportRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RegenerateMonthlyReportRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReport"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReport"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReport"
                }
              }
            }
          },
          "400": {
            "description": "The report is not in a state that can be regenerated",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The report could not be found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/MonthlyReports/{id}/markdown": {
      "put": {
        "tags": [
          "MonthlyReports"
        ],
        "summary": "Replace the report body with a hand-edited version.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the report.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The new markdown body.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EditMonthlyReportMarkdownRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditMonthlyReportMarkdownRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EditMonthlyReportMarkdownRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EditMonthlyReportMarkdownRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReport"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReport"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReport"
                }
              }
            }
          },
          "400": {
            "description": "Empty body, or the report is not in a state that can be edited",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The report could not be found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/MonthlyReports/{id}/approve": {
      "post": {
        "tags": [
          "MonthlyReports"
        ],
        "summary": "Approve the current iteration for the customer.",
        "description": "This is the step that reaches the customer: the report becomes visible to them and a support case\r\ncarrying the link is opened. It is recorded against the signed-in user.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the report.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReport"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReport"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReport"
                }
              }
            }
          },
          "400": {
            "description": "The report is not a draft",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The report could not be found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/MonthlyReports/{id}/unpublish": {
      "post": {
        "tags": [
          "MonthlyReports"
        ],
        "summary": "Revoke an approval, returning the report to draft so the customer can no longer read it.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the report.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReport"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReport"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReport"
                }
              }
            }
          },
          "400": {
            "description": "The report is not approved",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The report could not be found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/MonthlyReports/CompanyInstruction": {
      "get": {
        "tags": [
          "MonthlyReports"
        ],
        "summary": "Get the selected company's monthly-report instruction.",
        "description": "The advisor's standing guidance for this company's reports: focus, interpretation and tone. It applies\r\nto every later generation and regeneration. `text` is null when the company has none.",
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReportCompanyInstruction"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReportCompanyInstruction"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReportCompanyInstruction"
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      },
      "put": {
        "tags": [
          "MonthlyReports"
        ],
        "summary": "Save the selected company's monthly-report instruction.",
        "description": "Replaces the instruction; empty text removes it. Reports already generated are unchanged until they are\r\nregenerated.",
        "requestBody": {
          "description": "The instruction text, at most 4000 characters.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MonthlyReportCompanyInstruction"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MonthlyReportCompanyInstruction"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MonthlyReportCompanyInstruction"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MonthlyReportCompanyInstruction"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReportCompanyInstruction"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReportCompanyInstruction"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlyReportCompanyInstruction"
                }
              }
            }
          },
          "400": {
            "description": "The text is too long",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/ProfileRoutine/{id}": {
      "put": {
        "tags": [
          "ProfileRoutine"
        ],
        "summary": "Updates a routine corresponding to the given id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ProfileRoutinePut"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfileRoutinePut"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfileRoutinePut"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProfileRoutinePut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/Receipt/{id}": {
      "get": {
        "tags": [
          "Receipt"
        ],
        "summary": "Returns a receipt based on given receipt id",
        "description": "**Client Capabilities:**\r\n\r\nTo receive receipts with null PaymentMethodId, include the following header:\r\n- `X-Wint-Capabilities: ReceiptPaymentMethodNullability`\r\n\r\nWithout this header, receipts with null PaymentMethodId will be filtered out (return 404 for Get by id, excluded from list responses).\r\n\r\nThe header supports comma-separated capabilities: `X-Wint-Capabilities: ReceiptPaymentMethodNullability,FeatureX,FeatureY`",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Receipt id",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Receipt"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Receipt"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Receipt"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Receipt"
        ],
        "summary": "Update a receipt based on id and receipt data",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptPut"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptPut"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptPut"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/Receipt": {
      "get": {
        "tags": [
          "Receipt"
        ],
        "summary": "Returns a list of receipts based on given receipt filter",
        "description": "**Client Capabilities:**\r\n\r\nTo receive receipts with null PaymentMethodId, include the following header:\r\n- `X-Wint-Capabilities: ReceiptPaymentMethodNullability`\r\n\r\nWithout this header, receipts with null PaymentMethodId will be filtered out (return 404 for Get by id, excluded from list responses).\r\n\r\nThe header supports comma-separated capabilities: `X-Wint-Capabilities: ReceiptPaymentMethodNullability,FeatureX,FeatureY`",
        "parameters": [
          {
            "name": "State",
            "in": "query",
            "description": "Include only receipts with this state",
            "schema": {
              "$ref": "#/components/schemas/ReceiptStateApiModel"
            }
          },
          {
            "name": "States",
            "in": "query",
            "description": "Include receipts only with these states",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ReceiptStateApiModel"
              }
            }
          },
          {
            "name": "ReceiptCategoryId",
            "in": "query",
            "description": "Include receipts only having this category Id",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "ReceiptCategories",
            "in": "query",
            "description": "Include receipts only having this category Id",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "CreatedFromDate",
            "in": "query",
            "description": "Include receipts created after this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreatedToDate",
            "in": "query",
            "description": "Include receipts created before this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "AmountFrom",
            "in": "query",
            "description": "Include receipts having an amount greater than this",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "AmountTo",
            "in": "query",
            "description": "Include receipts having an amount less than this",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "description": "Include receipts only having this currency",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "UploadedByUserIds",
            "in": "query",
            "description": "Include receipts only uploaded by these person Ids",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "PaymentState",
            "in": "query",
            "description": "Include receipts only having given payment status. If no value was provided both paid and unpaid receipts will be returned.",
            "schema": {
              "$ref": "#/components/schemas/PaymentState"
            }
          },
          {
            "name": "LastUpdated",
            "in": "query",
            "description": "Include only receipts that has been modified at this date and time or later",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ClientId",
            "in": "query",
            "description": "Include only receipts with this client id",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Dimensions",
            "in": "query",
            "description": "Only include receipts having these dimensions",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "SerialNumberFrom",
            "in": "query",
            "description": "Include receipts having a receipt number greater than this",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SerialNumberTo",
            "in": "query",
            "description": "Include receipts having a receipt number less than this",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PaymentMethods",
            "in": "query",
            "description": "Include receipts having a these payment methods",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "PaymentMethodTypes",
            "in": "query",
            "description": "Include receipts having a these payment method types",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Receipt"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Receipt"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Receipt"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Receipt"
        ],
        "summary": "Create a new receipt based on receipt data",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptPost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptPost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptPost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/Receipt/Cancel/{id}": {
      "post": {
        "tags": [
          "Receipt"
        ],
        "summary": "Cancels the receipt corresponding to the given id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the receipt.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Receipt/Sign/{id}": {
      "post": {
        "tags": [
          "Receipt"
        ],
        "summary": "Signs the receipt with the given id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the receipt.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Receipt/UpdateAndSign/{id}": {
      "post": {
        "tags": [
          "Receipt"
        ],
        "summary": "Update the receipt, and signs the receipt with the given id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the receipt.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Receipt, with new data",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptPut"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptPut"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptPut"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/Receipt/SendBack/{id}": {
      "post": {
        "tags": [
          "Receipt"
        ],
        "summary": "Sends the receipt corresponding to the given id back to its owner.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the receipt.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The reason why the receipt is sent back.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptSendBackData"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptSendBackData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptSendBackData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptSendBackData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Receipt/{receiptId}/Attachments/{attachmentId}": {
      "get": {
        "tags": [
          "Receipt"
        ],
        "summary": "Returns the attachment corresponding to the given attachmentId associated with the given receiptId.",
        "parameters": [
          {
            "name": "receiptId",
            "in": "path",
            "description": "The id of the receipt.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "attachmentId",
            "in": "path",
            "description": "The id of the attachment.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ReceiptAttachment"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReceiptAttachment"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReceiptAttachment"
                }
              }
            }
          }
        }
      }
    },
    "/api/Receipt/{receiptId}/Images/{imageId}": {
      "delete": {
        "tags": [
          "Receipt"
        ],
        "summary": "Deletes the image corresponding to the given imageId of the receipt corresponding to the given receiptId.",
        "parameters": [
          {
            "name": "receiptId",
            "in": "path",
            "description": "The id of the receipt.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "imageId",
            "in": "path",
            "description": "The id of the image.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Receipt/AllReceiptPersons": {
      "get": {
        "tags": [
          "Receipt"
        ],
        "summary": "Returns a set of all receipt persons from ReceiptAddressBook.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReceiptPerson"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReceiptPerson"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReceiptPerson"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Receipt/CommonReceiptPersons": {
      "get": {
        "tags": [
          "Receipt"
        ],
        "summary": "Returns a set of twenty receipt persons from last six months.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReceiptPerson"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReceiptPerson"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReceiptPerson"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Receipt/AddReceiptPerson": {
      "post": {
        "tags": [
          "Receipt"
        ],
        "summary": "Add ReceiptPerson to the ReceiptAddressBook.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptPerson"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptPerson"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptPerson"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptPerson"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/Receipt/RemoveReceiptPerson/{personId}": {
      "delete": {
        "tags": [
          "Receipt"
        ],
        "summary": "Remove the receipt person from ReceiptAddressBook.",
        "parameters": [
          {
            "name": "personId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Receipt/GetPdfAsync/{id}": {
      "get": {
        "tags": [
          "Receipt"
        ],
        "summary": "Download the receipt attachments as PDF",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Receipt id",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Receipt/SimilarAsync/{id}": {
      "get": {
        "tags": [
          "Receipt"
        ],
        "summary": "Return a list of similar receipts based on given receipt id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Receipt id",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum no of list items",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReceiptsSimilarItem"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReceiptsSimilarItem"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReceiptsSimilarItem"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Receipt/Transactions/{id}": {
      "get": {
        "tags": [
          "Receipt"
        ],
        "summary": "Gets all transactions (vouchers) that are booked on the given id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Receipt id",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Accounting.SimplifiedVoucher"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Accounting.SimplifiedVoucher"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Accounting.SimplifiedVoucher"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Receipt/StateLogs/{id}": {
      "get": {
        "tags": [
          "Receipt"
        ],
        "summary": "Returns a list of state logs related to given receipt id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Receipt id",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EntityStateLog"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EntityStateLog"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EntityStateLog"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Receipt/CanReceivePayouts": {
      "get": {
        "tags": [
          "Receipt"
        ],
        "summary": "Checks if the logged in person has registered payment information.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "boolean"
                }
              },
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              },
              "text/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/Receipt/DimensionSuggestions": {
      "get": {
        "tags": [
          "Receipt"
        ],
        "summary": "Return mostly used dimensions within last year for logged in user and company/>",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Receipt/HandleDocumentDraft": {
      "put": {
        "tags": [
          "Receipt"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptDocumentDraft"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptDocumentDraft"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptDocumentDraft"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptDocumentDraft"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/Receipt/WintCardSuppliers": {
      "get": {
        "tags": [
          "Receipt"
        ],
        "summary": "Return a list of supplier names in WintCard receipts for logged in user and company",
        "parameters": [
          {
            "name": "searchTerm",
            "in": "query",
            "description": "Search term against supplier name",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Receipt/TopWintCardSuppliers": {
      "get": {
        "tags": [
          "Receipt"
        ],
        "summary": "Return a list of most common supplier names in WintCard receipts for logged in user and company",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Reference/{id}": {
      "get": {
        "tags": [
          "Reference"
        ],
        "summary": "Returns a reference based on given id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Reference"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Reference"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Reference"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Reference"
        ],
        "summary": "Updates a reference based on given reference id and data",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ReferencePut"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReferencePut"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReferencePut"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReferencePut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Reference"
        ],
        "summary": "Deletes a reference based on given id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Reference": {
      "get": {
        "tags": [
          "Reference"
        ],
        "summary": "Returns a list of references based on given reference filter",
        "parameters": [
          {
            "name": "CustomerId",
            "in": "query",
            "description": "Customer id",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Reference"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Reference"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Reference"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Reference"
        ],
        "summary": "Creates a new reference based on given reference data",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ReferencePost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReferencePost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReferencePost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReferencePost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/Reference/SearchByName": {
      "get": {
        "tags": [
          "Reference"
        ],
        "summary": "Return list of reference persons based on customerId and searchString",
        "parameters": [
          {
            "name": "customerId",
            "in": "query",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "searchString",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReferenceSearchResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReferenceSearchResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReferenceSearchResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Reference/SearchByMail": {
      "get": {
        "tags": [
          "Reference"
        ],
        "summary": "Return list of reference persons based on customerId and searchString",
        "parameters": [
          {
            "name": "customerId",
            "in": "query",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "searchString",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReferenceSearchResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReferenceSearchResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReferenceSearchResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Reference/Common": {
      "get": {
        "tags": [
          "Reference"
        ],
        "summary": "Return a list of top 5 common Reference persons based on customerId",
        "parameters": [
          {
            "name": "customerId",
            "in": "query",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReferenceSearchResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReferenceSearchResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReferenceSearchResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Report": {
      "get": {
        "tags": [
          "Report"
        ],
        "summary": "Get report",
        "parameters": [
          {
            "name": "IncludeDailyTurnover",
            "in": "query",
            "description": "Include daily turnover in report; otherwise monthly",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeIBs",
            "in": "query",
            "description": "Include incoming balances",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeMonthlyTurnovers",
            "in": "query",
            "description": "Include monthly turnover",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "Start date\r\nStart date is inclusive, if you the 1st as the first day included, this should be set to the 1st.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "description": "End date\r\nEnd date is not inclusive, ie. if you want the 10th to be the last day included EndDate should be set to the 11th",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "AccountRanges",
            "in": "query",
            "description": "List of account ranges. \r\nExample: 1000<1200,1400<1500-1350\r\nWill include account in range 1000 to 1200 AND 1400 to 1500 but exclude account 1350",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "AccountIds",
            "in": "query",
            "description": "List of account ids to include",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "AccountNumbers",
            "in": "query",
            "description": "List of account numbers to include",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "AccountStart",
            "in": "query",
            "description": "Start of account number",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "AccountEnd",
            "in": "query",
            "description": "End of account number",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Dimensions",
            "in": "query",
            "description": "List of dimension ids to include",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Accounting.Report"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accounting.Report"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accounting.Report"
                }
              }
            }
          }
        }
      }
    },
    "/api/RevenueReporting/templates": {
      "get": {
        "tags": [
          "RevenueReporting"
        ],
        "summary": "Get the active revenue reporting templates for the selected company.",
        "description": "Returns the active revenue reporting templates for the currently selected company, including\r\ntemplates that are currently paused. An empty result indicates the company has no active\r\ntemplates, not that it is outside the new revenue reporting flow; whether the company belongs\r\nto the new flow at all is given by `RevenueReportingEnabledForCompany` on the company.",
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RevenueReportingTemplate"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RevenueReportingTemplate"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RevenueReportingTemplate"
                  }
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/RevenueReporting": {
      "get": {
        "tags": [
          "RevenueReporting"
        ],
        "summary": "Get the submitted revenue reports for the selected company.",
        "description": "Returns the revenue reports submitted on the new revenue reporting templates for the\r\ncurrently selected company. An empty result indicates the company has not submitted any\r\nreports on the new flow. Voided reports are only included when the status filter is set to\r\nvoided.",
        "parameters": [
          {
            "name": "TemplateId",
            "in": "query",
            "description": "Include reports created from this template (payment method).",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Status",
            "in": "query",
            "description": "Include reports with this status. Voided reports are only included when\r\nthis is explicitly set to Wint.Superkoll.API.Model.RevenueReportStatus.Voided.",
            "schema": {
              "$ref": "#/components/schemas/RevenueReportStatus"
            }
          },
          {
            "name": "FromDate",
            "in": "query",
            "description": "Include reports with a reporting date on or after this date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ToDate",
            "in": "query",
            "description": "Include reports with a reporting date on or before this date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "OwnerIds",
            "in": "query",
            "description": "Include reports registered by these owners.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "MinAmount",
            "in": "query",
            "description": "Include reports with a total sales amount greater than or equal to this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MaxAmount",
            "in": "query",
            "description": "Include reports with a total sales amount less than or equal to this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MinDifference",
            "in": "query",
            "description": "Include reports with a difference greater than or equal to this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MaxDifference",
            "in": "query",
            "description": "Include reports with a difference less than or equal to this.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_RevenueReportDescriptor"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_RevenueReportDescriptor"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_RevenueReportDescriptor"
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      },
      "post": {
        "tags": [
          "RevenueReporting"
        ],
        "summary": "Submit a revenue report for the selected company.",
        "description": "Uploads the report attachments, creates the report in the revenue reporting service,\r\nbooks the accounting voucher and links the voucher back to the report.\r\nThe template's todo is shown only to users whose roles it names, or a company admin, but\r\nsubmitting is not limited to those users - any user this endpoint permits may report on\r\nany active template.",
        "requestBody": {
          "description": "Revenue report data.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/RevenueReportDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RevenueReportDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RevenueReportDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RevenueReportDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "400": {
            "description": "Invalid information",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/RevenueReporting/{id}": {
      "get": {
        "tags": [
          "RevenueReporting"
        ],
        "summary": "Get the full details of a submitted revenue report for the selected company.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the report.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RevenueReportDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevenueReportDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevenueReportDetail"
                }
              }
            }
          },
          "404": {
            "description": "The report could not be found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/RevenueReporting/{id}/attachment/{attachmentId}": {
      "get": {
        "tags": [
          "RevenueReporting"
        ],
        "summary": "Get an attachment (image/PDF) of a submitted revenue report.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the report.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "attachmentId",
            "in": "path",
            "description": "Identifier of the attachment; the first attachment is returned when omitted.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RevenueReportAttachment"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevenueReportAttachment"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevenueReportAttachment"
                }
              }
            }
          },
          "404": {
            "description": "The report or attachment could not be found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/RevenueReporting/{id}/transactions": {
      "get": {
        "tags": [
          "RevenueReporting"
        ],
        "summary": "Get the booked voucher transactions of a submitted revenue report.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the report.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Accounting.SimplifiedVoucher"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Accounting.SimplifiedVoucher"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Accounting.SimplifiedVoucher"
                  }
                }
              }
            }
          },
          "404": {
            "description": "The report could not be found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/RevenueReporting/approve": {
      "post": {
        "tags": [
          "RevenueReporting"
        ],
        "summary": "Approve a revenue reporting period for the selected company.",
        "description": "Approves a monthly period for a template (payment method). When no report was submitted for\r\nthe period the request must confirm there was no income. Optional attachments supporting the\r\napproval (\"kompletterande underlag\") are uploaded to blob storage, and each one also becomes\r\nits own unbooked accounting voucher the accountant handles from the period's Heart todo.\r\nOnly a user whose roles the template names, or a company admin, may approve for it; the\r\ntemplate's todo is hidden from everyone else.",
        "requestBody": {
          "description": "Approval data.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/RevenueReportApproveRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RevenueReportApproveRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RevenueReportApproveRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RevenueReportApproveRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RevenueReportApproval"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevenueReportApproval"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevenueReportApproval"
                }
              }
            }
          },
          "400": {
            "description": "Invalid information",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/RevenueReporting/approvals": {
      "get": {
        "tags": [
          "RevenueReporting"
        ],
        "summary": "Get the revenue reporting period approvals for the selected company.",
        "parameters": [
          {
            "name": "templateId",
            "in": "query",
            "description": "Include approvals for this template (payment method).",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "year",
            "in": "query",
            "description": "Include approvals for this period year.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RevenueReportApproval"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RevenueReportApproval"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RevenueReportApproval"
                  }
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/RevenueReporting/{templateId}/{periodYear}/{periodMonth}/approval-attachment": {
      "get": {
        "tags": [
          "RevenueReporting"
        ],
        "summary": "Get the attachment (image/PDF) of a revenue reporting period approval.",
        "description": "Serves the customer's own copy of the supplementary material, and only the first file: the\r\napproval in the Wint.RevenueReporting service holds one attachment. The accountant reads the\r\nsame material as unbooked vouchers instead, so this endpoint is only kept for the customer\r\napp and for approvals made before those vouchers existed.",
        "parameters": [
          {
            "name": "templateId",
            "in": "path",
            "description": "Identifier of the template (payment method).",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "periodYear",
            "in": "path",
            "description": "Period year of the approval.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "periodMonth",
            "in": "path",
            "description": "Period month of the approval.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RevenueReportAttachment"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevenueReportAttachment"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevenueReportAttachment"
                }
              }
            }
          },
          "404": {
            "description": "The approval or its attachment could not be found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/SalaryDeviation/months": {
      "get": {
        "tags": [
          "SalaryDeviation"
        ],
        "summary": "Get salary deviation months.",
        "description": "Get salary deviation months for a company if salary deviation enabled.",
        "parameters": [
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SalaryDeviationMonth"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SalaryDeviationMonth"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SalaryDeviationMonth"
                }
              }
            }
          },
          "400": {
            "description": "Salary deviations is disabled for the logged in company"
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/SalaryDeviation/months/{yearMonth}": {
      "get": {
        "tags": [
          "SalaryDeviation"
        ],
        "summary": "Get a specific salary deviation month.",
        "description": "Get a specific salary deviation month for a company if salary deviation enabled.",
        "parameters": [
          {
            "name": "yearMonth",
            "in": "path",
            "description": "Year and month value (e.g. YYYYMM).",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDeviationMonth"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDeviationMonth"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDeviationMonth"
                }
              }
            }
          },
          "400": {
            "description": "Salary deviations is disabled for the logged in company"
          },
          "403": {
            "description": "No permission"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/api/SalaryDeviation/SubmitReport": {
      "post": {
        "tags": [
          "SalaryDeviation"
        ],
        "summary": "Submit a deviation month.",
        "description": "Submit the deviation report for a given year and month",
        "requestBody": {
          "description": "Salary deviation month details.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ReportSubmissionData"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportSubmissionData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportSubmissionData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReportSubmissionData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "400": {
            "description": "Invalid information"
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/SalaryDeviation": {
      "get": {
        "tags": [
          "SalaryDeviation"
        ],
        "summary": "Get salary deviation list.",
        "description": "Get all salary deviations based on the filter.\r\nAll employees get their own salary deviations while salary admin gets company's all salary deviations.",
        "parameters": [
          {
            "name": "YearAndMonth",
            "in": "query",
            "description": "Year and month\r\ne.g. YYYYMM",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PersonId",
            "in": "query",
            "description": "Employee Id",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Types",
            "in": "query",
            "description": "If set will only return deviations of these types",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/SalaryDeviationType"
              }
            }
          },
          {
            "name": "IncludePersonsWithNoDeviations",
            "in": "query",
            "description": "Include persons who does not submit any deviations",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SalaryDeviationDescriptor"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SalaryDeviationDescriptor"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SalaryDeviationDescriptor"
                }
              }
            }
          },
          "400": {
            "description": "Invalid information"
          },
          "403": {
            "description": "No permission"
          }
        }
      },
      "put": {
        "tags": [
          "SalaryDeviation"
        ],
        "summary": "Update salary deviation.",
        "description": "Update a salary deviation instance with given data.",
        "requestBody": {
          "description": "Salary deviation data.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryDeviationPut"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryDeviationPut"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryDeviationPut"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryDeviationPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed without exceptions",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDeviationPutPostStatus"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDeviationPutPostStatus"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDeviationPutPostStatus"
                }
              }
            }
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/SalaryDeviation/{id}": {
      "get": {
        "tags": [
          "SalaryDeviation"
        ],
        "summary": "Get salary deviation instance.",
        "description": "Get a specific salary deviations instance for the given id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique ID of the salary deviation.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDeviation"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDeviation"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDeviation"
                }
              }
            }
          },
          "400": {
            "description": "Invalid information"
          },
          "403": {
            "description": "No permission"
          },
          "404": {
            "description": "Not found"
          }
        }
      },
      "delete": {
        "tags": [
          "SalaryDeviation"
        ],
        "summary": "Delete salary deviation.",
        "description": "Delete an existing salary deviation with given Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the salary deviation to be deleted.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation"
          },
          "400": {
            "description": "Invalid information"
          },
          "403": {
            "description": "No permission"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/api/SalaryDeviation/Create": {
      "post": {
        "tags": [
          "SalaryDeviation"
        ],
        "summary": "Create new salary deviation.",
        "description": "Create new salary deviation instance for given data.",
        "requestBody": {
          "description": "Salary deviation data.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryDeviationPost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryDeviationPost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryDeviationPost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryDeviationPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed without exceptions",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDeviationPutPostStatus"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDeviationPutPostStatus"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDeviationPutPostStatus"
                }
              }
            }
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/SalaryDeviation/PersonMonthlySalaryDeviations": {
      "get": {
        "tags": [
          "SalaryDeviation"
        ],
        "summary": "Get salary deviations per month per user.",
        "description": "Get all monthly salary deviations based on the filter.\r\nAll employees get their own salary deviations while salary admin gets company's all salary deviations.",
        "parameters": [
          {
            "name": "PersonIds",
            "in": "query",
            "description": "Salary deviations that belongs to these persons",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "YearAndMonthFrom",
            "in": "query",
            "description": "Salary deviations from",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "YearAndMonthTo",
            "in": "query",
            "description": "Salary deviations to",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "States",
            "in": "query",
            "description": "Salary deviations in monthly states",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/SalaryDeviationMonthState"
              }
            }
          },
          {
            "name": "TotalFrom",
            "in": "query",
            "description": "Total deviation salary from",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "TotalTo",
            "in": "query",
            "description": "Total deviation salary to",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_PersonMonthlySalaryDeviation"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_PersonMonthlySalaryDeviation"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_PersonMonthlySalaryDeviation"
                }
              }
            }
          }
        }
      }
    },
    "/api/SalaryDrafts": {
      "get": {
        "tags": [
          "SalaryDrafts"
        ],
        "summary": "Get salary deviation draft list",
        "description": "Filters all salary deviation drafts",
        "parameters": [
          {
            "name": "From",
            "in": "query",
            "description": "From Wint.Superkoll.API.Model.YearAndMonth (YYYYMM, inclusive).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "To",
            "in": "query",
            "description": "To Wint.Superkoll.API.Model.YearAndMonth (YYYYMM, inclusive).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "State",
            "in": "query",
            "description": "The Wint.Superkoll.API.Model.SalaryDraftState",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "States",
            "in": "query",
            "description": "Salary drafts in these states",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/SalaryDraftState"
              }
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SalaryDraft"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SalaryDraft"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SalaryDraft"
                }
              }
            }
          },
          "400": {
            "description": "Invalid information"
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/SalaryDrafts/{id}": {
      "get": {
        "tags": [
          "SalaryDrafts"
        ],
        "summary": "Get salary draft instance",
        "description": "Gets a specific salary draft instance by id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique ID of the salary draft.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDraft"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDraft"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDraft"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "SalaryDrafts"
        ],
        "summary": "Update a salary draft status or owner",
        "description": "Allows for:\r\n - updating the salary draft status by id to approved or rejected status (the latter requiring a reject message)\r\n - assigning the draft by id and ownerId to a company salary administrator, who will then be the salary draft todo target",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The resource id",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryDraftPut"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryDraftPut"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryDraftPut"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryDraftPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDraft"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDraft"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDraft"
                }
              }
            }
          },
          "400": {
            "description": "Invalid information"
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/SalaryDrafts/{id}/attachment/{attachmentId}": {
      "get": {
        "tags": [
          "SalaryDrafts"
        ],
        "summary": "Get a salary draft attachment",
        "description": "Returns a salary draft attachment by draft salary draft id and the attachmentId.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the salary draft.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "attachmentId",
            "in": "path",
            "description": "The id of the attachment.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDraftAttachment"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDraftAttachment"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryDraftAttachment"
                }
              }
            }
          },
          "400": {
            "description": "Invalid information"
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/SalaryDrafts/{id}/download": {
      "get": {
        "tags": [
          "SalaryDrafts"
        ],
        "summary": "Download salary draft attachments",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the salary draft.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation"
          },
          "400": {
            "description": "Invalid information"
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/SalaryDrafts/{id}/Accept": {
      "post": {
        "tags": [
          "SalaryDrafts"
        ],
        "summary": "Approve the salary draft given by the id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the salary draft.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/SalaryDrafts/{id}/Reject": {
      "post": {
        "tags": [
          "SalaryDrafts"
        ],
        "summary": "Reject the salary draft given by the id with rejectAction message",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the salary draft.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryDraftRejectAction"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryDraftRejectAction"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryDraftRejectAction"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryDraftRejectAction"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/SalaryDrafts/{id}/Assign": {
      "post": {
        "tags": [
          "SalaryDrafts"
        ],
        "summary": "Forward the salary draft of given id using the information on assignAction",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the salary draft.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryDraftAssignAction"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryDraftAssignAction"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryDraftAssignAction"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryDraftAssignAction"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/SalaryDrafts/SearchSalaryAdmins": {
      "get": {
        "tags": [
          "SalaryDrafts"
        ],
        "summary": "Return list of salary draft assignees according to the given search string",
        "parameters": [
          {
            "name": "SearchStr",
            "in": "query",
            "description": "Search string for salary admin",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeSelf",
            "in": "query",
            "description": "Whether needs to include or exclude the current user",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SalaryAdminSearchInfo"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SalaryAdminSearchInfo"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SalaryAdminSearchInfo"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/SalaryImport": {
      "post": {
        "tags": [
          "SalaryImport"
        ],
        "summary": "A new import file will be created to be handled by Wint",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryImportFile"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryImportFile"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryImportFile"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryImportFile"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/Search": {
      "get": {
        "tags": [
          "Search"
        ],
        "summary": "Return search results for given search string.",
        "parameters": [
          {
            "name": "SearchStr",
            "in": "query",
            "description": "Search text",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SearchResponseItems"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SearchResponseItems"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SearchResponseItems"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/SelfInvoice": {
      "get": {
        "tags": [
          "SelfInvoice"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SelfInvoiceResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelfInvoiceResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelfInvoiceResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "SelfInvoice"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SelfInvoiceImageDataPost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SelfInvoiceImageDataPost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SelfInvoiceImageDataPost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SelfInvoiceImageDataPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "uuid",
                  "nullable": true
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid",
                  "nullable": true
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid",
                  "nullable": true
                }
              }
            }
          }
        }
      }
    },
    "/api/SelfInvoice/id": {
      "get": {
        "tags": [
          "SelfInvoice"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SelfInvoice"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelfInvoice"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelfInvoice"
                }
              }
            }
          }
        }
      }
    },
    "/api/SelfInvoice/{id}/mark-rejected": {
      "post": {
        "tags": [
          "SelfInvoice"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/SelfInvoice/{id}/mark-created": {
      "post": {
        "tags": [
          "SelfInvoice"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/SelfInvoice/{id}/template-invoice": {
      "get": {
        "tags": [
          "SelfInvoice"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                }
              }
            }
          }
        }
      }
    },
    "/api/SelfInvoice/{id}/customer-invoice-id": {
      "get": {
        "tags": [
          "SelfInvoice"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32",
                  "nullable": true
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32",
                  "nullable": true
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32",
                  "nullable": true
                }
              }
            }
          }
        }
      }
    },
    "/api/Series": {
      "get": {
        "tags": [
          "Series"
        ],
        "summary": "Filter series",
        "parameters": [
          {
            "name": "Name",
            "in": "query",
            "description": "Name of series to include",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeImportSeries",
            "in": "query",
            "description": "Include series used for import only",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ExactShortName",
            "in": "query",
            "description": "Exact short name of series to be included",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Accounting.Series"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Accounting.Series"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Accounting.Series"
                }
              }
            }
          }
        }
      }
    },
    "/api/Support/{issueId}/Comments": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "Returns a Wint.Utils.WebApi.ListResponse`1 with filtered comments from the support issue corresponding to the given issueId.",
        "parameters": [
          {
            "name": "issueId",
            "in": "path",
            "description": "The support issue id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SupportComment"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SupportComment"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SupportComment"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Support"
        ],
        "summary": "Adds a comment to the support issue corresponding to the given issueId.",
        "parameters": [
          {
            "name": "issueId",
            "in": "path",
            "description": "The id of the support issue.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The comment to add to the issue.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SupportCommentPost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SupportCommentPost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SupportCommentPost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SupportCommentPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/Support/{issueId}/Attachments/{attachmentId}": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "Returns an attachment corresponding to the given attachmentId that is associated with the given issueId.",
        "parameters": [
          {
            "name": "issueId",
            "in": "path",
            "description": "The id of the support issue.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "attachmentId",
            "in": "path",
            "description": "The id of the attachment.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SupportAttachment"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupportAttachment"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupportAttachment"
                }
              }
            }
          }
        }
      }
    },
    "/api/Support/{issueId}/Attachments/{attachmentId}/Image": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "Returns a streamed data result of the attachment corresponding to the given attachmentId as an image format.\r\nIf the attachment is of type application/pdf, the pdf will be converted to image/png.",
        "parameters": [
          {
            "name": "issueId",
            "in": "path",
            "description": "The id of the support issue.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "attachmentId",
            "in": "path",
            "description": "The id of the attachment.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "The page which should be returned. Relevant if the attachment is of type application/pdf. The page is zero-based.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Support/{issueId}/DownloadAttachment/{attachmentId}": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "Returns a streamed data result of the attachment corresponding to the given attachmentId",
        "parameters": [
          {
            "name": "issueId",
            "in": "path",
            "description": "The id of the support issue.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "attachmentId",
            "in": "path",
            "description": "The id of the attachment.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Support/{issueId}/Export": {
      "get": {
        "tags": [
          "Support"
        ],
        "parameters": [
          {
            "name": "issueId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Support/{issueId}/Attachments/{attachmentId}/Pages": {
      "get": {
        "tags": [
          "Support"
        ],
        "parameters": [
          {
            "name": "issueId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "attachmentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/Support/{issueId}": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "Returns the issue corresponding to the given issueId.",
        "parameters": [
          {
            "name": "issueId",
            "in": "path",
            "description": "The id of the support issue.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SupportIssue"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupportIssue"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupportIssue"
                }
              }
            }
          }
        }
      }
    },
    "/api/Support": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "Returns a Wint.Utils.WebApi.ListResponse`1 of filtered errands.",
        "parameters": [
          {
            "name": "States",
            "in": "query",
            "description": "The states the filtered issues should have.\r\nIf states is empty, all issues will be returned.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/SupportIssueState"
              }
            }
          },
          {
            "name": "Severities",
            "in": "query",
            "description": "The severities the filtered issues should have.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/SupportIssueSeverity"
              }
            }
          },
          {
            "name": "UserIds",
            "in": "query",
            "description": "Find only issues created by this user.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "SearchString",
            "in": "query",
            "description": "Free text search on support issues.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CreatedDateFrom",
            "in": "query",
            "description": "Find all issues created after this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreatedDateTo",
            "in": "query",
            "description": "Find all issues created before this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "LastUpdatedFrom",
            "in": "query",
            "description": "Find all issues last updated after this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "LastUpdatedTo",
            "in": "query",
            "description": "Find all issues last updated before this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SupportIssue"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SupportIssue"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SupportIssue"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Support"
        ],
        "summary": "Creates the given issue.",
        "requestBody": {
          "description": "The issue to create.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SupportIssuePost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SupportIssuePost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SupportIssuePost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SupportIssuePost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/Support/ListItems": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "Returns a Wint.Utils.WebApi.ListResponse`1 of filtered errands.",
        "parameters": [
          {
            "name": "States",
            "in": "query",
            "description": "The states the filtered issues should have.\r\nIf states is empty, all issues will be returned.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/SupportIssueState"
              }
            }
          },
          {
            "name": "Severities",
            "in": "query",
            "description": "The severities the filtered issues should have.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/SupportIssueSeverity"
              }
            }
          },
          {
            "name": "UserIds",
            "in": "query",
            "description": "Find only issues created by this user.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "SearchString",
            "in": "query",
            "description": "Free text search on support issues.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CreatedDateFrom",
            "in": "query",
            "description": "Find all issues created after this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreatedDateTo",
            "in": "query",
            "description": "Find all issues created before this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "LastUpdatedFrom",
            "in": "query",
            "description": "Find all issues last updated after this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "LastUpdatedTo",
            "in": "query",
            "description": "Find all issues last updated before this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SupportIssueListItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SupportIssueListItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_SupportIssueListItem"
                }
              }
            }
          }
        }
      }
    },
    "/api/Support/{issueId}/Resolve": {
      "post": {
        "tags": [
          "Support"
        ],
        "summary": "Sets the issue corresponding to the given issueId to resolved.",
        "parameters": [
          {
            "name": "issueId",
            "in": "path",
            "description": "The id of the issue.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Support/{issueId}/Unresolve": {
      "post": {
        "tags": [
          "Support"
        ],
        "summary": "Sets the issue corresponding to the given issueId to unresolved.",
        "parameters": [
          {
            "name": "issueId",
            "in": "path",
            "description": "The id of the issue.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Support/{issueId}/SendTo/{employeeId}": {
      "post": {
        "tags": [
          "Support"
        ],
        "summary": "Sends the issue corresponding to the given issueId to the \r\nemployee corresponding to the given employeeId.",
        "parameters": [
          {
            "name": "issueId",
            "in": "path",
            "description": "The id of the issue.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "employeeId",
            "in": "path",
            "description": "The id of the employee.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Support/{issueId}/AgencyForward": {
      "post": {
        "tags": [
          "Support"
        ],
        "summary": "Forwards the byrå-stamped issue corresponding to the given issueId to Wint or to a\r\nspecific colleague at the same byrå. The Byråsupport replacement for M:Wint.Superkoll.API.Site.Controllers.SupportController.SendToAsync(System.Int32,System.Int32) on a\r\nstamped issue.",
        "parameters": [
          {
            "name": "issueId",
            "in": "path",
            "description": "The id of the issue.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Either forward-to-Wint, or a colleague's person id.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AgencyForwardTarget"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgencyForwardTarget"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AgencyForwardTarget"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AgencyForwardTarget"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Support/{issueId}/AgencyForwardTargets": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "Returns the byrå colleagues the issue corresponding to the given issueId may be\r\nforwarded to via M:Wint.Superkoll.API.Site.Controllers.SupportController.AgencyForwardAsync(System.Int32,Wint.Superkoll.API.Model.AgencyForwardTarget).",
        "parameters": [
          {
            "name": "issueId",
            "in": "path",
            "description": "The id of the issue.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/User"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/User"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/User"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Support/{issueId}/Confirm": {
      "post": {
        "tags": [
          "Support"
        ],
        "summary": "Confirms the issue corresponding to the given issueId.",
        "parameters": [
          {
            "name": "issueId",
            "in": "path",
            "description": "The id of the issue.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Support/CustomerCase/Post/{commentId}/Rating": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "Gets the rating of the issue comment corresponding to the given commentId.",
        "parameters": [
          {
            "name": "commentId",
            "in": "path",
            "description": "The id of the comment.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SupportCommentRating"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupportCommentRating"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupportCommentRating"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Support"
        ],
        "summary": "Sets the rating of the issue comment corresponding to the given commentId.",
        "parameters": [
          {
            "name": "commentId",
            "in": "path",
            "description": "The id of the comment.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The value that will be appliead as a rating.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SupportCommentRatingPost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SupportCommentRatingPost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SupportCommentRatingPost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SupportCommentRatingPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Support"
        ],
        "summary": "Deletes the rating of the issue comment corresponding to the given commentId.",
        "parameters": [
          {
            "name": "commentId",
            "in": "path",
            "description": "The id of the comment.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Support/GetSuggestedSupportPersons": {
      "get": {
        "tags": [
          "Support"
        ],
        "parameters": [
          {
            "name": "Count",
            "in": "query",
            "description": "The max number of persons to be fetched",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SupportSuggestedPersonsCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupportSuggestedPersonsCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupportSuggestedPersonsCollection"
                }
              }
            }
          }
        }
      }
    },
    "/api/SupportAgent/Sessions": {
      "post": {
        "tags": [
          "SupportAgent"
        ],
        "summary": "Opens a session.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentSessionCreated"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentSessionCreated"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentSessionCreated"
                }
              }
            }
          }
        }
      }
    },
    "/api/SupportAgent/Sessions/{sessionId}/Messages": {
      "post": {
        "tags": [
          "SupportAgent"
        ],
        "summary": "Sends one customer message and returns the single reply it produced.",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentMessageRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentMessageRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentMessageRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentMessageRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentReply"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentReply"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentReply"
                }
              }
            }
          }
        }
      }
    },
    "/api/SupportAgent/Sessions/{sessionId}/Case": {
      "post": {
        "tags": [
          "SupportAgent"
        ],
        "summary": "Files the case the agent drafted.",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentCaseRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentCaseRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentCaseRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentCaseRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentCaseCreated"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentCaseCreated"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentCaseCreated"
                }
              }
            }
          }
        }
      }
    },
    "/api/SupportAgent/Sessions/{sessionId}/CaseSummary": {
      "post": {
        "tags": [
          "SupportAgent"
        ],
        "summary": "What the in-chat support card opens with: subject, summary, category and the facts for\r\nsupport. Sends nothing - the case itself goes through `api/Support`, as from the form.",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentCaseSummaryRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentCaseSummaryRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentCaseSummaryRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentCaseSummaryRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentCaseSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentCaseSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentCaseSummary"
                }
              }
            }
          }
        }
      }
    },
    "/api/Survey/{id}": {
      "get": {
        "tags": [
          "Survey"
        ],
        "summary": "Returns a Wint.Superkoll.API.Model.Surveys.Survey for the specific id id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of survey to fetch",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Surveys.Survey"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Surveys.Survey"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Surveys.Survey"
                }
              }
            }
          }
        }
      }
    },
    "/api/Survey/surveyResponses": {
      "post": {
        "tags": [
          "Survey"
        ],
        "summary": "Saves a Wint.Superkoll.API.Model.Surveys.SurveyResponseInputModel.",
        "requestBody": {
          "description": "Survey response to save",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Surveys.SurveyResponseInputModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Surveys.SurveyResponseInputModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Surveys.SurveyResponseInputModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Surveys.SurveyResponseInputModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Survey/{id}/Status": {
      "get": {
        "tags": [
          "Survey"
        ],
        "summary": "Return a Wint.Superkoll.API.Model.Surveys.SurveyStatus for the specific id id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Surveys.SurveyStatus"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Surveys.SurveyStatus"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Surveys.SurveyStatus"
                }
              }
            }
          }
        }
      }
    },
    "/api/Survey/{id}/SurveyCustomerCase": {
      "put": {
        "tags": [
          "Survey"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Survey/{id}/comments": {
      "post": {
        "tags": [
          "Survey"
        ],
        "summary": "Add a survey comment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "SurveyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Surveys.SurveyCommentRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Surveys.SurveyCommentRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Surveys.SurveyCommentRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Surveys.SurveyCommentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Surveys.SurveyComment"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Surveys.SurveyComment"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Surveys.SurveyComment"
                }
              }
            }
          }
        }
      }
    },
    "/api/Survey/{id}/send": {
      "put": {
        "tags": [
          "Survey"
        ],
        "summary": "Assigns survey to another person",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Surveys.SurveySendToPersonAction"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Surveys.SurveySendToPersonAction"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Surveys.SurveySendToPersonAction"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Surveys.SurveySendToPersonAction"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Survey/GetSurveyPersons": {
      "get": {
        "tags": [
          "Survey"
        ],
        "summary": "Returns persons eligable to surveys",
        "parameters": [
          {
            "name": "SearchStr",
            "in": "query",
            "description": "Search string for invoice person name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Wint.Utils.WebApi.SearchResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Wint.Utils.WebApi.SearchResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Wint.Utils.WebApi.SearchResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/Survey/GetSurveyPersonSuggestions": {
      "get": {
        "tags": [
          "Survey"
        ],
        "summary": "returns persons eligable to surveys",
        "parameters": [
          {
            "name": "Count",
            "in": "query",
            "description": "number of max persons to be fetched",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Surveys.SurveyPersonsSuggestionCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Surveys.SurveyPersonsSuggestionCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Surveys.SurveyPersonsSuggestionCollection"
                }
              }
            }
          }
        }
      }
    },
    "/api/Survey/attachment/{id}": {
      "get": {
        "tags": [
          "Survey"
        ],
        "summary": "Get the survey attachment which is associate with the given id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique ID for a survey attachment.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Surveys.SurveyAttachment"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Surveys.SurveyAttachment"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Surveys.SurveyAttachment"
                }
              }
            }
          }
        }
      }
    },
    "/api/TimeReport/Report": {
      "get": {
        "tags": [
          "TimeReport"
        ],
        "summary": "Gets a list of filtered time reports",
        "description": "Gets a list of filtered time reports",
        "parameters": [
          {
            "name": "ProjectId",
            "in": "query",
            "description": "Id for the time reporting project",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "BusinessUnitId",
            "in": "query",
            "description": "Id for the business unit",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "BusinessUnitManagerId",
            "in": "query",
            "description": "Business unit manager id",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PersonId",
            "in": "query",
            "description": "Id for the employee",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "FromDate",
            "in": "query",
            "description": "From Date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ToDate",
            "in": "query",
            "description": "To Date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ExcludeInvoiced",
            "in": "query",
            "description": "Exclude invoiced records",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "CategoryId",
            "in": "query",
            "description": "Id for project category",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OnlyIncludeHourlyIndividualBillingModel",
            "in": "query",
            "description": "When true only data for hourly",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllEmployees",
            "in": "query",
            "description": "Includes persons without salary settings or reported time if they have the employee flag set (and not auditor)",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeOnlyDeviations",
            "in": "query",
            "description": "Includes only deviations",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TimeReporting.TimeReportingReportRow"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TimeReporting.TimeReportingReportRow"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TimeReporting.TimeReportingReportRow"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/TimeReport/Export": {
      "get": {
        "tags": [
          "TimeReport"
        ],
        "summary": "Creates and exports a list of time reports\r\nExporting is done through exporting a class called TimeReportingExportRow",
        "description": "Creates and exports a list of time reports\r\nExporting is done through exporting a class called TimeReportingExportRow",
        "parameters": [
          {
            "name": "ProjectId",
            "in": "query",
            "description": "Id for the time reporting project",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "BusinessUnitId",
            "in": "query",
            "description": "Id for the business unit",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "BusinessUnitManagerId",
            "in": "query",
            "description": "Business unit manager id",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PersonId",
            "in": "query",
            "description": "Id for the employee",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "FromDate",
            "in": "query",
            "description": "From Date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ToDate",
            "in": "query",
            "description": "To Date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ExcludeInvoiced",
            "in": "query",
            "description": "Exclude invoiced records",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "CategoryId",
            "in": "query",
            "description": "Id for project category",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OnlyIncludeHourlyIndividualBillingModel",
            "in": "query",
            "description": "When true only data for hourly",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeAllEmployees",
            "in": "query",
            "description": "Includes persons without salary settings or reported time if they have the employee flag set (and not auditor)",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeOnlyDeviations",
            "in": "query",
            "description": "Includes only deviations",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TimeReporting.TimeReportingExportRow"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TimeReporting.TimeReportingExportRow"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TimeReporting.TimeReportingExportRow"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/TimeReport/Status": {
      "get": {
        "tags": [
          "TimeReport"
        ],
        "summary": "If all are attested the attested status will be returned.\r\nIf all are attested or locked the locked status will be returned.\r\nIf some time report in that range has created status the created status will be returned.",
        "parameters": [
          {
            "name": "employeeId",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TimeReporting.TimeReportStatus"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimeReporting.TimeReportStatus"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimeReporting.TimeReportStatus"
                }
              }
            }
          }
        }
      }
    },
    "/api/Transaction": {
      "get": {
        "tags": [
          "Transaction"
        ],
        "summary": "Filter Transactions",
        "parameters": [
          {
            "name": "IncludeUB",
            "in": "query",
            "description": "Include outgoing balance",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IBBookingDateStart",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "AccountRange",
            "in": "query",
            "description": "Account range. \r\nExample: 1000<1200,1400<1500-1350\r\nWill include account in range 1000 to 1200 AND 1400 to 1500 but exclude account 1350",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "AccountStart",
            "in": "query",
            "description": "Start of account number",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "AccountEnd",
            "in": "query",
            "description": "End of account number",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "VoucherId",
            "in": "query",
            "description": "Voucher Id",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "IncludeDeletedTransactions",
            "in": "query",
            "description": "Include deleted transactions",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Checked",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "MinAmount",
            "in": "query",
            "description": "Minimum amount to include",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MaxAmount",
            "in": "query",
            "description": "Maximum amount to include",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "VoucherNumberStart",
            "in": "query",
            "description": "Start of voucher number",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "VoucherNumberEnd",
            "in": "query",
            "description": "End of voucher number",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Series",
            "in": "query",
            "description": "List of series ids to include",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "Dimensions",
            "in": "query",
            "description": "List of dimension ids to include",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "BookingDateStart",
            "in": "query",
            "description": "Start of booking date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "BookingDateEnd",
            "in": "query",
            "description": "End of booking date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Text",
            "in": "query",
            "description": "Text to filter on",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Accounts",
            "in": "query",
            "description": "List of account ids to include",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "AccountNumbers",
            "in": "query",
            "description": "List of account numbers",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "Type",
            "in": "query",
            "description": "Voucher type",
            "schema": {
              "$ref": "#/components/schemas/ShowVoucherTypes"
            }
          },
          {
            "name": "MissingReference",
            "in": "query",
            "description": "Include only transactions with missing reference",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ReferenceType",
            "in": "query",
            "description": "Reference type to include",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeVoucher",
            "in": "query",
            "description": "Include voucher information",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "CategoryId",
            "in": "query",
            "description": "Transaction Category",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "UseAuditCategories",
            "in": "query",
            "description": "Interpret Wint.Superkoll.API.Model.Accounting.TransactionFilter.CategoryId as a value of Wint.Model.Enums.AuditCategories",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Accounting.Transaction"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Accounting.Transaction"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Accounting.Transaction"
                }
              }
            }
          }
        }
      }
    },
    "/api/Transaction/Series": {
      "get": {
        "tags": [
          "Transaction"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Wint.Utils.WebApi.SearchResult"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Wint.Utils.WebApi.SearchResult"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Wint.Utils.WebApi.SearchResult"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Transaction/Categories": {
      "get": {
        "tags": [
          "Transaction"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Accounting.Category"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Accounting.Category"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Accounting.Category"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Unit": {
      "post": {
        "tags": [
          "Unit"
        ],
        "summary": "Creates a unit based on given unit data",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UnitPost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnitPost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UnitPost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UnitPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Unit"
        ],
        "summary": "Returns a list of units based on given unit filter",
        "parameters": [
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Unit"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Unit"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Unit"
                }
              }
            }
          }
        }
      }
    },
    "/api/Unit/{id}": {
      "get": {
        "tags": [
          "Unit"
        ],
        "summary": "Returns a unit based on given id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Unit"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unit"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unit"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Unit"
        ],
        "summary": "Delete a unit based on given id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/auth/key": {
      "delete": {
        "tags": [
          "UserApiKey"
        ],
        "summary": "Revokes the user API key this request is authenticated with. The key stops working immediately.\r\nAlso evicts a key that was already deactivated in the database but still authenticates from the cache.",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/auth/keys": {
      "delete": {
        "tags": [
          "UserApiKey"
        ],
        "summary": "Revokes every user API key belonging to the authenticated user, including the one in use.",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/VatReports/Available": {
      "get": {
        "tags": [
          "VatReports"
        ],
        "summary": "Whether the selected company has VAT reports to show the signed-in advisor.",
        "description": "The web app asks this before showing its shortcut. 403 for a non-advisor means \"do not show it\";\r\n`available` is false for a company without an external agency or without Wint Accounting.",
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VatReportsAvailability"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VatReportsAvailability"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VatReportsAvailability"
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/VatReports": {
      "get": {
        "tags": [
          "VatReports"
        ],
        "summary": "List the selected company's VAT reports, newest period first.",
        "description": "Corrections included. 0-based `page`; `numPerPage` is at most 12, because each row reads its box 49\r\nfrom Wint Accounting. A company the reports are not available for gets an empty list.",
        "parameters": [
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_VatReportSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_VatReportSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_VatReportSummary"
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/VatReports/{id}": {
      "get": {
        "tags": [
          "VatReports"
        ],
        "summary": "Get one VAT report with every box of the declaration.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the report in Wint Accounting.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VatReportDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VatReportDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VatReportDetails"
                }
              }
            }
          },
          "404": {
            "description": "The report could not be found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "No permission"
          }
        }
      }
    },
    "/api/Voucher/{id}": {
      "get": {
        "tags": [
          "Voucher"
        ],
        "summary": "Returns a voucher based on given voucher id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Accounting.Voucher"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accounting.Voucher"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accounting.Voucher"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Voucher"
        ],
        "summary": "Deletes a voucher",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of voucher",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Voucher": {
      "post": {
        "tags": [
          "Voucher"
        ],
        "summary": "Creates a voucher",
        "requestBody": {
          "description": "Voucher",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Accounting.VoucherPost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Accounting.VoucherPost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Accounting.VoucherPost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Accounting.VoucherPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Voucher"
        ],
        "summary": "List vouchers",
        "parameters": [
          {
            "name": "ImportNumber",
            "in": "query",
            "description": "Import number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ImportSeries",
            "in": "query",
            "description": "Import series",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceId",
            "in": "query",
            "description": "Reference Id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceType",
            "in": "query",
            "description": "Reference Type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReferenceIds",
            "in": "query",
            "description": "List of Reference Ids to include",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "MissingReference",
            "in": "query",
            "description": "Has missing reference",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Type",
            "in": "query",
            "description": "Type of voucher",
            "schema": {
              "$ref": "#/components/schemas/ShowVoucherTypes"
            }
          },
          {
            "name": "VoucherNumberMin",
            "in": "query",
            "description": "Voucher minimum number",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "VoucherNumberMax",
            "in": "query",
            "description": "Voucher maximum nunmber",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SeriesShortName",
            "in": "query",
            "description": "Series short name to include",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Series",
            "in": "query",
            "description": "List of series ids to include",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "BookingDateStart",
            "in": "query",
            "description": "Start of booking date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "BookingDateEnd",
            "in": "query",
            "description": "End of booking date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Text",
            "in": "query",
            "description": "Text of voucher to include",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Accounts",
            "in": "query",
            "description": "List of accounts to be included",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "IncludeTransactions",
            "in": "query",
            "description": "Include transactions in data",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ImportId",
            "in": "query",
            "description": "Import Id",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "CreatedFrom",
            "in": "query",
            "description": "Created from",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreatedBefore",
            "in": "query",
            "description": "Created to",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "IncludeNumTransactions",
            "in": "query",
            "description": "Include number of transactions",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumPerPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ThenByProperty",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ThenByDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsAutoPaginating",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeSummary",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Accounting.Voucher"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Accounting.Voucher"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Wint.Utils.WebApi.ListResponseOf_Accounting.Voucher"
                }
              }
            }
          }
        }
      }
    },
    "/api/VoucherImages/{id}": {
      "get": {
        "tags": [
          "VoucherImages"
        ],
        "summary": "Get voucher image",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of VoucherImage",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Accounting.VoucherImage"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accounting.VoucherImage"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accounting.VoucherImage"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "VoucherImages"
        ],
        "summary": "Delete VoucherImage (will be marked as removed)",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/VoucherImages": {
      "post": {
        "tags": [
          "VoucherImages"
        ],
        "summary": "Create VoucherImage",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Accounting.VoucherImagePost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Accounting.VoucherImagePost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Accounting.VoucherImagePost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Accounting.VoucherImagePost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          }
        }
      }
    },
    "/api/VoucherImages/{id}/DownloadPDF": {
      "get": {
        "tags": [
          "VoucherImages"
        ],
        "summary": "Download the voucher attachments as PDF",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Voucher id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/WintSalaryDeviation/DeviationTypes": {
      "get": {
        "tags": [
          "WintSalaryDeviation"
        ],
        "summary": "Fetches salary deviation types based on the provided filter criteria.",
        "description": "For companies on Wint Lön; any other company, including one whose activation is pending, gets 400\r\n`WintSalaryIsNotActivated` (deviation-reporting companies use `api/SalaryDeviation`).\r\nActs with the permissions of the person the credentials belong to: an employee reaches their own deviations,\r\na business-unit manager with salary rights their unit's, a salary or deviation admin everyone's.",
        "parameters": [
          {
            "name": "Name",
            "in": "query",
            "description": "Gets or sets the name of the salary deviation type filter.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Categories",
            "in": "query",
            "description": "Gets or sets the categories to filter salary deviations by.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviationTypeCategory"
              }
            }
          },
          {
            "name": "PersonExternalId",
            "in": "query",
            "description": "When set, scopes the returned deviation types to this employee (person external id). Forwarded to\r\nWint.Salary, which narrows the list to the employee's template group and hides vacation types when\r\nthe employee has no vacation. Null lists the company-level types (e.g. admin browsing).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviationType"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviationType"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviationType"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/WintSalaryDeviation/mutable": {
      "post": {
        "tags": [
          "WintSalaryDeviation"
        ],
        "summary": "Creates a new salary deviation and returns re-approval information.",
        "description": "For companies on Wint Lön; any other company, including one whose activation is pending, gets 400\r\n`WintSalaryIsNotActivated` (deviation-reporting companies use `api/SalaryDeviation`).\r\nActs with the permissions of the person the credentials belong to: an employee reaches their own deviations,\r\na business-unit manager with salary rights their unit's, a salary or deviation admin everyone's.\r\nNot idempotent: a repeated request creates another deviation, or is rejected for overlapping the first one.\r\nAfter a timeout or a lost response, list the person's deviations before retrying to see whether the first\r\nrequest went through. Parental-leave types need a `ChildId` from `persons/{personId}/children`.",
        "requestBody": {
          "description": "Salary deviation data",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviationCreateRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviationCreateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviationCreateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviationCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/WintSalary.SalaryMonthMutationResultOf_System.Guid"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WintSalary.SalaryMonthMutationResultOf_System.Guid"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/WintSalary.SalaryMonthMutationResultOf_System.Guid"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/WintSalaryDeviation/mutable/{deviationId}": {
      "put": {
        "tags": [
          "WintSalaryDeviation"
        ],
        "summary": "Updates an existing salary deviation and returns re-approval information.",
        "description": "For companies on Wint Lön; any other company, including one whose activation is pending, gets 400\r\n`WintSalaryIsNotActivated` (deviation-reporting companies use `api/SalaryDeviation`).\r\nActs with the permissions of the person the credentials belong to: an employee reaches their own deviations,\r\na business-unit manager with salary rights their unit's, a salary or deviation admin everyone's.",
        "parameters": [
          {
            "name": "deviationId",
            "in": "path",
            "description": "Salary deviation Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Deviation update data",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviationUpdateRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviationUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviationUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviationUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/WintSalary.SalaryMonthMutationResultBase"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WintSalary.SalaryMonthMutationResultBase"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/WintSalary.SalaryMonthMutationResultBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "WintSalaryDeviation"
        ],
        "summary": "Deletes an existing salary deviation and returns re-approval information.\r\nA deviation is stored as one period per calendar month its dates fall in; without `yearMonth` the\r\nwhole deviation is deleted, with it only the periods of that month (or of the range up to\r\n`yearMonthTo`).",
        "description": "For companies on Wint Lön; any other company, including one whose activation is pending, gets 400\r\n`WintSalaryIsNotActivated` (deviation-reporting companies use `api/SalaryDeviation`).\r\nActs with the permissions of the person the credentials belong to: an employee reaches their own deviations,\r\na business-unit manager with salary rights their unit's, a salary or deviation admin everyone's.",
        "parameters": [
          {
            "name": "deviationId",
            "in": "path",
            "description": "Salary deviation Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "yearMonth",
            "in": "query",
            "description": "Calendar month (YYYYMM) of the first period to delete - the month the dates fall in,\r\n            not the salary month. Omit to delete the whole deviation.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "yearMonthTo",
            "in": "query",
            "description": "Last month (YYYYMM) of the range to delete; requires `yearMonth`.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/WintSalary.SalaryMonthMutationResultBase"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WintSalary.SalaryMonthMutationResultBase"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/WintSalary.SalaryMonthMutationResultBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/WintSalaryDeviation": {
      "get": {
        "tags": [
          "WintSalaryDeviation"
        ],
        "summary": "Fetches salary deviations based on filter",
        "description": "For companies on Wint Lön; any other company, including one whose activation is pending, gets 400\r\n`WintSalaryIsNotActivated` (deviation-reporting companies use `api/SalaryDeviation`).\r\nActs with the permissions of the person the credentials belong to: an employee reaches their own deviations,\r\na business-unit manager with salary rights their unit's, a salary or deviation admin everyone's.\r\nWithout `PersonId`, an admin gets every employee's deviations and anyone else their own; a\r\n`PersonId` the caller may not manage gets 403.",
        "parameters": [
          {
            "name": "YearMonth",
            "in": "query",
            "description": "Calendar month (YYYYMM) the deviation's dates fall in, not the salary month it is paid in. Returns the\r\ndeviations whose dates overlap that month, each cut down to that month's part (`FullDeviationLoaded`\r\nis false when the deviation also spans other months). Omit to get every deviation in full.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PersonId",
            "in": "query",
            "description": "Unique identifier for the person to filter salary deviations.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "DeviationTypeIds",
            "in": "query",
            "description": "Salary deviation types to be filtered.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviation"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviation"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviation"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/WintSalaryDeviation/{deviationId}": {
      "get": {
        "tags": [
          "WintSalaryDeviation"
        ],
        "summary": "Fetches a salary deviation by its ID for the specified optional year-month range.\r\nA deviation is stored as one period per calendar month its dates fall in. Without `yearMonth` the whole\r\ndeviation is returned; with it, the dates, value and state describe only the selected months\r\n(`FullDeviationLoaded` is then false if there are others), and a month with no period gives 404.",
        "description": "For companies on Wint Lön; any other company, including one whose activation is pending, gets 400\r\n`WintSalaryIsNotActivated` (deviation-reporting companies use `api/SalaryDeviation`).\r\nActs with the permissions of the person the credentials belong to: an employee reaches their own deviations,\r\na business-unit manager with salary rights their unit's, a salary or deviation admin everyone's.",
        "parameters": [
          {
            "name": "deviationId",
            "in": "path",
            "description": "Salary deviation Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "yearMonth",
            "in": "query",
            "description": "Calendar month (YYYYMM) to select - the month the dates fall in, not the salary\r\n            month. Omit for the whole deviation.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "yearMonthTo",
            "in": "query",
            "description": "Last month (YYYYMM) of a range to select; requires `yearMonth`.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviation"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviation"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviation"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/WintSalaryDeviation/persons/{personId}/children": {
      "get": {
        "tags": [
          "WintSalaryDeviation"
        ],
        "summary": "Retrieves the list of children for a specific person.",
        "description": "For companies on Wint Lön; any other company, including one whose activation is pending, gets 400\r\n`WintSalaryIsNotActivated` (deviation-reporting companies use `api/SalaryDeviation`).\r\nActs with the permissions of the person the credentials belong to: an employee reaches their own children,\r\na business-unit manager with salary rights those of their unit, a salary or deviation admin everyone's.",
        "parameters": [
          {
            "name": "personId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WintSalary.Deviations.Child"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WintSalary.Deviations.Child"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WintSalary.Deviations.Child"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "WintSalaryDeviation"
        ],
        "summary": "Creates a new child for a specific person.",
        "description": "For companies on Wint Lön; any other company, including one whose activation is pending, gets 400\r\n`WintSalaryIsNotActivated` (deviation-reporting companies use `api/SalaryDeviation`).\r\nActs with the permissions of the person the credentials belong to: an employee reaches their own children,\r\na business-unit manager with salary rights those of their unit, a salary or deviation admin everyone's.",
        "parameters": [
          {
            "name": "personId",
            "in": "path",
            "description": "Person external Id",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Child creation data",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/WintSalary.Deviations.ChildForCreate"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WintSalary.Deviations.ChildForCreate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/WintSalary.Deviations.ChildForCreate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/WintSalary.Deviations.ChildForCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/WintSalary.Deviations.Child"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WintSalary.Deviations.Child"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/WintSalary.Deviations.Child"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Accounting.Account": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Account Id",
            "format": "uuid"
          },
          "Name": {
            "type": "string",
            "description": "Account Name",
            "nullable": true
          },
          "Ib": {
            "type": "number",
            "description": "Incoming balance",
            "format": "double"
          },
          "Number": {
            "type": "integer",
            "description": "Account number",
            "format": "int32"
          },
          "SRU": {
            "type": "integer",
            "description": "SRU-number",
            "format": "int32"
          },
          "LockedTo": {
            "type": "string",
            "description": "Account locked from bookkeeping until this date",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Accounting.AccountBalance": {
        "type": "object",
        "properties": {
          "Balance": {
            "type": "number",
            "description": "Account balance",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Accounting.AccountInfo": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Account id",
            "format": "uuid"
          },
          "Number": {
            "type": "integer",
            "description": "Account number",
            "format": "int32"
          },
          "Description": {
            "type": "string",
            "description": "Account description",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Accounting.Category": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Category Id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Category name",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "Category description",
            "nullable": true
          },
          "AccountRangeText": {
            "type": "string",
            "description": "Account range description",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Accounting category"
      },
      "Accounting.DailyTurnover": {
        "type": "object",
        "properties": {
          "Day": {
            "type": "string",
            "description": "Day",
            "format": "date-time"
          },
          "Account": {
            "$ref": "#/components/schemas/Accounting.AccountInfo"
          },
          "Amount": {
            "type": "number",
            "description": "Amount",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Accounting.DimensionReport": {
        "type": "object",
        "properties": {
          "Dimensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Accounting.DimensionReportDimension"
            },
            "description": "List of dimension requests",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Accounting.DimensionReportAccountData": {
        "type": "object",
        "properties": {
          "AccountNumber": {
            "type": "integer",
            "description": "Account number",
            "format": "int32"
          },
          "AccountId": {
            "type": "string",
            "description": "Account id",
            "format": "uuid"
          },
          "AccountDescription": {
            "type": "string",
            "description": "Account Description",
            "nullable": true
          },
          "Year": {
            "type": "integer",
            "description": "Year",
            "format": "int32"
          },
          "Month": {
            "type": "integer",
            "description": "Month",
            "format": "int32"
          },
          "Amount": {
            "type": "number",
            "description": "Amount",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Accounting.DimensionReportDimension": {
        "type": "object",
        "properties": {
          "DimensionId": {
            "type": "string",
            "description": "Dimension Id",
            "format": "uuid"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "ShortName": {
            "type": "string",
            "description": "Short name of dimension",
            "nullable": true
          },
          "TypeName": {
            "type": "string",
            "description": "Dimension Type name",
            "nullable": true
          },
          "Data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Accounting.DimensionReportAccountData"
            },
            "description": "List of Dimension Report Account data to include in report",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Accounting.MonthlyIb": {
        "type": "object",
        "properties": {
          "Amount": {
            "type": "number",
            "description": "Amount",
            "format": "double"
          },
          "Account": {
            "$ref": "#/components/schemas/Accounting.AccountInfo"
          }
        },
        "additionalProperties": false
      },
      "Accounting.MonthlyTurnover": {
        "type": "object",
        "properties": {
          "YearMonth": {
            "type": "integer",
            "description": "Year and month, yyyyMM",
            "format": "int32"
          },
          "Account": {
            "$ref": "#/components/schemas/Accounting.AccountInfo"
          },
          "Amount": {
            "type": "number",
            "description": "Amount",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Accounting.Report": {
        "type": "object",
        "properties": {
          "Turnover": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Accounting.MonthlyTurnover"
            },
            "description": "Turnover",
            "nullable": true
          },
          "DailyTurnover": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Accounting.DailyTurnover"
            },
            "description": "Turnover, daily",
            "nullable": true
          },
          "Ibs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Accounting.MonthlyIb"
            },
            "description": "Incoming ibs",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Accounting.RevenueAccountOption": {
        "type": "object",
        "properties": {
          "Vat": {
            "type": "number",
            "description": "The VAT rate (0, 6, 12 or 25) this account is selectable for.",
            "format": "double"
          },
          "Number": {
            "type": "integer",
            "description": "Account number.",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Account name from the chart of accounts.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Accounting.RevenueAccountsResponse": {
        "type": "object",
        "properties": {
          "Enabled": {
            "type": "boolean",
            "description": "Whether custom revenue accounts per article are enabled for the company."
          },
          "Accounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Accounting.RevenueAccountOption"
            },
            "description": "The selectable accounts: the Heart-configured intervals per VAT rate,\r\n            intersected with the company's active chart of accounts.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Data for the article form's revenue account picker."
      },
      "Accounting.Series": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Name of series",
            "nullable": true
          },
          "ShortName": {
            "type": "string",
            "description": "Short name of series",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "description": "Series Id",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "Accounting.SimplifiedTransaction": {
        "type": "object",
        "properties": {
          "Account": {
            "type": "integer",
            "description": "Account of the transaction.",
            "format": "int32"
          },
          "AccountName": {
            "type": "string",
            "description": "Account name of the transaction.",
            "nullable": true
          },
          "Amount": {
            "type": "number",
            "description": "Amount of the transaction.",
            "format": "double"
          },
          "Text": {
            "type": "string",
            "description": "Transaction text for the transaction.",
            "nullable": true
          },
          "Dimensions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Dimensions for the transaction.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represent a simplified version of transaction of voucher."
      },
      "Accounting.SimplifiedVoucher": {
        "type": "object",
        "properties": {
          "Series": {
            "type": "string",
            "description": "Series of the voucher.",
            "nullable": true
          },
          "VoucherNumber": {
            "type": "integer",
            "description": "Voucher number.",
            "format": "int32"
          },
          "Text": {
            "type": "string",
            "description": "The text of the voucher.",
            "nullable": true
          },
          "BookingDate": {
            "type": "string",
            "description": "The booking date of the voucher.",
            "format": "date-time"
          },
          "OriginalCurrency": {
            "type": "string",
            "description": "The original currency of the voucher.",
            "nullable": true
          },
          "Currency": {
            "type": "string",
            "description": "Currency of the voucher.",
            "nullable": true
          },
          "Transactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Accounting.SimplifiedTransaction"
            },
            "description": "Transactions belongs to voucher.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represent the simplified version of voucher information."
      },
      "Accounting.Transaction": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Transaction Id",
            "format": "uuid"
          },
          "VoucherId": {
            "type": "string",
            "description": "Voucher Id",
            "format": "uuid"
          },
          "AccountNumber": {
            "type": "integer",
            "description": "Account number",
            "format": "int32"
          },
          "AccountName": {
            "type": "string",
            "description": "Account name",
            "nullable": true
          },
          "VoucherText": {
            "type": "string",
            "description": "Voucher text",
            "nullable": true
          },
          "VoucherSeriesName": {
            "type": "string",
            "description": "Voucher series name",
            "nullable": true
          },
          "VoucherSeriesShortName": {
            "type": "string",
            "description": "Voucher series short name",
            "nullable": true
          },
          "VoucherNumber": {
            "type": "integer",
            "description": "Voucher number",
            "format": "int32"
          },
          "Amount": {
            "type": "number",
            "description": "Transaction amount",
            "format": "double"
          },
          "Text": {
            "type": "string",
            "description": "Transaction text",
            "nullable": true
          },
          "BookingDate": {
            "type": "string",
            "description": "Booking date",
            "format": "date-time"
          },
          "AccountId": {
            "type": "string",
            "description": "Account Id",
            "format": "uuid"
          },
          "Dimensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Dimension"
            },
            "description": "Dimensions",
            "nullable": true
          },
          "OriginalAmount": {
            "type": "number",
            "description": "Original amount if not SEK",
            "format": "double",
            "nullable": true
          },
          "VoucherReferenceId": {
            "type": "integer",
            "description": "Reference Id of the voucher",
            "format": "int32",
            "nullable": true
          },
          "VoucherReferenceType": {
            "$ref": "#/components/schemas/Accounting.VoucherType"
          },
          "CorrespondentName": {
            "type": "string",
            "description": "Name of the Sender/Recipient",
            "nullable": true
          },
          "CorrespondentId": {
            "type": "integer",
            "description": "Id of the Sender/Recipient",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Accounting.TransactionPost": {
        "type": "object",
        "properties": {
          "Amount": {
            "type": "number",
            "description": "Transaction amount",
            "format": "double"
          },
          "Text": {
            "type": "string",
            "description": "Transaction text",
            "nullable": true
          },
          "AccountId": {
            "type": "string",
            "description": "Account Id",
            "format": "uuid"
          },
          "OriginalAmount": {
            "type": "number",
            "description": "Original amount (if other than SEK)",
            "format": "double",
            "nullable": true
          },
          "Dimensions": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "List of dimensions",
            "nullable": true
          },
          "AccountNumber": {
            "type": "integer",
            "description": "Account number of transaction",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Accounting.Voucher": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Voucher Id",
            "format": "uuid"
          },
          "Created": {
            "type": "string",
            "description": "Created date",
            "format": "date-time"
          },
          "CreatedById": {
            "type": "integer",
            "description": "Created By",
            "format": "int32",
            "nullable": true
          },
          "Deleted": {
            "type": "boolean",
            "description": "Is deleted"
          },
          "Number": {
            "type": "integer",
            "description": "Voucher number",
            "format": "int32"
          },
          "Text": {
            "type": "string",
            "description": "Voucher text",
            "nullable": true
          },
          "BookingDate": {
            "type": "string",
            "description": "Voucher booking date",
            "format": "date-time"
          },
          "SeriesId": {
            "type": "string",
            "description": "Series Id",
            "format": "uuid"
          },
          "SeriesShortName": {
            "type": "string",
            "description": "Series short name",
            "nullable": true
          },
          "SeriesName": {
            "type": "string",
            "description": "Series name",
            "nullable": true
          },
          "ReplacementVoucherId": {
            "type": "string",
            "description": "Voucher Id of a voucher that replaces this voucher",
            "format": "uuid",
            "nullable": true
          },
          "ReplacesVoucherId": {
            "type": "string",
            "description": "Voucher Id of a voucher that this voucher replace",
            "format": "uuid",
            "nullable": true
          },
          "OriginalVoucherId": {
            "type": "string",
            "description": "Voucher Id of a voucher that this voucher has been created from",
            "format": "uuid",
            "nullable": true
          },
          "DeletedVoucherId": {
            "type": "string",
            "description": "Voucher Id of the voucher that deletes this voucher",
            "format": "uuid",
            "nullable": true
          },
          "OriginalCurrency": {
            "type": "string",
            "description": "Original currency of this voucher",
            "nullable": true
          },
          "ReferenceId": {
            "type": "string",
            "description": "Reference Id",
            "nullable": true
          },
          "ReferenceType": {
            "type": "string",
            "description": "Reference Type",
            "nullable": true
          },
          "Transactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Accounting.Transaction"
            },
            "description": "List of transactions",
            "nullable": true
          },
          "Attachments": {
            "$ref": "#/components/schemas/Attachments"
          }
        },
        "additionalProperties": false
      },
      "Accounting.VoucherImage": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "VoucherImage Id",
            "format": "uuid"
          },
          "Removed": {
            "type": "boolean",
            "description": "True if removed"
          },
          "Data": {
            "type": "string",
            "description": "Byte data of image",
            "format": "byte",
            "nullable": true
          },
          "VoucherId": {
            "type": "string",
            "description": "Voucher Id",
            "format": "uuid"
          },
          "ContentType": {
            "type": "string",
            "description": "Content Type of image",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Accounting.VoucherImagePost": {
        "type": "object",
        "properties": {
          "Data": {
            "type": "string",
            "description": "Byte data of image",
            "format": "byte",
            "nullable": true
          },
          "VoucherId": {
            "type": "string",
            "description": "Voucher Id",
            "format": "uuid"
          },
          "ContentType": {
            "type": "string",
            "description": "Content Type of image",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Accounting.VoucherPost": {
        "type": "object",
        "properties": {
          "Text": {
            "type": "string",
            "description": "Voucher text",
            "nullable": true
          },
          "ImportSeries": {
            "type": "string",
            "description": "Import serie. Set only if this is an import",
            "nullable": true
          },
          "ImportNumber": {
            "type": "string",
            "description": "Import number. Set only of this is an import",
            "nullable": true
          },
          "OriginalCurrency": {
            "type": "string",
            "description": "Original currency",
            "nullable": true
          },
          "ImportId": {
            "type": "string",
            "description": "Import Id. Set only if this is an import",
            "format": "uuid",
            "nullable": true
          },
          "BookingDate": {
            "type": "string",
            "description": "Booking date",
            "format": "date-time"
          },
          "SeriesId": {
            "type": "string",
            "description": "Series Id",
            "format": "uuid"
          },
          "Transactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Accounting.TransactionPost"
            },
            "description": "List of transactions",
            "nullable": true
          },
          "Images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Accounting.VoucherImagePost"
            },
            "description": "List of images",
            "nullable": true
          },
          "ReferenceId": {
            "type": "string",
            "description": "Reference Id",
            "nullable": true
          },
          "ReferenceType": {
            "type": "string",
            "description": "Reference Type",
            "nullable": true
          },
          "ValidateLockedSystemAccounts": {
            "type": "boolean",
            "description": "Validate locked system accounts"
          }
        },
        "additionalProperties": false
      },
      "Accounting.VoucherType": {
        "enum": [
          "Unknown",
          "IncomingInvoice",
          "Receipt",
          "Invoice",
          "GenericVoucher"
        ],
        "type": "string",
        "description": "<br />0 - Unknown, 1 - IncomingInvoice, 2 - Receipt, 3 - Invoice, 4 - GenericVoucher"
      },
      "AdditionalInformationRequired": {
        "enum": [
          "None",
          "Comment",
          "FileOrComment"
        ],
        "type": "string",
        "description": "Indicates what kind of additional information needed.<br />0 - None, 1 - Comment, 2 - FileOrComment"
      },
      "AgencyForwardTarget": {
        "type": "object",
        "properties": {
          "ToWint": {
            "type": "boolean",
            "description": "True sends the issue to the company's Supportansvarig, otherwise its KA, otherwise the general support group. A\r\nSupportansvarig or KA who is a member of the byrå is skipped, since owning the case would leave it with the byrå."
          },
          "PersonId": {
            "type": "integer",
            "description": "The id of the byrå colleague to forward the issue to. Required (and must be a valid forward target —\r\nsee `ISupportSystem.GetAgencyForwardTargets`) when Wint.Superkoll.API.Model.AgencyForwardTarget.ToWint is `false`; ignored\r\nwhen it is `true`.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Where a byrå forwards a support issue: to Wint or to a byrå colleague."
      },
      "AgingIncomingInvoices.AgingIncomingInvoiceAlreadyPaidInfo": {
        "type": "object",
        "properties": {
          "PaymentDate": {
            "type": "string",
            "format": "date-time"
          },
          "Images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgingIncomingInvoices.AgingInvoiceImage"
            },
            "nullable": true
          },
          "Message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AgingIncomingInvoices.AgingIncomingInvoiceApiAction": {
        "enum": [
          "None",
          "OverpaidAwaitingRefund",
          "OverpaidInfoSupplied",
          "UnderpaidHasBeenPaidInfoSupplied",
          "UnderpaidOtherInfoSupplied",
          "UnderpaidCreatePayment",
          "UnderpaidWithholdPaymentIntentionally",
          "InfoSupplied"
        ],
        "type": "string",
        "description": "<br />0 - None, 1 - OverpaidAwaitingRefund, 2 - OverpaidInfoSupplied, 3 - UnderpaidHasBeenPaidInfoSupplied, 4 - UnderpaidOtherInfoSupplied, 5 - UnderpaidCreatePayment, 6 - UnderpaidWithholdPaymentIntentionally, 7 - InfoSupplied"
      },
      "AgingIncomingInvoices.AgingIncomingInvoiceCreatePaymentInfo": {
        "type": "object",
        "properties": {
          "PaymentDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "AgingIncomingInvoices.AgingIncomingInvoiceCreditedInfo": {
        "type": "object",
        "properties": {
          "Images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgingIncomingInvoices.AgingInvoiceImage"
            },
            "nullable": true
          },
          "Message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AgingIncomingInvoices.AgingIncomingInvoiceOverpaidInfo": {
        "type": "object",
        "properties": {
          "Images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgingIncomingInvoices.AgingInvoiceImage"
            },
            "nullable": true
          },
          "Message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AgingIncomingInvoices.AgingIncomingInvoiceUpdateInfo": {
        "type": "object",
        "properties": {
          "AgingIncomingInvoiceId": {
            "type": "integer",
            "format": "int32"
          },
          "Action": {
            "$ref": "#/components/schemas/AgingIncomingInvoices.AgingIncomingInvoiceApiAction"
          },
          "CreatePaymentInfo": {
            "$ref": "#/components/schemas/AgingIncomingInvoices.AgingIncomingInvoiceCreatePaymentInfo"
          },
          "AlreadyPaidInfo": {
            "$ref": "#/components/schemas/AgingIncomingInvoices.AgingIncomingInvoiceAlreadyPaidInfo"
          },
          "CreditedInfo": {
            "$ref": "#/components/schemas/AgingIncomingInvoices.AgingIncomingInvoiceCreditedInfo"
          },
          "OverpaidInfo": {
            "$ref": "#/components/schemas/AgingIncomingInvoices.AgingIncomingInvoiceOverpaidInfo"
          },
          "Info": {
            "$ref": "#/components/schemas/AgingIncomingInvoices.AgingInfo"
          }
        },
        "additionalProperties": false
      },
      "AgingIncomingInvoices.AgingInfo": {
        "type": "object",
        "properties": {
          "Images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgingIncomingInvoices.AgingInvoiceImage"
            },
            "nullable": true
          },
          "Message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AgingIncomingInvoices.AgingInvoiceImage": {
        "type": "object",
        "properties": {
          "FileName": {
            "type": "string",
            "nullable": true
          },
          "Data": {
            "type": "string",
            "format": "byte",
            "nullable": true
          },
          "ContentType": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AnnualAccountsFinancialYear": {
        "type": "object",
        "properties": {
          "IsAutoAnnualReport": {
            "type": "boolean",
            "description": "Indicates whether the processing type of the annual report is automatic or not (manual)"
          },
          "Id": {
            "type": "integer",
            "description": "Id of the financial year",
            "format": "int32"
          },
          "Start": {
            "type": "string",
            "description": "Start date of the financial year",
            "format": "date-time"
          },
          "End": {
            "type": "string",
            "description": "End date of the financial year",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Article": {
        "required": [
          "Text",
          "UnitPrice",
          "Vat"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Article Id",
            "format": "int32"
          },
          "IsAgentSaleArticle": {
            "type": "boolean",
            "description": "True for system-created agent-sale articles (InvoiceProduct.AgentSaleInvoiceProductType\r\nis set). Their revenue account is locked and drives every future commission booking,\r\nso the client must hide the account field entirely rather than let the user try and be\r\nrejected (decision R2-1). Exposed as a bool rather than the underlying enum so the\r\nagent-sale product taxonomy stays an internal concern."
          },
          "UnitText": {
            "type": "string",
            "description": "Unit text",
            "nullable": true
          },
          "TotalAmountForLastYearlyPeriod": {
            "type": "number",
            "description": "Total amount sold from this article in last 12 months",
            "format": "double"
          },
          "TotalQuantityForLastYearlyPeriod": {
            "type": "number",
            "description": "Total quantity sold from this article in last 12 months",
            "format": "double"
          },
          "CanRemove": {
            "type": "boolean",
            "description": "Whether article can be removed or not"
          },
          "CanToggleActiveState": {
            "type": "boolean",
            "description": "Whether article's active status can be changed",
            "nullable": true
          },
          "UnitId": {
            "type": "integer",
            "description": "The id of the unit for this article",
            "format": "int32",
            "nullable": true
          },
          "Text": {
            "minLength": 1,
            "type": "string",
            "description": "The name of the article or the text that should be stated on the invoice using this article"
          },
          "UnitPrice": {
            "type": "number",
            "description": "The price per unit",
            "format": "double"
          },
          "Vat": {
            "type": "number",
            "description": "VAT that is either 0, 6, 12 or 25",
            "format": "double"
          },
          "EuVatProductType": {
            "$ref": "#/components/schemas/EuVatProductType"
          },
          "Inactive": {
            "type": "boolean",
            "description": "Whether the article is active or not."
          },
          "Account": {
            "type": "integer",
            "description": "Revenue account for this article. Omit or send null to leave the current value\r\nunchanged; send 0 to clear it; send an account number to set it. A set value must\r\nbe within the company's allowed revenue accounts for the article's VAT rate\r\n(see GET api/Account/RevenueAccounts). Cannot be changed on system-created\r\nagent-sale articles.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ArticleImportRequest": {
        "type": "object",
        "properties": {
          "CsvUpload": {
            "$ref": "#/components/schemas/File"
          },
          "Delimiter": {
            "$ref": "#/components/schemas/CsvImportDelimiter"
          },
          "ProductTextColumn": {
            "type": "string",
            "description": "Column name for the article name",
            "nullable": true
          },
          "InvoiceUnitsColumn": {
            "type": "string",
            "description": "Column name for invoice unit of the article",
            "nullable": true
          },
          "UnitPriceColumn": {
            "type": "string",
            "description": "Column name for unit price of the article",
            "nullable": true
          },
          "ProductVATColumn": {
            "type": "string",
            "description": "Column name for vat of the article (0, 6, 12 or 25)",
            "nullable": true
          },
          "EUVATCategoryColumn": {
            "type": "string",
            "description": "Column name for EUVATCategory, (Ej angiven, Okänd, Undantagen, Vara, Tjänst, Trepartshandel)",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ArticlePost": {
        "required": [
          "Text",
          "UnitPrice",
          "Vat"
        ],
        "type": "object",
        "properties": {
          "UnitId": {
            "type": "integer",
            "description": "The id of the unit for this article",
            "format": "int32",
            "nullable": true
          },
          "Text": {
            "minLength": 1,
            "type": "string",
            "description": "The name of the article or the text that should be stated on the invoice using this article"
          },
          "UnitPrice": {
            "type": "number",
            "description": "The price per unit",
            "format": "double"
          },
          "Vat": {
            "type": "number",
            "description": "VAT that is either 0, 6, 12 or 25",
            "format": "double"
          },
          "EuVatProductType": {
            "$ref": "#/components/schemas/EuVatProductType"
          },
          "Inactive": {
            "type": "boolean",
            "description": "Whether the article is active or not."
          },
          "Account": {
            "type": "integer",
            "description": "Revenue account for this article. Omit or send null to leave the current value\r\nunchanged; send 0 to clear it; send an account number to set it. A set value must\r\nbe within the company's allowed revenue accounts for the article's VAT rate\r\n(see GET api/Account/RevenueAccounts). Cannot be changed on system-created\r\nagent-sale articles.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ArticlePut": {
        "required": [
          "Text",
          "UnitPrice",
          "Vat"
        ],
        "type": "object",
        "properties": {
          "UnitId": {
            "type": "integer",
            "description": "The id of the unit for this article",
            "format": "int32",
            "nullable": true
          },
          "Text": {
            "minLength": 1,
            "type": "string",
            "description": "The name of the article or the text that should be stated on the invoice using this article"
          },
          "UnitPrice": {
            "type": "number",
            "description": "The price per unit",
            "format": "double"
          },
          "Vat": {
            "type": "number",
            "description": "VAT that is either 0, 6, 12 or 25",
            "format": "double"
          },
          "EuVatProductType": {
            "$ref": "#/components/schemas/EuVatProductType"
          },
          "Inactive": {
            "type": "boolean",
            "description": "Whether the article is active or not."
          },
          "Account": {
            "type": "integer",
            "description": "Revenue account for this article. Omit or send null to leave the current value\r\nunchanged; send 0 to clear it; send an account number to set it. A set value must\r\nbe within the company's allowed revenue accounts for the article's VAT rate\r\n(see GET api/Account/RevenueAccounts). Cannot be changed on system-created\r\nagent-sale articles.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ArticleSearchResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of the article",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Name of the article",
            "nullable": true
          },
          "EUVatCategory": {
            "$ref": "#/components/schemas/EuVatProductType"
          },
          "StandardPrice": {
            "type": "number",
            "description": "Standard unit price of the article",
            "format": "double"
          },
          "Vat": {
            "type": "number",
            "description": "VAT that is either 0, 6, 12 or 25",
            "format": "double"
          },
          "Unit": {
            "$ref": "#/components/schemas/Unit"
          },
          "Account": {
            "type": "integer",
            "description": "The article's currently configured revenue account, if any. Reflects the same\r\nunderlying value as Wint.Superkoll.API.Model.ArticlePut.Account, surfaced here for the\r\narticle-picker/search use case.",
            "format": "int32",
            "nullable": true
          },
          "IsAgentSaleArticle": {
            "type": "boolean",
            "description": "True for system-created agent-sale articles (InvoiceProduct.AgentSaleInvoiceProductType\r\nis set). Their revenue account is locked and drives every future commission booking,\r\nso the client must hide the account field entirely rather than let the user try and be\r\nrejected (decision R2-1). Exposed as a bool rather than the underlying enum so the\r\nagent-sale product taxonomy stays an internal concern."
          }
        },
        "additionalProperties": false
      },
      "AttachmentMeta": {
        "type": "object",
        "properties": {
          "AttachmentId": {
            "type": "string",
            "description": "The identifier of the attachment.",
            "nullable": true
          },
          "ContentType": {
            "type": "string",
            "description": "The content type of the attachment.",
            "nullable": true
          },
          "NumberOfPages": {
            "type": "integer",
            "description": "The number of pages the attachment has.",
            "format": "int32"
          },
          "ImageType": {
            "$ref": "#/components/schemas/ImageType"
          }
        },
        "additionalProperties": false,
        "description": "Attachment meta data of an Entity"
      },
      "Attachments": {
        "type": "object",
        "properties": {
          "NumberOfAttachments": {
            "type": "integer",
            "description": "The number of attachments total on the entity.",
            "format": "int32"
          },
          "AttachmentsMeta": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentMeta"
            },
            "description": "The meta data of all the attachments on the entity.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Attachment details of an Entity"
      },
      "AuthPost": {
        "type": "object",
        "properties": {
          "Mail": {
            "type": "string",
            "nullable": true
          },
          "Password": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AuthTokens": {
        "type": "object",
        "properties": {
          "AccessToken": {
            "type": "string",
            "nullable": true
          },
          "RefreshToken": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BankBalance": {
        "type": "object",
        "properties": {
          "AccountId": {
            "type": "integer",
            "description": "Id used when changing this account's visibility. See Wint.Superkoll.API.Model.BankBalanceVisibilityPut.",
            "format": "int32"
          },
          "AccountNumber": {
            "type": "integer",
            "description": "The bookkeeping account number the balance is reconciled against, e.g. 1930.",
            "format": "int32"
          },
          "BankName": {
            "type": "string",
            "description": "Name of the bank the balance was read from, when known.",
            "nullable": true
          },
          "BankAccountNumber": {
            "type": "string",
            "description": "The bank account number the balance came from.",
            "nullable": true
          },
          "Balance": {
            "type": "number",
            "description": "The balance at Wint.Superkoll.API.Model.BankBalance.BalanceDate.",
            "format": "double",
            "nullable": true
          },
          "Currency": {
            "type": "string",
            "description": "The currency the Wint.Superkoll.API.Model.BankBalance.Balance is expressed in, e.g. \"SEK\". Always render the\r\namount from this rather than assuming kronor — a minority of accounts are held in EUR,\r\nUSD, GBP, CAD or DKK.",
            "nullable": true
          },
          "BalanceDate": {
            "type": "string",
            "description": "The date the Wint.Superkoll.API.Model.BankBalance.Balance refers to — what the widget prints as \"balance as of\".",
            "format": "date-time",
            "nullable": true
          },
          "IsStale": {
            "type": "boolean",
            "description": "The balance is older than the freshness window, so the widget must mark it rather than\r\npresent it as the account's current balance."
          },
          "ImportedAt": {
            "type": "string",
            "description": "When the bank statement carrying this balance was imported into Wint.",
            "format": "date-time",
            "nullable": true
          },
          "IsHighlighted": {
            "type": "boolean",
            "description": "True for the company's main bank account, which the widget emphasises over the rest."
          },
          "ShowOnDashboard": {
            "type": "boolean",
            "description": "Whether the customer has chosen to show this account in the widget."
          }
        },
        "additionalProperties": false,
        "description": "The bank balance of a single bank account, as shown in the dashboard bank balance widget."
      },
      "BankBalanceVisibilityPut": {
        "type": "object",
        "properties": {
          "AccountId": {
            "type": "integer",
            "description": "The Wint.Superkoll.API.Model.BankBalance.AccountId to change.",
            "format": "int32"
          },
          "ShowOnDashboard": {
            "type": "boolean",
            "description": "Whether the account's balance should appear in the widget."
          }
        },
        "additionalProperties": false,
        "description": "A change to whether one account's balance is shown in the dashboard widget."
      },
      "BookingTreeAccountInfo": {
        "type": "object",
        "properties": {
          "AccountId": {
            "type": "integer",
            "description": "The Id of the account.",
            "format": "int32",
            "nullable": true
          },
          "AdditionalInformationRequired": {
            "$ref": "#/components/schemas/AdditionalInformationRequired"
          }
        },
        "additionalProperties": false
      },
      "CashReconciliationAttachment": {
        "type": "object",
        "properties": {
          "ContentType": {
            "type": "string",
            "description": "Attachment content type e.g. application/pdf, image/png, ...",
            "nullable": true
          },
          "Data": {
            "type": "string",
            "description": "Attachment data",
            "format": "byte",
            "nullable": true
          },
          "FileName": {
            "type": "string",
            "description": "The name of the file.",
            "nullable": true
          },
          "AttachmentId": {
            "type": "string",
            "description": "The identifier of the attachment.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Daily cash entry's attachment which will be an image or PDF"
      },
      "CashReconciliationInstance": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of daily cash entry",
            "format": "int32"
          },
          "Date": {
            "type": "string",
            "description": "Booking date of daily cash entry",
            "format": "date-time"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CashReconciliationItemInstance"
            },
            "description": "List of account based transaction for the daily cash entry",
            "nullable": true
          },
          "Attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CashReconciliationAttachment"
            },
            "description": "Collection of attachments (images, PDFs) for daily cash entries. Used to store multiple attachments.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Daily cash entry's detailed representation used to Get()"
      },
      "CashReconciliationInstanceDescriptor": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of daily cash entry",
            "format": "int32"
          },
          "Date": {
            "type": "string",
            "description": "Booking date of daily cash entry",
            "format": "date-time"
          },
          "Amount": {
            "type": "number",
            "description": "Total sales amount of daily cash entry",
            "format": "double"
          },
          "OwnerId": {
            "type": "integer",
            "description": "Id of the owner of daily cash entry",
            "format": "int32"
          },
          "OwnerName": {
            "type": "string",
            "description": "Name of the owner of daily cash entry",
            "nullable": true
          },
          "Difference": {
            "type": "number",
            "description": "Difference in sales and payments in SEK",
            "format": "double"
          },
          "Dimensions": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Dimensions of daily cash entry",
            "nullable": true
          },
          "AmountSummary": {
            "type": "number",
            "description": "Sum of total sales in SEK (Used only when the filter is configured with IncludeSummary)",
            "format": "double",
            "nullable": true
          },
          "DifferenceSummary": {
            "type": "number",
            "description": "Sum of total differences in SEK (Used only when the filter is configured with IncludeSummary)",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Compact details of daily cash entry"
      },
      "CashReconciliationInstanceDto": {
        "type": "object",
        "properties": {
          "Attachment": {
            "$ref": "#/components/schemas/CashReconciliationAttachment"
          },
          "Attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CashReconciliationAttachment"
            },
            "description": "Collection of attachments (images, PDFs) for daily cash entries. Used to store multiple attachments.",
            "nullable": true
          },
          "Date": {
            "type": "string",
            "description": "Booking date of daily cash entry",
            "format": "date-time"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CashReconciliationItemInstancePost"
            },
            "description": "List of account based transaction for daily cash entry",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Post object to create daily cash entry"
      },
      "CashReconciliationItemCategory": {
        "enum": [
          "Sales",
          "PaymentMethod",
          "Other"
        ],
        "type": "string",
        "description": "Daily cash instance's items' categories<br />0 - Sales, 2 - PaymentMethod, 3 - Other"
      },
      "CashReconciliationItemInstance": {
        "type": "object",
        "properties": {
          "Description": {
            "type": "string",
            "description": "Description in the transaction",
            "nullable": true
          },
          "AccountType": {
            "$ref": "#/components/schemas/CashReconciliationItemType"
          },
          "Amount": {
            "type": "number",
            "description": "Amount of the transaction",
            "format": "double"
          },
          "CostCenter": {
            "type": "string",
            "description": "Cost center dimension's short name",
            "nullable": true
          },
          "Project": {
            "type": "string",
            "description": "Project dimension's short name",
            "nullable": true
          },
          "Category": {
            "$ref": "#/components/schemas/CashReconciliationItemCategory"
          }
        },
        "additionalProperties": false,
        "description": "Account based transaction in a daily cash entry"
      },
      "CashReconciliationItemInstancePost": {
        "type": "object",
        "properties": {
          "TemplateItemId": {
            "type": "integer",
            "description": "Id of the template item, this should be used when you have duplicated accounts in a single category",
            "format": "int32"
          },
          "Account": {
            "type": "integer",
            "description": "Account number of the transaction",
            "format": "int32"
          },
          "Amount": {
            "type": "number",
            "description": "Amount of the transaction",
            "format": "double"
          },
          "CostCenter": {
            "type": "string",
            "description": "Cost center dimension's short name",
            "nullable": true
          },
          "Project": {
            "type": "string",
            "description": "Project dimension's short name",
            "nullable": true
          },
          "Category": {
            "$ref": "#/components/schemas/CashReconciliationItemCategory"
          }
        },
        "additionalProperties": false,
        "description": "Post object to create account transaction of a daily cash entry"
      },
      "CashReconciliationItemType": {
        "enum": [
          "Debit",
          "Credit"
        ],
        "type": "string",
        "description": "Account type for daily cash instance's items<br />0 - Debit, 1 - Credit"
      },
      "CashReconciliationTemplate": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CashReconciliationTemplateItem"
            },
            "description": "Company daily cash template items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Company daily cash template"
      },
      "CashReconciliationTemplateItem": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of the template item",
            "format": "int32"
          },
          "Account": {
            "type": "integer",
            "description": "Account number for a template item",
            "format": "int32"
          },
          "Category": {
            "$ref": "#/components/schemas/CashReconciliationItemCategory"
          },
          "Description": {
            "type": "string",
            "description": "Description for a template item",
            "nullable": true
          },
          "AccountType": {
            "$ref": "#/components/schemas/CashReconciliationItemType"
          }
        },
        "additionalProperties": false,
        "description": "Company daily cash template items"
      },
      "Company": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Company Id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Company name",
            "nullable": true
          },
          "Org": {
            "type": "string",
            "description": "Company Org-number",
            "nullable": true
          },
          "Url": {
            "type": "string",
            "description": "Company URL",
            "nullable": true
          },
          "RelationFlags": {
            "type": "integer",
            "description": "Company Roles for user",
            "format": "int32",
            "nullable": true,
            "deprecated": true
          },
          "ExtendedRelationFlags": {
            "type": "integer",
            "description": "Company Roles for user",
            "format": "int64",
            "nullable": true
          },
          "IsPaymentPaused": {
            "type": "boolean",
            "description": "Payments are paused - no payments will go out from this company for receipt och invoices"
          },
          "NoVat": {
            "type": "boolean",
            "description": "Company is not registered for VAT"
          },
          "ReportsAvailable": {
            "type": "boolean",
            "description": "Reports are available"
          },
          "BankBalanceWidgetActivated": {
            "type": "boolean",
            "description": "The bank balance dashboard widget is activated for the company (set from Heart).\r\nThe customer still chooses which accounts it shows."
          },
          "SalaryDeviationsAvailable": {
            "type": "boolean",
            "description": "Individual salary deviations are available for mobile app"
          },
          "CashReconciliationEnabled": {
            "type": "boolean",
            "description": "Indicates whether daily cash is available for both the company and the user."
          },
          "CashReconciliationEnabledForCompany": {
            "type": "boolean",
            "description": "Indicates whether daily cash is activated for the company."
          },
          "RevenueReportingEnabledForCompany": {
            "type": "boolean",
            "description": "Indicates whether the company has been onboarded to the new revenue reporting flow."
          },
          "ReceiptCreator": {
            "type": "boolean",
            "description": "Able to submit receipts"
          },
          "ReceiptViewer": {
            "type": "boolean",
            "description": "Able to view receipts"
          },
          "SupplierInvoiceCreator": {
            "type": "boolean",
            "description": "Able to submit supplier invoices"
          },
          "SupplierInvoiceViewer": {
            "type": "boolean",
            "description": "Able to view supplier invoices"
          },
          "SupplierInvoiceAttestor": {
            "type": "boolean",
            "description": "Able to attest supplier invoices"
          },
          "GenericDocumentCreator": {
            "type": "boolean",
            "description": "Able to submit generic documents"
          },
          "GenericDocumentViewer": {
            "type": "boolean",
            "description": "Able to view generic documents"
          },
          "InvoiceCreator": {
            "type": "boolean",
            "description": "Able to submit customer invoices"
          },
          "InvoiceUser": {
            "type": "boolean",
            "description": "Able to use customer invoices"
          },
          "CommissionSalaryActive": {
            "type": "boolean",
            "description": "Indicate whether commission based salary is active for logged in user"
          },
          "CommissionSalaryAvailable": {
            "type": "boolean",
            "description": "Indicate whether commission based salary is available for logged in user"
          },
          "LoggedInUserSalaryActive": {
            "type": "boolean",
            "description": "Indicate whether salary is active for logged in user"
          },
          "LoggedInUserIsSalaryAdmin": {
            "type": "boolean",
            "description": "Indicates whether logged in user is a Salary admin"
          },
          "LoggedInUserIsRevisor": {
            "type": "boolean",
            "description": "Indicates whether the logged-in user is an auditor/revisor"
          },
          "LoggedInUserIsAuditorAssistant": {
            "type": "boolean",
            "description": "Indicates whether the logged-in user is an auditor assistant (revisorsassistent)\r\nlinked to an active annual report for this company"
          },
          "LoggedInUserIsMemberOfCompanyAgency": {
            "type": "boolean",
            "description": "Indicates whether the logged-in user is a member of the external agency currently\r\nchosen for this company (CompanyPersonData.ExternalAgency_Id). Used to decide whether\r\nagency-specific UI, such as the support issue user filter, should be shown."
          },
          "ReceiptDimensionTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DimensionType"
            },
            "description": "Dimension types available for receipts",
            "nullable": true
          },
          "IncomingInvoiceDimensionTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DimensionType"
            },
            "description": "Dimension types available for incoming invoices",
            "nullable": true
          },
          "InvoiceDimensionTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DimensionType"
            },
            "description": "Dimension types available for invoices",
            "nullable": true
          },
          "ReceiptPaymentMethods": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ReceiptPaymentMethod"
              },
              "nullable": true
            },
            "description": "Payment methods for all persons employeed",
            "nullable": true
          },
          "ReceiptDimensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Dimension"
            },
            "description": "Dimensions available for receipts",
            "nullable": true
          },
          "InvoiceDimensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Dimension"
            },
            "description": "Dimensions available for invoices",
            "nullable": true
          },
          "FinancialYears": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FinancialYear"
            },
            "description": "Financial years",
            "nullable": true
          },
          "IncomingInvoiceDimensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Dimension"
            },
            "description": "Dimensions available for incoming invoices",
            "nullable": true
          },
          "ReceiptCategories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReceiptCategory"
            },
            "description": "Categories available for receipts",
            "nullable": true
          },
          "CashReconciliationDimensionTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DimensionType"
            },
            "description": "Dimension types available for daily cash",
            "nullable": true
          },
          "CashReconciliationDimensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Dimension"
            },
            "description": "Dimensions available for daily cash",
            "nullable": true
          },
          "CommissionSalaryDimensionType": {
            "$ref": "#/components/schemas/DimensionType"
          },
          "HasROT": {
            "type": "boolean",
            "description": "Has ROT Deductions enabled"
          },
          "HasRUT": {
            "type": "boolean",
            "description": "Has RUT Deductions enabled"
          },
          "IndividualSalaryDeviationsAvailable": {
            "type": "boolean",
            "description": "Individual salary deviations are available"
          },
          "WintSalaryDeviationsAvailable": {
            "type": "boolean",
            "description": "Indicates whether Wint salary deviations are available for the logged-in user"
          },
          "WintSalarySettingsAvailable": {
            "type": "boolean",
            "description": "Indicates whether salary settings are edited as Wint salary settings for the logged-in user — also\r\nwhile the company's Wint salary activation is pending, unlike Wint.Superkoll.API.Model.Company.WintSalaryDeviationsAvailable"
          },
          "WintSalaryCommissionAvailable": {
            "type": "boolean",
            "description": "Indicates whether the Wint salary commission broker self-view is available for the logged-in user"
          },
          "IncludeCostCenterDimensionToSalary": {
            "type": "boolean",
            "description": "Allow cost center tags for the salary. If allowed salary user can have cost center tag"
          },
          "AllowedDeviationTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalaryDeviationType"
            },
            "description": "Allowed salary deviations types for the company",
            "nullable": true
          },
          "PageroEInvoice": {
            "type": "boolean",
            "description": "Pagero e-invoicing enabled"
          },
          "IsRegisteredAtPagero": {
            "type": "boolean",
            "description": "If registered at pagero"
          },
          "HideInvoiceDeliveryDate": {
            "type": "boolean",
            "description": "If to hide delivery address in invoice creation"
          },
          "DefaultInvoiceNotes": {
            "type": "string",
            "description": "Default notes of invoice",
            "nullable": true
          },
          "DefaultInvoiceReminderNotes": {
            "type": "string",
            "description": "Default notes of invoice reminders",
            "nullable": true
          },
          "DefaultInvoicePaymentTerms": {
            "type": "integer",
            "description": "Default payment terms of invoice",
            "format": "int32"
          },
          "DefaultInvoiceLayout": {
            "$ref": "#/components/schemas/InvoicePdfTemplate"
          },
          "DefaultReminderCost": {
            "type": "number",
            "description": "Default reminder fee added to the first reminder of an invoice",
            "format": "double",
            "nullable": true
          },
          "DefaultIsAutomaticRemindersEnabled": {
            "type": "boolean",
            "description": "True if automatic reminders are enabled by default for invoices",
            "nullable": true
          },
          "DefaultAutomaticReminderPeriod": {
            "type": "integer",
            "description": "Default number of days before next due date after due date of invoice or previous reminder",
            "format": "int32",
            "nullable": true
          },
          "DefaultAutomaticReminderDelay": {
            "type": "integer",
            "description": "Default number of days after invoice has been overdue that any automatic reminder is sent",
            "format": "int32",
            "nullable": true
          },
          "DefaultAutomaticReminderAmountLimit": {
            "type": "number",
            "description": "Default minimum payment amount left needed to send automatic reminders",
            "format": "double",
            "nullable": true
          },
          "DefaultAutomaticReminderCountLimit": {
            "type": "integer",
            "description": "Default maximum number of reminders which will be automatically sent",
            "format": "int32",
            "nullable": true
          },
          "DefaultAutomaticReminderFeeDeprecationLimit": {
            "type": "number",
            "description": "Default value of which any unpaid reminder fees will be automatically deprecated if under this limit",
            "format": "double",
            "nullable": true
          },
          "DefaultInvoiceReminderSendOption": {
            "$ref": "#/components/schemas/InvoiceSendMethod"
          },
          "DefaultReminderMailSubject": {
            "type": "string",
            "description": "Default mail subject to use for reminder mails",
            "nullable": true
          },
          "DefaultReminderMailMessage": {
            "type": "string",
            "description": "Default mail message to use for reminder mails",
            "nullable": true
          },
          "DefaultReminderFileNameTemplate": {
            "type": "string",
            "description": "Reminder file name template",
            "nullable": true
          },
          "DefaultInvoiceSendOption": {
            "$ref": "#/components/schemas/InvoiceSendMethod"
          },
          "DefaultInvoiceMailSubject": {
            "type": "string",
            "description": "Default invoice mail subject",
            "nullable": true
          },
          "DefaultInvoiceMailMessage": {
            "type": "string",
            "description": "Default invoice mail message",
            "nullable": true
          },
          "DefaultPenaltyInterestSettings": {
            "$ref": "#/components/schemas/PenaltyInterestSettings"
          },
          "IsAssistantsActive": {
            "type": "boolean",
            "description": "Can add assistants"
          },
          "SuperkollSalaryType": {
            "$ref": "#/components/schemas/SuperkollSalaryType"
          },
          "CreateSalaryAutoFromSalaryPersonEntry": {
            "type": "boolean",
            "description": "Is salary details auto generated"
          },
          "LoggedInUserWintEmail": {
            "type": "string",
            "description": "Wint email of the logged in user",
            "nullable": true
          },
          "LoggedInUserSelfInvoiceEmail": {
            "type": "string",
            "description": "Self invoice email of the logged in user",
            "nullable": true
          },
          "InvoiceActivationState": {
            "$ref": "#/components/schemas/InvoiceActivationState"
          },
          "QuotationActivationState": {
            "$ref": "#/components/schemas/QuotationActivationState"
          },
          "IsTimeReportingEnabled": {
            "type": "boolean",
            "description": "Activation of time reporting"
          },
          "LoggedInUserIsBusinessUnitManager": {
            "type": "boolean",
            "description": "If current user is a business unit manager for any group"
          },
          "LoggedInUserIsDeviationAdmin": {
            "type": "boolean",
            "description": "If current user is a deviation admin"
          },
          "LoggedInUserIsBusinessUnitManagerWithSalaryRights": {
            "type": "boolean",
            "description": "If current user is a business unit manager with salary rights for any group"
          },
          "LoggedInUserIsProjectManager": {
            "type": "boolean",
            "description": "If current user is a project manager in any project"
          },
          "LoggedInUserIsAllowedToReportTime": {
            "type": "boolean",
            "description": "Activation of time reporting"
          },
          "IsDebtCollectionEnabled": {
            "type": "boolean",
            "description": "Activation of debt collection\r\nIf current user is member in any project"
          },
          "LockDate": {
            "type": "string",
            "description": "Lock date from the Heart site",
            "format": "date-time",
            "nullable": true
          },
          "ReconciliationDate": {
            "type": "string",
            "description": "End date of the most recent reconciled period",
            "format": "date-time",
            "nullable": true
          },
          "IsAgentSalesActive": {
            "type": "boolean",
            "description": "If the company has agent sales"
          },
          "HasSavedFinancialStatements": {
            "type": "boolean",
            "description": "Indicates whether company has saved financial statements"
          },
          "VisitorAddress": {
            "$ref": "#/components/schemas/CompanyAdress"
          },
          "BillingAddress": {
            "$ref": "#/components/schemas/CompanyAdress"
          },
          "IsBusinessUnitsEnabled": {
            "type": "boolean",
            "description": "Activation of business units"
          },
          "UsedReceiptPaymentMethodTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReceiptPaymentMethodType"
            },
            "description": "Unique payment methods types used for all receipts",
            "nullable": true
          },
          "AdditionalInfoNeededInvoiceAccounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BookingTreeAccountInfo"
            },
            "description": "The additional information needed invoice accounts.",
            "nullable": true
          },
          "PaymentAgent": {
            "$ref": "#/components/schemas/PaymentAgent"
          },
          "AllowBookKeepingByCustomer": {
            "type": "boolean",
            "description": "Allow to create vouchers from the api"
          },
          "AllowWintCardRegistration": {
            "type": "boolean",
            "description": "If the customer has not already registered for a Wint Card and has not accepted\\rejected a request for registration"
          },
          "ActiveDeadlineForCompany": {
            "$ref": "#/components/schemas/Deadlines.Deadline"
          },
          "IsSelfInvoicingEnabled": {
            "type": "boolean",
            "description": "Activation of self invoices"
          },
          "AnnualAccountsFinancialYear": {
            "$ref": "#/components/schemas/AnnualAccountsFinancialYear"
          },
          "NoBankIntegration": {
            "type": "boolean",
            "description": "True if company does not have an active bank integration"
          },
          "AutoReceiptPayments": {
            "type": "boolean",
            "description": "True if the company's receipt payouts are sent automatically to BGC or the bank"
          },
          "HasReceiptApprover": {
            "type": "boolean",
            "description": "True if anyone in the company approves receipts (ReceiptsAdmin). New receipts then wait for approval before they can be booked and paid out."
          },
          "WintSalaryCompanySettings": {
            "$ref": "#/components/schemas/WintSalary.WintSalaryCompanySettings"
          }
        },
        "additionalProperties": false
      },
      "CompanyAdress": {
        "type": "object",
        "properties": {
          "ZipCode": {
            "type": "string",
            "description": "The zip code",
            "nullable": true
          },
          "Street1": {
            "type": "string",
            "description": "Street 1",
            "nullable": true
          },
          "Street2": {
            "type": "string",
            "description": "Street 2",
            "nullable": true
          },
          "City": {
            "type": "string",
            "description": "The city",
            "nullable": true
          },
          "Country": {
            "type": "string",
            "description": "Country code. E.g. SE",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CostForwarding": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "State": {
            "$ref": "#/components/schemas/CostForwardingState"
          },
          "CustomerId": {
            "type": "integer",
            "format": "int32"
          },
          "CustomerName": {
            "type": "string",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "MarkupPercentage": {
            "type": "number",
            "description": "The markup entered when the cost was put on the invoice, if any. For reference only.",
            "format": "double",
            "nullable": true
          },
          "InvoiceId": {
            "type": "integer",
            "description": "The customer invoice the cost is reserved on, when State is not ReadyForForwarding.",
            "format": "int32",
            "nullable": true
          },
          "InvoiceSerialNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The forwarding marking on a receipt or supplier invoice."
      },
      "CostForwardingPut": {
        "type": "object",
        "properties": {
          "CustomerId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "Becomes the invoice row's text. Max 512 characters.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Marks a receipt or supplier invoice for forwarding to a customer. A null CustomerId removes\r\nthe marking. No amount is entered; it is derived from the document when invoicing."
      },
      "CostForwardingState": {
        "enum": [
          "ReadyForForwarding",
          "OnInvoiceDraft",
          "Forwarded"
        ],
        "type": "string",
        "description": "<br />0 - ReadyForForwarding, 1 - OnInvoiceDraft, 2 - Forwarded"
      },
      "CreditAndReissueChangesPost": {
        "type": "object",
        "properties": {
          "NewInvoice": {
            "$ref": "#/components/schemas/InvoicePut"
          },
          "CustomerDetailsChanged": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CreditAndReissuePost": {
        "type": "object",
        "properties": {
          "SendCreditInvoice": {
            "type": "boolean"
          },
          "CreditInvoiceSendOptions": {
            "$ref": "#/components/schemas/InvoiceSendProperties"
          },
          "NewInvoiceSendOptions": {
            "$ref": "#/components/schemas/InvoiceSendProperties"
          },
          "NewInvoice": {
            "$ref": "#/components/schemas/InvoicePut"
          },
          "CustomerDetailsChanged": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CreditAndReissueResult": {
        "type": "object",
        "properties": {
          "CreditInvoiceId": {
            "type": "integer",
            "format": "int32"
          },
          "NewInvoiceId": {
            "type": "integer",
            "format": "int32"
          },
          "ChangedFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceChangedFieldGroup"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CsvImportDelimiter": {
        "enum": [
          "Tab",
          "Semicolon",
          "Comma"
        ],
        "type": "string",
        "description": "<br />0 - Tab, 1 - Semicolon, 2 - Comma"
      },
      "CurrencyValue": {
        "type": "object",
        "properties": {
          "Type": {
            "type": "string",
            "description": "Name of the currency",
            "nullable": true
          },
          "Value": {
            "type": "number",
            "description": "Amount",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Represents amount with currency name"
      },
      "Customer": {
        "required": [
          "BillingAddress",
          "Name",
          "Type"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The id of the customer which is returned when creating a customer",
            "format": "int32"
          },
          "ReferencePersons": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Reference persons for the customer",
            "nullable": true
          },
          "IsEUInvoiceCustomer": {
            "type": "boolean",
            "description": "If EU Customer"
          },
          "Warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Warning"
            },
            "description": "Issues with this customer that needs attention. This is only set when a single customer is fetched using the id.\r\n1 = Customer has at least one EU address but no VAT number, or IncludeVatNumberOnInvoice = false\r\n2 = Customer has invalid VAT number for the delivery address country\r\n3 = Customer has invalid VAT number for the billing address country",
            "nullable": true
          },
          "Rating": {
            "type": "integer",
            "description": "Customer Rating",
            "format": "int32",
            "nullable": true
          },
          "NumOfRecurringInvoices": {
            "type": "integer",
            "description": "Number of active recurring invoices of the customer",
            "format": "int32"
          },
          "NumOfInvoices": {
            "type": "integer",
            "description": "Number of sent invoices of the customer",
            "format": "int32"
          },
          "PurchasedAmount": {
            "type": "number",
            "description": "Invoiced amount for the customer",
            "format": "double"
          },
          "UnpaidAmount": {
            "type": "number",
            "description": "Unpaid invoiced amount for the customer",
            "format": "double"
          },
          "CanRemove": {
            "type": "boolean",
            "description": "Whether the customer can be removed or not.",
            "nullable": true
          },
          "CanToggleActiveState": {
            "type": "boolean",
            "description": "Whether the customer can be actived or deactivated.",
            "nullable": true
          },
          "Name": {
            "minLength": 1,
            "type": "string",
            "description": "The name of the customer"
          },
          "OrgNumber": {
            "type": "string",
            "description": "The organisation number of the customer\r\nE.g. 123456-7890",
            "nullable": true
          },
          "Type": {
            "$ref": "#/components/schemas/CustomerType"
          },
          "BillingAddress": {
            "$ref": "#/components/schemas/CustomerAddress"
          },
          "DeliveryAddress": {
            "$ref": "#/components/schemas/CustomerAddress"
          },
          "VatNumber": {
            "type": "string",
            "description": "The vat number of the customer. Optional (e.g. the customer doesn't have a vat number)",
            "nullable": true
          },
          "GlnNumber": {
            "type": "string",
            "description": "The optional GLN-numer of the customer.",
            "nullable": true
          },
          "IncludeVatNumberOnInvoice": {
            "type": "boolean",
            "description": "Whether the vat number should be included on the invoice or not"
          },
          "PaymentTerms": {
            "type": "integer",
            "description": "Must be a positive value, if no value is given default value is 0",
            "format": "int32",
            "nullable": true
          },
          "EmailAddress": {
            "type": "string",
            "description": "The email address for the customer",
            "nullable": true
          },
          "AutogiroPayerNumber": {
            "type": "string",
            "description": "If this is a customer that pays using Autogiro and Wint handles it, the payer number has to be supplied",
            "nullable": true
          },
          "PhoneNumber": {
            "type": "string",
            "description": "Customer phone number",
            "nullable": true
          },
          "Inactive": {
            "type": "boolean",
            "description": "Whether the customer is active or not."
          },
          "ShowCurrencyCode": {
            "type": "boolean",
            "description": "Whether the preferred customer default should be to display the currency code (SEK) instead of the currency (kr)."
          },
          "Language": {
            "type": "string",
            "description": "The language. Either SV or EN",
            "nullable": true
          },
          "Template": {
            "$ref": "#/components/schemas/InvoicePdfTemplate"
          },
          "ReferencePersonsList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Reference"
            },
            "description": "Reference persons for the customer. On create, list the reference persons to add. \r\nOn update, send the full list; include Id for existing persons to keep or update, and omit Id (or use 0) for new ones. \r\nOmitting an existing reference person from the list, or including them without their Id, removes them; the update may fail with 409 if that person cannot be removed.",
            "nullable": true
          },
          "PropertyDesignation": {
            "type": "string",
            "description": "Property Designation",
            "nullable": true
          },
          "TenantsOwnerAssociationOrgNumber": {
            "type": "string",
            "description": "Tenants Owner Association Organization Number",
            "nullable": true
          },
          "ApartmentNumber": {
            "type": "string",
            "description": "Apartment Number",
            "nullable": true
          },
          "IsRutEnabled": {
            "type": "boolean",
            "description": "Is RUT enabled for this customer"
          },
          "IsRotEnabled": {
            "type": "boolean",
            "description": "Is ROT enabled for this customer"
          },
          "PenaltyInterest": {
            "$ref": "#/components/schemas/PenaltyInterestSettings"
          },
          "InvoiceDeliverySettings": {
            "$ref": "#/components/schemas/InvoiceDeliverySettings"
          },
          "InvoiceReminderSettings": {
            "$ref": "#/components/schemas/InvoiceReminderSettings"
          }
        },
        "additionalProperties": false
      },
      "CustomerAddress": {
        "required": [
          "City"
        ],
        "type": "object",
        "properties": {
          "Street1": {
            "type": "string",
            "description": "Street 1\r\nMax length: 200 characters",
            "nullable": true
          },
          "Street2": {
            "type": "string",
            "description": "Street 2\r\nMax length: 200 characters",
            "nullable": true
          },
          "ZipCode": {
            "type": "string",
            "description": "The zip code\r\nMax length: 12 characters",
            "nullable": true
          },
          "City": {
            "minLength": 1,
            "type": "string",
            "description": "The city\r\nMax length: 200 characters"
          },
          "CountryCode": {
            "type": "string",
            "description": "Country code. E.g. SE",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomerGlnLookupResult": {
        "type": "object",
        "properties": {
          "GlnNumber": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Department": {
            "type": "string",
            "nullable": true
          },
          "Street": {
            "type": "string",
            "nullable": true
          },
          "PostCode": {
            "type": "string",
            "nullable": true
          },
          "Town": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomerImport": {
        "type": "object",
        "properties": {
          "CsvUpload": {
            "$ref": "#/components/schemas/File"
          },
          "Delimiter": {
            "$ref": "#/components/schemas/CsvImportDelimiter"
          },
          "CustomerNameColumn": {
            "type": "string",
            "description": "CSV column for customer name.",
            "nullable": true
          },
          "ImportWithoutInvalidOrgNr": {
            "type": "boolean",
            "description": "Imports customers whose organization number is not a valid Swedish organization or personal identity number without one, instead of failing the import."
          },
          "ImportWithoutCity": {
            "type": "boolean",
            "description": "Imports customers without a city when none is found in the file or by looking up the organization number, instead of failing the import."
          },
          "SkipCustomersWithInvalidOrgNr": {
            "type": "boolean",
            "description": "Leaves out customers whose organization number is not a valid Swedish organization or personal identity number, instead of failing the import."
          },
          "SkipCustomersWithoutCity": {
            "type": "boolean",
            "description": "Leaves out customers without a city when none is found in the file or by looking up the organization number, instead of failing the import."
          },
          "OrgNrColumn": {
            "type": "string",
            "description": "CSV column for organization number.",
            "nullable": true
          },
          "BillingStreetColumn": {
            "type": "string",
            "description": "CSV column for billing street.",
            "nullable": true
          },
          "BillingStreet2Column": {
            "type": "string",
            "description": "CSV column for secondary billing street.",
            "nullable": true
          },
          "BillingZipCodeColumn": {
            "type": "string",
            "description": "CSV column for billing zip code.",
            "nullable": true
          },
          "BillingCityColumn": {
            "type": "string",
            "description": "CSV column for billing city.",
            "nullable": true
          },
          "BillingCountryCodeColumn": {
            "type": "string",
            "description": "CSV column for billing country code.",
            "nullable": true
          },
          "DeliveryStreetColumn": {
            "type": "string",
            "description": "CSV column for delivery street code.",
            "nullable": true
          },
          "DeliveryStreet2Column": {
            "type": "string",
            "description": "CSV column for delivery street code.",
            "nullable": true
          },
          "DeliveryZipCodeColumn": {
            "type": "string",
            "description": "CSV column for delivery zip code.",
            "nullable": true
          },
          "DeliveryCityColumn": {
            "type": "string",
            "description": "CSV column for delivery city.",
            "nullable": true
          },
          "DeliveryCountryCodeColumn": {
            "type": "string",
            "description": "CSV column for delivery country code.",
            "nullable": true
          },
          "EmailAddressColumn": {
            "type": "string",
            "description": "CSV column for email address.",
            "nullable": true
          },
          "PhoneNumberColumn": {
            "type": "string",
            "description": "CSV column for phone number.",
            "nullable": true
          },
          "VatNumberColumn": {
            "type": "string",
            "description": "CSV column for vat number.",
            "nullable": true
          },
          "GlnNumberColumn": {
            "type": "string",
            "description": "CSV column for GLN-numer of the customer.",
            "nullable": true
          },
          "IncludeVatNumberOnInvoiceColumn": {
            "type": "string",
            "description": "CSV column for including VAT number on invoices.",
            "nullable": true
          },
          "CustomerStandardPaymentTermsColumn": {
            "type": "string",
            "description": "CSV column for standard payment terms.",
            "nullable": true
          },
          "ShowCurrencyCodeColumn": {
            "type": "string",
            "description": "CSV column for showing currency code on invoices.",
            "nullable": true
          },
          "LanguageColumn": {
            "type": "string",
            "description": "CSV column for language.",
            "nullable": true
          },
          "ReferencePersonImportColumnMappings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReferencePersonImport"
            },
            "description": "Mappings for reference person import",
            "nullable": true
          },
          "PropertyDesignationColumn": {
            "type": "string",
            "description": "CSV column for property designation",
            "nullable": true
          },
          "TenantsOwnerAssociationOrgNumberColumn": {
            "type": "string",
            "description": "CSV column for tenants owner association organization number",
            "nullable": true
          },
          "ApartmentNumberColumn": {
            "type": "string",
            "description": "CSV column for apartment number",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomerOrgNrSearchResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The id of the customer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Name of the customer",
            "nullable": true
          },
          "OrgNr": {
            "type": "string",
            "description": "Organization number of the customer",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Response when search customers by organization number"
      },
      "CustomerPost": {
        "required": [
          "BillingAddress",
          "Name",
          "Type"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "minLength": 1,
            "type": "string",
            "description": "The name of the customer"
          },
          "OrgNumber": {
            "type": "string",
            "description": "The organisation number of the customer\r\nE.g. 123456-7890",
            "nullable": true
          },
          "Type": {
            "$ref": "#/components/schemas/CustomerType"
          },
          "BillingAddress": {
            "$ref": "#/components/schemas/CustomerAddress"
          },
          "DeliveryAddress": {
            "$ref": "#/components/schemas/CustomerAddress"
          },
          "VatNumber": {
            "type": "string",
            "description": "The vat number of the customer. Optional (e.g. the customer doesn't have a vat number)",
            "nullable": true
          },
          "GlnNumber": {
            "type": "string",
            "description": "The optional GLN-numer of the customer.",
            "nullable": true
          },
          "IncludeVatNumberOnInvoice": {
            "type": "boolean",
            "description": "Whether the vat number should be included on the invoice or not"
          },
          "PaymentTerms": {
            "type": "integer",
            "description": "Must be a positive value, if no value is given default value is 0",
            "format": "int32",
            "nullable": true
          },
          "EmailAddress": {
            "type": "string",
            "description": "The email address for the customer",
            "nullable": true
          },
          "AutogiroPayerNumber": {
            "type": "string",
            "description": "If this is a customer that pays using Autogiro and Wint handles it, the payer number has to be supplied",
            "nullable": true
          },
          "PhoneNumber": {
            "type": "string",
            "description": "Customer phone number",
            "nullable": true
          },
          "Inactive": {
            "type": "boolean",
            "description": "Whether the customer is active or not."
          },
          "ShowCurrencyCode": {
            "type": "boolean",
            "description": "Whether the preferred customer default should be to display the currency code (SEK) instead of the currency (kr)."
          },
          "Language": {
            "type": "string",
            "description": "The language. Either SV or EN",
            "nullable": true
          },
          "Template": {
            "$ref": "#/components/schemas/InvoicePdfTemplate"
          },
          "ReferencePersonsList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Reference"
            },
            "description": "Reference persons for the customer. On create, list the reference persons to add. \r\nOn update, send the full list; include Id for existing persons to keep or update, and omit Id (or use 0) for new ones. \r\nOmitting an existing reference person from the list, or including them without their Id, removes them; the update may fail with 409 if that person cannot be removed.",
            "nullable": true
          },
          "PropertyDesignation": {
            "type": "string",
            "description": "Property Designation",
            "nullable": true
          },
          "TenantsOwnerAssociationOrgNumber": {
            "type": "string",
            "description": "Tenants Owner Association Organization Number",
            "nullable": true
          },
          "ApartmentNumber": {
            "type": "string",
            "description": "Apartment Number",
            "nullable": true
          },
          "IsRutEnabled": {
            "type": "boolean",
            "description": "Is RUT enabled for this customer"
          },
          "IsRotEnabled": {
            "type": "boolean",
            "description": "Is ROT enabled for this customer"
          },
          "PenaltyInterest": {
            "$ref": "#/components/schemas/PenaltyInterestSettings"
          },
          "InvoiceDeliverySettings": {
            "$ref": "#/components/schemas/InvoiceDeliverySettings"
          },
          "InvoiceReminderSettings": {
            "$ref": "#/components/schemas/InvoiceReminderSettings"
          }
        },
        "additionalProperties": false
      },
      "CustomerPut": {
        "required": [
          "BillingAddress",
          "Name",
          "Type"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "minLength": 1,
            "type": "string",
            "description": "The name of the customer"
          },
          "OrgNumber": {
            "type": "string",
            "description": "The organisation number of the customer\r\nE.g. 123456-7890",
            "nullable": true
          },
          "Type": {
            "$ref": "#/components/schemas/CustomerType"
          },
          "BillingAddress": {
            "$ref": "#/components/schemas/CustomerAddress"
          },
          "DeliveryAddress": {
            "$ref": "#/components/schemas/CustomerAddress"
          },
          "VatNumber": {
            "type": "string",
            "description": "The vat number of the customer. Optional (e.g. the customer doesn't have a vat number)",
            "nullable": true
          },
          "GlnNumber": {
            "type": "string",
            "description": "The optional GLN-numer of the customer.",
            "nullable": true
          },
          "IncludeVatNumberOnInvoice": {
            "type": "boolean",
            "description": "Whether the vat number should be included on the invoice or not"
          },
          "PaymentTerms": {
            "type": "integer",
            "description": "Must be a positive value, if no value is given default value is 0",
            "format": "int32",
            "nullable": true
          },
          "EmailAddress": {
            "type": "string",
            "description": "The email address for the customer",
            "nullable": true
          },
          "AutogiroPayerNumber": {
            "type": "string",
            "description": "If this is a customer that pays using Autogiro and Wint handles it, the payer number has to be supplied",
            "nullable": true
          },
          "PhoneNumber": {
            "type": "string",
            "description": "Customer phone number",
            "nullable": true
          },
          "Inactive": {
            "type": "boolean",
            "description": "Whether the customer is active or not."
          },
          "ShowCurrencyCode": {
            "type": "boolean",
            "description": "Whether the preferred customer default should be to display the currency code (SEK) instead of the currency (kr)."
          },
          "Language": {
            "type": "string",
            "description": "The language. Either SV or EN",
            "nullable": true
          },
          "Template": {
            "$ref": "#/components/schemas/InvoicePdfTemplate"
          },
          "ReferencePersonsList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Reference"
            },
            "description": "Reference persons for the customer. On create, list the reference persons to add. \r\nOn update, send the full list; include Id for existing persons to keep or update, and omit Id (or use 0) for new ones. \r\nOmitting an existing reference person from the list, or including them without their Id, removes them; the update may fail with 409 if that person cannot be removed.",
            "nullable": true
          },
          "PropertyDesignation": {
            "type": "string",
            "description": "Property Designation",
            "nullable": true
          },
          "TenantsOwnerAssociationOrgNumber": {
            "type": "string",
            "description": "Tenants Owner Association Organization Number",
            "nullable": true
          },
          "ApartmentNumber": {
            "type": "string",
            "description": "Apartment Number",
            "nullable": true
          },
          "IsRutEnabled": {
            "type": "boolean",
            "description": "Is RUT enabled for this customer"
          },
          "IsRotEnabled": {
            "type": "boolean",
            "description": "Is ROT enabled for this customer"
          },
          "PenaltyInterest": {
            "$ref": "#/components/schemas/PenaltyInterestSettings"
          },
          "InvoiceDeliverySettings": {
            "$ref": "#/components/schemas/InvoiceDeliverySettings"
          },
          "InvoiceReminderSettings": {
            "$ref": "#/components/schemas/InvoiceReminderSettings"
          }
        },
        "additionalProperties": false
      },
      "CustomerRating": {
        "type": "object",
        "properties": {
          "Rating": {
            "type": "integer",
            "description": "Rating of the customer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomerSearchResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of the customer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Name of the customer",
            "nullable": true
          },
          "Address": {
            "type": "string",
            "description": "Address of the customer",
            "nullable": true
          },
          "OrgNr": {
            "type": "string",
            "description": "Organization number of the customer",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomerType": {
        "enum": [
          "Company",
          "PrivatePerson"
        ],
        "type": "string",
        "description": "<br />0 - Company, 1 - PrivatePerson"
      },
      "Deadlines.ConsequenceCost": {
        "type": "object",
        "properties": {
          "AmountWithUnit": {
            "type": "string",
            "description": "Amount with the unit for a consequence cost (eg. 100 kr, 5 %)",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "Description of the consequence cost",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a cost associated with a deadline consequence"
      },
      "Deadlines.ConsequenceTypes": {
        "enum": [
          "BreachingAccountingLaw",
          "ReducedLiquidity",
          "VATReportCorrection",
          "LateOrWithHeldVATReport"
        ],
        "type": "string",
        "description": "Possible deadline consequence types<br />0 - BreachingAccountingLaw, 1 - ReducedLiquidity, 2 - VATReportCorrection, 3 - LateOrWithHeldVATReport"
      },
      "Deadlines.Deadline": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of the deadline",
            "format": "int32"
          },
          "Type": {
            "$ref": "#/components/schemas/Deadlines.DeadlineType"
          },
          "State": {
            "$ref": "#/components/schemas/Deadlines.DeadlineState"
          },
          "CanBeUnsubscribed": {
            "type": "boolean",
            "description": "Does user has ability to unsubscribe from email reminders"
          },
          "Consequences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Deadlines.DeadlineConsequence"
            },
            "description": "Consequence list of the deadline",
            "nullable": true
          },
          "PeriodEndDate": {
            "type": "string",
            "description": "Deadline period's end date",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Represents a deadline"
      },
      "Deadlines.DeadlineConsequence": {
        "type": "object",
        "properties": {
          "Title": {
            "type": "string",
            "description": "Consequence title",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "Consequence description",
            "nullable": true
          },
          "AssociatedCosts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Deadlines.ConsequenceCost"
            },
            "description": "Costs associated with the consequence",
            "nullable": true
          },
          "ConsequenceType": {
            "$ref": "#/components/schemas/Deadlines.ConsequenceTypes"
          }
        },
        "additionalProperties": false,
        "description": "Represents a deadline consequence"
      },
      "Deadlines.DeadlineState": {
        "enum": [
          "Unknown",
          "Active",
          "Handled",
          "Expired"
        ],
        "type": "string",
        "description": "<br />0 - Unknown, 1 - Active, 2 - Handled, 3 - Expired"
      },
      "Deadlines.DeadlineType": {
        "enum": [
          "Unknown",
          "VATPeriodEnd",
          "FinancialYearEnd"
        ],
        "type": "string",
        "description": "<br />0 - Unknown, 1 - VATPeriodEnd, 2 - FinancialYearEnd"
      },
      "Declarations.Declaration": {
        "type": "object",
        "properties": {
          "PersonId": {
            "type": "integer",
            "description": "Gets or sets the person ID.",
            "format": "int32"
          },
          "Year": {
            "type": "integer",
            "description": "Gets or sets the year.",
            "format": "int32"
          },
          "Comment": {
            "type": "string",
            "description": "Gets or sets the comment from additional information.",
            "nullable": true
          },
          "SpousePersonalNumber": {
            "type": "string",
            "description": "Gets or sets the spouse's personal number from additional information.",
            "nullable": true
          },
          "ExternalHoldings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Declarations.ExternalHolding"
            },
            "description": "Gets or sets the list of external holdings.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Api model for declaration data including additional information and external holdings."
      },
      "Declarations.ExternalHolding": {
        "type": "object",
        "properties": {
          "CompanyName": {
            "type": "string",
            "description": "Gets or sets the company name.",
            "nullable": true
          },
          "Ownership": {
            "type": "number",
            "description": "Gets or sets the ownership percentage.",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Represents an external holding with company name and ownership percentage."
      },
      "DeviationSummary": {
        "type": "object",
        "properties": {
          "Unit": {
            "$ref": "#/components/schemas/UnitOfDeviationValue"
          },
          "Value": {
            "type": "number",
            "description": "Value of deviation summary",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Summary of the salary deviation"
      },
      "Dimension": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Name of dimension",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "description": "Dimension Id",
            "format": "uuid"
          },
          "ShortName": {
            "type": "string",
            "description": "Short name of dimension",
            "nullable": true
          },
          "TypeId": {
            "type": "string",
            "description": "Dimension Type Id",
            "format": "uuid"
          },
          "TypeName": {
            "type": "string",
            "description": "Name of the dimension type",
            "nullable": true
          },
          "Type": {
            "$ref": "#/components/schemas/DimensionCompatibilityType"
          }
        },
        "additionalProperties": false
      },
      "DimensionCompatibilityType": {
        "enum": [
          "Default",
          "CostCenter",
          "Project",
          "Tag",
          "Supplier",
          "Customer",
          "Employee",
          "User",
          "PaymentMethod",
          "Seller",
          "Article",
          "BusinessUnit",
          "BusinessUnitManager",
          "TimeReportingEmployee",
          "Owner"
        ],
        "type": "string",
        "description": "<br />0 - Default, 1 - CostCenter, 2 - Project, 3 - Tag, 4 - Supplier, 5 - Customer, 6 - Employee, 7 - User, 8 - PaymentMethod, 9 - Seller, 10 - Article, 11 - BusinessUnit, 12 - BusinessUnitManager, 13 - TimeReportingEmployee, 14 - Owner"
      },
      "DimensionData": {
        "type": "object",
        "properties": {
          "DimensionId": {
            "type": "string",
            "description": "Demension id for the current newDimension object",
            "format": "uuid"
          },
          "Amount": {
            "type": "number",
            "description": "Amount to be set for dimension specified in DimensionId",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Common dimension object for both incoming invoices and receipts"
      },
      "DimensionPost": {
        "type": "object",
        "properties": {
          "DimensionTypeId": {
            "type": "string",
            "description": "DimensionTypeId",
            "format": "uuid"
          },
          "Name": {
            "type": "string",
            "description": "Name of dimension",
            "nullable": true
          },
          "ShortName": {
            "type": "string",
            "description": "Short name of dimenson",
            "nullable": true
          },
          "Active": {
            "type": "boolean",
            "description": "Dimension is active"
          }
        },
        "additionalProperties": false
      },
      "DimensionPut": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Name of dimension",
            "nullable": true
          },
          "ShortName": {
            "type": "string",
            "description": "Short name of dimenson",
            "nullable": true
          },
          "Active": {
            "type": "boolean",
            "description": "Dimension is active"
          }
        },
        "additionalProperties": false
      },
      "DimensionType": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "format": "uuid"
          },
          "CompatibilityType": {
            "$ref": "#/components/schemas/DimensionTypes"
          },
          "Type": {
            "$ref": "#/components/schemas/DimensionCompatibilityType"
          },
          "IsForced": {
            "type": "boolean",
            "description": "If this dimension type is marked as required in dimension settings. If true, when dimensions are submitted, atleast one dimension from this type should be included."
          },
          "RecommendedDimensionId": {
            "type": "string",
            "description": "Recommended dimension for dimension type",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DimensionTypes": {
        "enum": [
          "CostCenter",
          "Project"
        ],
        "type": "string",
        "description": "<br />0 - CostCenter, 1 - Project"
      },
      "DownPaymentVisibility": {
        "enum": [
          "DoNotShow",
          "ShowOnly"
        ],
        "type": "string",
        "description": "Filter option for displaying downpayment invoices and incoming invoices<br />0 - DoNotShow, 1 - ShowOnly"
      },
      "EditMonthlyReportMarkdownRequest": {
        "type": "object",
        "properties": {
          "Markdown": {
            "type": "string",
            "description": "The full new markdown body. Must not be empty.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Replaces the report body with a hand-edited version."
      },
      "Employee": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Name of employee",
            "nullable": true
          },
          "Mail": {
            "type": "string",
            "description": "Registered e-mail of employee",
            "nullable": true
          },
          "Pno": {
            "maxLength": 11,
            "minLength": 0,
            "type": "string",
            "description": "Social security number",
            "nullable": true
          },
          "Id": {
            "type": "integer",
            "description": "Id",
            "format": "int32"
          },
          "SupplierInvoicesAvalible": {
            "type": "boolean",
            "description": "True if supplier invoices are available for this employee"
          }
        },
        "additionalProperties": false
      },
      "EmployeeChildAssistant": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of the assistant",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Name of the assistant",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EmployeePost": {
        "type": "object",
        "properties": {
          "Mail": {
            "type": "string",
            "description": "E-mail of employee",
            "nullable": true
          },
          "SalarySettings": {
            "$ref": "#/components/schemas/EmployeeSalarySetting"
          },
          "BusinessUnitId": {
            "type": "string",
            "description": "Business unit id which logged in user manages.\r\nThis will be set only if the logged in user has salary rights permission in a business units.",
            "format": "uuid",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "Name of employee",
            "nullable": true
          },
          "Pno": {
            "maxLength": 11,
            "minLength": 0,
            "type": "string",
            "description": "Social security number",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "description": "Phone number",
            "nullable": true
          },
          "AdditionalBankAccount": {
            "type": "string",
            "description": "Optional bank account number",
            "nullable": true
          },
          "AdditionalBankAccountClearing": {
            "type": "string",
            "description": "Optional bank account clearing number",
            "nullable": true
          },
          "Assistants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmployeeChildAssistant"
            },
            "description": "Persons with right permissions to certify supplier invoices and manage customer invoices",
            "nullable": true
          },
          "Permissions": {
            "$ref": "#/components/schemas/Permissions"
          },
          "ProfileImage": {
            "$ref": "#/components/schemas/ProfileImage"
          },
          "IncomingInvoiceReferenceNames": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IncomingInvoiceReferenceName"
            },
            "description": "Incoming invoice reference names",
            "nullable": true
          },
          "TimeReportingSettings": {
            "$ref": "#/components/schemas/TimeReportingSettings"
          },
          "UserTypeId": {
            "type": "integer",
            "description": "Assigned user type for this employee, or null for none.\r\n            Must be a type enabled for the company.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EmployeePut": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Name of employee",
            "nullable": true
          },
          "Pno": {
            "maxLength": 11,
            "minLength": 0,
            "type": "string",
            "description": "Social security number",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "description": "Phone number",
            "nullable": true
          },
          "AdditionalBankAccount": {
            "type": "string",
            "description": "Optional bank account number",
            "nullable": true
          },
          "AdditionalBankAccountClearing": {
            "type": "string",
            "description": "Optional bank account clearing number",
            "nullable": true
          },
          "Assistants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmployeeChildAssistant"
            },
            "description": "Persons with right permissions to certify supplier invoices and manage customer invoices",
            "nullable": true
          },
          "Permissions": {
            "$ref": "#/components/schemas/Permissions"
          },
          "ProfileImage": {
            "$ref": "#/components/schemas/ProfileImage"
          },
          "IncomingInvoiceReferenceNames": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IncomingInvoiceReferenceName"
            },
            "description": "Incoming invoice reference names",
            "nullable": true
          },
          "TimeReportingSettings": {
            "$ref": "#/components/schemas/TimeReportingSettings"
          },
          "UserTypeId": {
            "type": "integer",
            "description": "Assigned user type for this employee, or null for none.\r\n            Must be a type enabled for the company.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EmployeeSalarySetting": {
        "type": "object",
        "properties": {
          "CanChangeTerminationReason": {
            "type": "boolean",
            "description": "False when a vacation termination settlement already exists in Wint.Salary — the\r\ntermination reason is then frozen and must not be edited. Defaults to true (changeable)."
          },
          "IsActive": {
            "type": "boolean",
            "description": "Is salary active"
          },
          "BankAccount": {
            "type": "string",
            "description": "Bank account",
            "nullable": true
          },
          "BankAccountClearing": {
            "type": "string",
            "description": "Clearing number for bank account",
            "nullable": true
          },
          "TaxTable": {
            "$ref": "#/components/schemas/TaxTableInfo"
          },
          "EmploymentStartDate": {
            "type": "string",
            "description": "Date of employment",
            "format": "date-time",
            "nullable": true
          },
          "EmploymentEndDate": {
            "type": "string",
            "description": "End date of the employment",
            "format": "date-time",
            "nullable": true
          },
          "MonthlySalary": {
            "type": "number",
            "description": "Gross monthly salary",
            "format": "double",
            "nullable": true
          },
          "EmploymentRate": {
            "type": "number",
            "description": "Employment rate",
            "format": "double"
          },
          "SalaryChangeFrom": {
            "type": "string",
            "description": "Apply salary change after this date",
            "format": "date-time",
            "nullable": true
          },
          "EmploymentRateChangeFrom": {
            "type": "string",
            "description": "Apply employment rate change after this date",
            "format": "date-time",
            "nullable": true
          },
          "WorkPlaceStreetAddress": {
            "type": "string",
            "description": "Street address where employee is physically working",
            "nullable": true
          },
          "WorkPlaceCity": {
            "type": "string",
            "description": "City where employee is physically working",
            "nullable": true
          },
          "Position": {
            "type": "string",
            "description": "Gets or sets the position of the employee",
            "nullable": true
          },
          "VacationConditions": {
            "type": "integer",
            "description": "Gets or sets the vacation conditions of the employee",
            "format": "int32",
            "nullable": true
          },
          "WorkType": {
            "$ref": "#/components/schemas/EmployeeWorkType"
          },
          "UsualWorkHours": {
            "type": "number",
            "description": "Gets or sets the usual work hours of the employee",
            "format": "double",
            "nullable": true
          },
          "Schedule": {
            "type": "string",
            "description": "Gets or sets the schedule of the employee",
            "nullable": true
          },
          "CostCenter": {
            "type": "string",
            "description": "Gets or sets the cost center of the employee's salary",
            "format": "uuid",
            "nullable": true
          },
          "WintSalarySpecificSettings": {
            "$ref": "#/components/schemas/WintSalary.WintSalarySpecificSettings"
          },
          "TerminationReason": {
            "$ref": "#/components/schemas/EmploymentTerminationReason"
          }
        },
        "additionalProperties": false
      },
      "EmployeeWorkType": {
        "enum": [
          "BlueCollar",
          "WhiteCollar"
        ],
        "type": "string",
        "description": "<br />0 - BlueCollar, 1 - WhiteCollar"
      },
      "EmploymentTerminationReason": {
        "enum": [
          "Undefined",
          "VoluntaryResignation",
          "EmployerNotice",
          "MutualAgreement",
          "RetirementOrPension",
          "Sickness",
          "Redundancy",
          "Death",
          "ChangeOfEmploymentForm"
        ],
        "type": "string",
        "description": "The §29a termination reason recorded when an employment end date is set.\r\nMirrors Wint.Salary's `Wint.Salary.Common.Enums.EmploymentTerminationReason`\r\nwith identical member names and byte values. The model package must not depend on\r\nany Wint.Salary.* package, so the enum is mirrored Core-locally and kept in lockstep\r\nby the parity unit test (see EmploymentTerminationReasonParityTests). User-facing\r\nlabels live in the web i18n / Heart side, so no System.ComponentModel.DescriptionAttribute\r\nvalues are needed here — names and values only.<br />0 - Undefined, 1 - VoluntaryResignation, 2 - EmployerNotice, 3 - MutualAgreement, 4 - RetirementOrPension, 5 - Sickness, 6 - Redundancy, 7 - Death, 8 - ChangeOfEmploymentForm"
      },
      "EntityStateLog": {
        "type": "object",
        "properties": {
          "Status": {
            "type": "integer",
            "description": "The changed status of the entity",
            "format": "int32"
          },
          "Date": {
            "type": "string",
            "description": "The timestamp of the change",
            "format": "date-time",
            "nullable": true
          },
          "ChangedById": {
            "type": "integer",
            "description": "The id of the person who made the change",
            "format": "int32",
            "nullable": true
          },
          "ChangedByName": {
            "type": "string",
            "description": "The person who made the change",
            "nullable": true
          },
          "IsIntermediateState": {
            "type": "boolean",
            "description": "Whether the state is an intermediate state"
          },
          "Active": {
            "type": "boolean",
            "description": "Whether the state is active"
          }
        },
        "additionalProperties": false,
        "description": "Entity state log declares status change log for the entity"
      },
      "EuVatProductType": {
        "enum": [
          "NotDefined",
          "Unknown",
          "Exempt",
          "Goods",
          "ThirdPartyTrade",
          "Services"
        ],
        "type": "string",
        "description": "For EU invoicing, invoice item VAT product type has to be declared, to ensure the right basis for invoice VAT number validation, and further on the Recapitulative statement\r\nNot needed for domestic trade.<br />0 - NotDefined, 1 - Unknown, 2 - Exempt, 24 - Goods, 27 - ThirdPartyTrade, 28 - Services"
      },
      "ExistingCustomerCheckRequest": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The id of the customer",
            "format": "int32",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "The name of the customer",
            "nullable": true
          },
          "BillingAddress": {
            "$ref": "#/components/schemas/CustomerAddress"
          }
        },
        "additionalProperties": false,
        "description": "To check for an existing customer with the same details"
      },
      "ExistingCustomerCheckResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The id of the customer",
            "format": "int32",
            "nullable": true
          },
          "OrgNumber": {
            "type": "string",
            "description": "The organisation number of the customer\r\nE.g. 123456-7890",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "To get information of an existing customer with the same details"
      },
      "ExtendedEmployee": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id",
            "format": "int32"
          },
          "SupplierInvoicesAvalible": {
            "type": "boolean",
            "description": "True if supplier invoices are available for this employee"
          },
          "Mail": {
            "type": "string",
            "description": "E-mail of employee",
            "nullable": true
          },
          "SalarySettings": {
            "$ref": "#/components/schemas/EmployeeSalarySetting"
          },
          "BusinessUnitId": {
            "type": "string",
            "description": "Business unit id which logged in user manages.\r\nThis will be set only if the logged in user has salary rights permission in a business units.",
            "format": "uuid",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "Name of employee",
            "nullable": true
          },
          "Pno": {
            "maxLength": 11,
            "minLength": 0,
            "type": "string",
            "description": "Social security number",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "description": "Phone number",
            "nullable": true
          },
          "AdditionalBankAccount": {
            "type": "string",
            "description": "Optional bank account number",
            "nullable": true
          },
          "AdditionalBankAccountClearing": {
            "type": "string",
            "description": "Optional bank account clearing number",
            "nullable": true
          },
          "Assistants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmployeeChildAssistant"
            },
            "description": "Persons with right permissions to certify supplier invoices and manage customer invoices",
            "nullable": true
          },
          "Permissions": {
            "$ref": "#/components/schemas/Permissions"
          },
          "ProfileImage": {
            "$ref": "#/components/schemas/ProfileImage"
          },
          "IncomingInvoiceReferenceNames": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IncomingInvoiceReferenceName"
            },
            "description": "Incoming invoice reference names",
            "nullable": true
          },
          "TimeReportingSettings": {
            "$ref": "#/components/schemas/TimeReportingSettings"
          },
          "UserTypeId": {
            "type": "integer",
            "description": "Assigned user type for this employee, or null for none.\r\n            Must be a type enabled for the company.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalInvoiceReference": {
        "type": "object",
        "properties": {
          "SystemName": {
            "type": "string",
            "description": "Name of external system",
            "nullable": true
          },
          "ExternalId": {
            "type": "string",
            "description": "Id of the invoice in the external system",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "File": {
        "type": "object",
        "properties": {
          "FileName": {
            "type": "string",
            "description": "Name",
            "nullable": true
          },
          "ContentType": {
            "type": "string",
            "description": "Content type",
            "nullable": true
          },
          "Data": {
            "type": "string",
            "description": "File data",
            "format": "byte",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FinancialReport.AuditReportFilter": {
        "type": "object",
        "properties": {
          "ReconciliationId": {
            "type": "integer",
            "description": "MonthlyReconciliation id",
            "format": "int32",
            "nullable": true
          },
          "EndMonth": {
            "$ref": "#/components/schemas/YearAndMonth"
          },
          "WidgetDataOnly": {
            "type": "boolean",
            "description": "Get top level audit categories only."
          },
          "IncludeZeroValueRows": {
            "type": "boolean",
            "description": "Include categories and accounts with a value of zero."
          }
        },
        "additionalProperties": false,
        "description": "Base filter for audit reports"
      },
      "FinancialReport.AuditReportFilterData": {
        "type": "object",
        "properties": {
          "FilterItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FinancialReport.AuditReportFilterItem"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Holds valid filter values for the Audit balance report"
      },
      "FinancialReport.AuditReportFilterItem": {
        "type": "object",
        "properties": {
          "ReconciliationId": {
            "type": "integer",
            "format": "int32"
          },
          "StartMonth": {
            "$ref": "#/components/schemas/YearAndMonth"
          },
          "EndMonth": {
            "$ref": "#/components/schemas/YearAndMonth"
          }
        },
        "additionalProperties": false
      },
      "FinancialReport.FinancialReport": {
        "type": "object",
        "properties": {
          "Rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FinancialReport.FinancialReportRow"
            },
            "nullable": true
          },
          "Columns": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "StartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FinancialReport.FinancialReportColumnFilter": {
        "type": "object",
        "properties": {
          "StartMonth": {
            "$ref": "#/components/schemas/YearAndMonth"
          },
          "EndMonth": {
            "$ref": "#/components/schemas/YearAndMonth"
          }
        },
        "additionalProperties": false
      },
      "FinancialReport.FinancialReportDimensionFilter": {
        "required": [
          "EndMonth",
          "StartMonth"
        ],
        "type": "object",
        "properties": {
          "StartMonth": {
            "$ref": "#/components/schemas/YearAndMonth"
          },
          "EndMonth": {
            "$ref": "#/components/schemas/YearAndMonth"
          },
          "DimensionType": {
            "type": "string",
            "description": "Dimension type",
            "format": "uuid"
          },
          "OnlyDimensionsWithTransactions": {
            "type": "boolean",
            "description": "Only allow dimensions with transactions",
            "nullable": true
          },
          "OnlyActiveDimensions": {
            "type": "boolean",
            "description": "Only allow active dimensions",
            "nullable": true
          },
          "ShowAccountNumber": {
            "type": "boolean",
            "description": "Display-only setting stored with saved filters; ignored when building the report",
            "nullable": true
          },
          "HideAverageMonthAndDifference": {
            "type": "boolean",
            "description": "Display-only setting stored with saved filters; ignored when building the report",
            "nullable": true
          },
          "ExpandAllRows": {
            "type": "boolean",
            "description": "Display-only setting stored with saved filters; ignored when building the report",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Base filter for dimension related financial reports"
      },
      "FinancialReport.FinancialReportFilter": {
        "type": "object",
        "properties": {
          "Dimensions": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "If dimensions are specified, only transactions with the included dimensions will be included in the report",
            "nullable": true
          },
          "Columns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FinancialReport.FinancialReportColumnFilter"
            },
            "description": "The first column specified is the default one. All other columns will include difference compared to the default column.",
            "nullable": true
          },
          "ShowAccountNumber": {
            "type": "boolean",
            "description": "Display-only setting stored with saved filters; ignored when building the report",
            "nullable": true
          },
          "HideAverageMonthAndDifference": {
            "type": "boolean",
            "description": "Display-only setting stored with saved filters; ignored when building the report",
            "nullable": true
          },
          "ExpandAllRows": {
            "type": "boolean",
            "description": "Display-only setting stored with saved filters; ignored when building the report",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Base filter for financial reports"
      },
      "FinancialReport.FinancialReportMonthlyFilter": {
        "required": [
          "EndMonth",
          "StartMonth"
        ],
        "type": "object",
        "properties": {
          "StartMonth": {
            "$ref": "#/components/schemas/YearAndMonth"
          },
          "EndMonth": {
            "$ref": "#/components/schemas/YearAndMonth"
          },
          "Dimensions": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "If dimensions are specified, only transactions with the included dimensions will be included in the report",
            "nullable": true
          },
          "ShowAccountNumber": {
            "type": "boolean",
            "description": "Display-only setting stored with saved filters; ignored when building the report",
            "nullable": true
          },
          "HideAverageMonthAndDifference": {
            "type": "boolean",
            "description": "Display-only setting stored with saved filters; ignored when building the report",
            "nullable": true
          },
          "ExpandAllRows": {
            "type": "boolean",
            "description": "Display-only setting stored with saved filters; ignored when building the report",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Monthly filter for financial reports"
      },
      "FinancialReport.FinancialReportMultiDimensionFilter": {
        "required": [
          "EndMonth",
          "StartMonth"
        ],
        "type": "object",
        "properties": {
          "CrossDimensionTypes": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Cross dimension types",
            "nullable": true
          },
          "StartMonth": {
            "$ref": "#/components/schemas/YearAndMonth"
          },
          "EndMonth": {
            "$ref": "#/components/schemas/YearAndMonth"
          },
          "DimensionType": {
            "type": "string",
            "description": "Dimension type",
            "format": "uuid"
          },
          "OnlyDimensionsWithTransactions": {
            "type": "boolean",
            "description": "Only allow dimensions with transactions",
            "nullable": true
          },
          "OnlyActiveDimensions": {
            "type": "boolean",
            "description": "Only allow active dimensions",
            "nullable": true
          },
          "ShowAccountNumber": {
            "type": "boolean",
            "description": "Display-only setting stored with saved filters; ignored when building the report",
            "nullable": true
          },
          "HideAverageMonthAndDifference": {
            "type": "boolean",
            "description": "Display-only setting stored with saved filters; ignored when building the report",
            "nullable": true
          },
          "ExpandAllRows": {
            "type": "boolean",
            "description": "Display-only setting stored with saved filters; ignored when building the report",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Filter for multi dimensional financial reports rel"
      },
      "FinancialReport.FinancialReportRow": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "nullable": true
          },
          "IsAccount": {
            "type": "boolean"
          },
          "IsDimension": {
            "type": "boolean"
          },
          "Type": {
            "$ref": "#/components/schemas/FinancialReport.FinancialReportRowType"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "DetailedDescription": {
            "type": "string",
            "nullable": true
          },
          "Columns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FinancialReport.FinancialReportRowColumn"
            },
            "nullable": true
          },
          "Children": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FinancialReport.FinancialReportRow"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FinancialReport.FinancialReportRowColumn": {
        "type": "object",
        "properties": {
          "Amount": {
            "type": "number",
            "format": "double"
          },
          "Difference": {
            "type": "number",
            "format": "double"
          },
          "DifferencePercentage": {
            "type": "number",
            "format": "double"
          },
          "IB": {
            "type": "number",
            "format": "double"
          },
          "UB": {
            "type": "number",
            "format": "double"
          },
          "Checked": {
            "type": "boolean",
            "nullable": true
          },
          "AuditSheetId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FinancialReport.FinancialReportRowType": {
        "enum": [
          "Category",
          "SumSmall",
          "Sum",
          "Empty",
          "Title",
          "SumNoFormatting"
        ],
        "type": "string",
        "description": "<br />0 - Category, 1 - SumSmall, 2 - Sum, 3 - Empty, 4 - Title, 5 - SumNoFormatting"
      },
      "FinancialYear": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of the financial year",
            "format": "int32"
          },
          "Start": {
            "type": "string",
            "description": "Start date of the financial year",
            "format": "date-time"
          },
          "End": {
            "type": "string",
            "description": "End date of the financial year",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ForgotPassword": {
        "type": "object",
        "properties": {
          "Mail": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ForwardableCost": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "SourceDocument": {
            "type": "string",
            "description": "The source document as the user knows it, e.g. \"kvitto 7\".",
            "nullable": true
          },
          "ReceiptId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ReceiptSerialNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "IncomingInvoiceId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "SupplierInvoiceNumber": {
            "type": "string",
            "description": "The number the web and app show for the supplier invoice.",
            "nullable": true
          },
          "SourceDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "NetAmountSek": {
            "type": "number",
            "description": "Net excluding VAT, in SEK. Null until the source document is booked.",
            "format": "double",
            "nullable": true
          },
          "IsSelectable": {
            "type": "boolean",
            "description": "False while the amount cannot be derived yet (\"väntar på bokföring\")."
          }
        },
        "additionalProperties": false,
        "description": "A cost waiting to be forwarded to a customer, with the net amount the invoice row is built\r\nfrom. The client applies markup, VAT rate and any currency conversion."
      },
      "GenerateMonthlyReportRequest": {
        "type": "object",
        "properties": {
          "PeriodYear": {
            "type": "integer",
            "description": "Year the period ends in. A three-month period can start in the year before.",
            "format": "int32"
          },
          "PeriodMonth": {
            "type": "integer",
            "description": "Last month in the period, 1 to 12. The report always covers whole calendar months.",
            "format": "int32"
          },
          "PeriodMonthCount": {
            "type": "integer",
            "description": "Number of consecutive months the period covers, ending with Wint.Superkoll.API.Model.GenerateMonthlyReportRequest.PeriodMonth: 1 or 3.\r\nOmit for a single month. Three months need not be a calendar or fiscal quarter. Unlike\r\nWint.Superkoll.API.Model.RevenueReportNotSubmittedDetail, the count runs back from the last month, not forward from the first.",
            "format": "int32",
            "nullable": true
          },
          "Segment": {
            "type": "string",
            "description": "Optional prompt segment. Omit for the default.",
            "nullable": true
          },
          "Deployment": {
            "type": "string",
            "description": "Optional model override. Omit for the report service's default.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Asks for a report for the selected company over one or three whole months ending with the given month."
      },
      "ImageType": {
        "enum": [
          "Receipt",
          "IncomingInvoice",
          "MissingDocument",
          "SalaryDraft",
          "Invoice",
          "GenericDocument",
          "DocumentDraft",
          "CashReconciliation",
          "Quotation",
          "QualifiedShareDividend",
          "AnnualReport",
          "Voucher",
          "IncomeTaxReturn",
          "AnnualReportAndIncomeTaxReturn",
          "AnnualGeneralMeeting",
          "AllAnnualDocuments",
          "AnnualReportAndAnnualGeneralMeeting"
        ],
        "type": "string",
        "description": "Type of image<br />0 - Receipt, 1 - IncomingInvoice, 2 - MissingDocument, 3 - SalaryDraft, 4 - Invoice, 5 - GenericDocument, 6 - DocumentDraft, 7 - CashReconciliation, 8 - Quotation, 9 - QualifiedShareDividend, 10 - AnnualReport, 11 - Voucher, 12 - IncomeTaxReturn, 13 - AnnualReportAndIncomeTaxReturn, 14 - AnnualGeneralMeeting, 15 - AllAnnualDocuments, 16 - AnnualReportAndAnnualGeneralMeeting"
      },
      "IncomingInvoicePutInfo": {
        "type": "object",
        "properties": {
          "InvoiceDate": {
            "type": "string",
            "description": "Invoice date",
            "format": "date-time",
            "nullable": true
          },
          "AccountNumber": {
            "type": "integer",
            "description": "Bookkeeping account",
            "format": "int32"
          },
          "SupplierId": {
            "type": "integer",
            "description": "ID of the local supplier if any",
            "format": "int32",
            "nullable": true
          },
          "Amount": {
            "type": "number",
            "description": "Amount including VAT",
            "format": "double",
            "nullable": true
          },
          "VatAmount": {
            "type": "number",
            "description": "VAT amount",
            "format": "double",
            "nullable": true
          },
          "DimensionList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DimensionData"
            },
            "description": "New dimensions structure for the web app\r\nTODO: delete if not used in mobile app",
            "nullable": true
          },
          "Currency": {
            "type": "string",
            "description": "The currency",
            "nullable": true
          },
          "PeriodisationStart": {
            "type": "string",
            "description": "Periodisation start month",
            "format": "date-time",
            "nullable": true
          },
          "PeriodisationEnd": {
            "type": "string",
            "description": "Periodisation end month",
            "format": "date-time",
            "nullable": true
          },
          "PeriodisationStartDate": {
            "type": "string",
            "description": "Exact dates when the periodisation is date based; null for month based.",
            "format": "date-time",
            "nullable": true
          },
          "PeriodisationEndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Incoming Invoice specific data"
      },
      "IncomingInvoiceReferenceName": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Reference Name",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Invoice": {
        "required": [
          "Currency",
          "CustomerId",
          "DueDate",
          "Language",
          "Rows"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The id of the invoice used to GET the invoice. This is not necessary\r\nto specify when adding an invoice",
            "format": "int32"
          },
          "WebUrl": {
            "type": "string",
            "description": "Absolute URL to open this invoice in the Wint web app.",
            "nullable": true
          },
          "Status": {
            "$ref": "#/components/schemas/InvoiceStatus"
          },
          "SerialNumber": {
            "type": "integer",
            "description": "Serial number on invoice",
            "format": "int64",
            "nullable": true
          },
          "Ocr": {
            "type": "integer",
            "description": "Ocr number",
            "format": "int64"
          },
          "OcrText": {
            "type": "string",
            "description": "Ocr number converted to text",
            "nullable": true
          },
          "RoundValue": {
            "type": "boolean",
            "description": "Whether each row should be rounded"
          },
          "Credit": {
            "type": "boolean",
            "description": "Whether this invoice is a credit invoice"
          },
          "Payments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Payment"
            },
            "description": "Payments for the invoice",
            "nullable": true
          },
          "PaymentTerms": {
            "type": "integer",
            "description": "Payment terms for invoice",
            "format": "int32",
            "readOnly": true
          },
          "LastUpdated": {
            "type": "string",
            "description": "Last modified timestamp",
            "format": "date-time"
          },
          "Warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Warning"
            },
            "description": "Issues with this invoice that needs attention. This is only set when a single invoice is fetched using the id of the invoice.\r\n4 = Invoice item with no EuVatProductType category in an invoice for a customer with at least one EU address\r\n5 = Invoice item with a defined EuVatProductType category in an invoice with no VAT number for a customer with at least one EU address\r\n6 = Invoice item with a defined EuVatProductType category in an invoice with invalid VAT number for a customer with at least one EU address",
            "nullable": true
          },
          "PaymentReminderTitleTemplate": {
            "type": "string",
            "description": "The template for title of payment reminder message",
            "nullable": true
          },
          "PaymentReminderMessageTemplate": {
            "type": "string",
            "description": "The template for message that will be used in payment reminder email",
            "nullable": true
          },
          "PaymentReminderTemplate": {
            "type": "string",
            "description": "The template for payment reminder message displayed in invoice",
            "nullable": true
          },
          "ReminderDueDate": {
            "type": "string",
            "description": "New due date after reminder sent",
            "format": "date-time",
            "nullable": true
          },
          "OwnerName": {
            "type": "string",
            "description": "Name of the invoice creator",
            "nullable": true
          },
          "CanSendLastVersionToPagero": {
            "type": "boolean",
            "description": "If last version of invoice can be sent to Pagero"
          },
          "HasNoInvalidEuVatProductTypes": {
            "type": "boolean",
            "description": "If no invalid EU Vat product types exist"
          },
          "IsEUCustomer": {
            "type": "boolean",
            "description": "If customer is EU Customer"
          },
          "InvoiceWarnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Warning"
            },
            "description": "Obsolete property which is always set to null. Use Wint.Superkoll.API.Model.Invoice.Warnings instead.",
            "nullable": true,
            "deprecated": true
          },
          "InvoicePaymentBgNumber": {
            "type": "string",
            "description": "Bankgiro number of the payment",
            "nullable": true
          },
          "InvoicePaymentMethod": {
            "$ref": "#/components/schemas/InvoicePaymentMethod"
          },
          "PaymentState": {
            "$ref": "#/components/schemas/InvoicePaymentState"
          },
          "Attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceAttachment"
            },
            "description": "List of attachments in the invoice",
            "nullable": true
          },
          "CustomerName": {
            "type": "string",
            "description": "The name of the customer",
            "nullable": true
          },
          "CustomerOrgNo": {
            "type": "string",
            "description": "The organization number of the customer",
            "nullable": true
          },
          "TotalAmount": {
            "type": "number",
            "description": "Total amount",
            "format": "double"
          },
          "TotalReminderCost": {
            "type": "number",
            "description": "The total reminder cost of the invoice",
            "format": "double",
            "nullable": true
          },
          "TotalTax": {
            "type": "number",
            "description": "Total tax amount",
            "format": "double"
          },
          "FromRecurring": {
            "type": "boolean",
            "description": "Is based on a recurring invoice"
          },
          "RecurringId": {
            "type": "integer",
            "description": "Parent recurring invoice reference",
            "format": "int32",
            "nullable": true
          },
          "RecurringInvoiceVersion": {
            "$ref": "#/components/schemas/RecurringInvoiceVersion"
          },
          "PaymentDate": {
            "type": "string",
            "description": "Payment date. Can be used for notifying Wint of payment fulfillment. Payment fulfillment monitoring is handled by Wint, but this facility can be used when the customer is aware of payment ahead of Wint.",
            "format": "date-time",
            "nullable": true
          },
          "LeftToPay": {
            "type": "number",
            "description": "Remaining amount to be paid",
            "format": "double",
            "nullable": true
          },
          "CreditStatus": {
            "$ref": "#/components/schemas/InvoiceCreditStatus"
          },
          "ReminderInvoicesCount": {
            "type": "integer",
            "description": "Number of reminder invoices.",
            "format": "int32",
            "nullable": true
          },
          "Rot": {
            "type": "boolean",
            "description": "whether rot is enable",
            "nullable": true
          },
          "Rut": {
            "type": "boolean",
            "description": "whether rut is enable",
            "nullable": true
          },
          "HouseWorkApplicationIsFiled": {
            "type": "boolean",
            "description": "whether house work application is filed or not"
          },
          "HasUnbookedHouseWorkCases": {
            "type": "boolean"
          },
          "FromQuotation": {
            "type": "boolean",
            "description": "Is based on a quotation"
          },
          "TotalAmountSummary": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CurrencyValue"
            },
            "description": "Sum of total amount values group by currency (Used only when the filter is configured with IncludeSummary)",
            "nullable": true
          },
          "RecurringFrequency": {
            "$ref": "#/components/schemas/RecurringInvoiceFrequency"
          },
          "RecurringSendType": {
            "$ref": "#/components/schemas/RecurringInvoiceSendType"
          },
          "RecurringState": {
            "$ref": "#/components/schemas/RecurringInvoiceState"
          },
          "InvoiceSendInfo": {
            "$ref": "#/components/schemas/InvoiceSendProperties"
          },
          "CreditInvoiceIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Credit invoice ids of this invoice",
            "nullable": true
          },
          "RemainingCostAfterCredit": {
            "type": "number",
            "description": "The remaining cost after the credit invoice/s",
            "format": "double",
            "nullable": true
          },
          "PDFCount": {
            "type": "integer",
            "description": "Number of invoice PDFs generated",
            "format": "int32"
          },
          "IsTimeReportingInvoice": {
            "type": "boolean",
            "description": "If the invoice has connection to time reports"
          },
          "IsReceiptRepaymentInvoice": {
            "type": "boolean",
            "description": "If the invoice has connection to the paid back wint card receipt"
          },
          "OwnerId": {
            "type": "integer",
            "description": "The invoice owner (defaults to request principal)",
            "format": "int32",
            "nullable": true
          },
          "CustomerId": {
            "type": "integer",
            "description": "The customer to send the invoice to",
            "format": "int32"
          },
          "CustomerReference": {
            "$ref": "#/components/schemas/InvoiceReference"
          },
          "ContactPerson": {
            "type": "string",
            "description": "Seller reference",
            "nullable": true
          },
          "Notes": {
            "type": "string",
            "description": "Notes to the invoice",
            "nullable": true
          },
          "Dimensions": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "The dimensions for the invoice",
            "nullable": true
          },
          "DeliveryDate": {
            "type": "string",
            "description": "The delivery date",
            "format": "date-time"
          },
          "PostingDate": {
            "type": "string",
            "description": "The posting date",
            "format": "date-time"
          },
          "DueDate": {
            "type": "string",
            "description": "When the due date for the invoice is",
            "format": "date-time"
          },
          "ShowReferencePersonInAddress": {
            "type": "boolean",
            "description": "Whether the invoice should have the reference name in the address"
          },
          "ShowShippingAddress": {
            "type": "boolean",
            "description": "Wheter the invoice should contain the customers' delivery address"
          },
          "ShowCurrencyCode": {
            "type": "boolean",
            "description": "Wheter the invoice should show the currency or not. E.g. SEK in the summation row"
          },
          "Language": {
            "minLength": 1,
            "type": "string",
            "description": "The language of the invoice. Either SV or EN"
          },
          "Currency": {
            "minLength": 1,
            "type": "string",
            "description": "The currency of the invoice E.g. SEK"
          },
          "CreditedInvoiceId": {
            "type": "integer",
            "description": "The invoice this credit invoice is referring to. Mandatory if the Credit flag i set to true",
            "format": "int32",
            "nullable": true
          },
          "ReminderCost": {
            "type": "number",
            "description": "The reminder cost of the invoice",
            "format": "double",
            "nullable": true
          },
          "PenaltyInterest": {
            "$ref": "#/components/schemas/PenaltyInterestSettings"
          },
          "ReminderNotes": {
            "type": "string",
            "description": "Notes for the reminder",
            "nullable": true
          },
          "PaymentOptionId": {
            "type": "integer",
            "description": "ID of the PaymentOption to use. Default payment option will be used if not specified",
            "format": "int32",
            "nullable": true
          },
          "Rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceRow"
            },
            "description": "The rows for the invoice"
          },
          "ExternalInvoiceReferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalInvoiceReference"
            },
            "description": "List of references to the invoice if it exist in an external system",
            "nullable": true
          },
          "Template": {
            "$ref": "#/components/schemas/InvoicePdfTemplate"
          },
          "InvoiceHouseWorkType": {
            "$ref": "#/components/schemas/InvoiceHouseWorkType"
          },
          "InvoiceRotPercentageType": {
            "$ref": "#/components/schemas/InvoiceRotPercentageType"
          },
          "CustomerPersonNumber": {
            "type": "string",
            "description": "Personnumber of the invoice customer",
            "nullable": true
          },
          "HouseWorkOtherCosts": {
            "type": "number",
            "description": "Other cost related to RUT/ROT",
            "format": "double",
            "nullable": true
          },
          "InvoiceRotPropertyType": {
            "$ref": "#/components/schemas/InvoiceRotPropertyType"
          },
          "PropertyDesignation": {
            "type": "string",
            "description": "Property for ROT",
            "nullable": true
          },
          "TenantsOwnerAssociationOrgNumber": {
            "type": "string",
            "description": "Tenant-owners' association's organization number",
            "nullable": true
          },
          "ApartmentNumber": {
            "type": "string",
            "description": "Apartment number of the customer",
            "nullable": true
          },
          "QuotationSerialNumber": {
            "type": "integer",
            "description": "Serial number of the quotation",
            "format": "int32",
            "nullable": true
          },
          "IsAutomaticRemindersEnabled": {
            "type": "boolean",
            "description": "True if automatic reminders are enabled for the invoice",
            "nullable": true
          },
          "AutomaticReminderPeriod": {
            "type": "integer",
            "description": "Number of days after due date of invoice or previous reminder when automatic reminders are sent",
            "format": "int32",
            "nullable": true
          },
          "AutomaticReminderDelay": {
            "type": "integer",
            "description": "Number of days after invoice has been overdue that any automatic reminder is sent",
            "format": "int32",
            "nullable": true
          },
          "AutomaticReminderAmountLimit": {
            "type": "number",
            "description": "Minimum payment amount left needed to send automatic reminders",
            "format": "double",
            "nullable": true
          },
          "AutomaticReminderCountLimit": {
            "type": "integer",
            "description": "The maximum number of reminders which will be automatically sent",
            "format": "int32",
            "nullable": true
          },
          "AutomaticReminderFeeDeprecationLimit": {
            "type": "number",
            "description": "Any unpaid reminder fees will be automatically deprecated if under this limit",
            "format": "double",
            "nullable": true
          },
          "AutomaticReminderNotes": {
            "type": "string",
            "description": "Message to show on invoice on automatic reminders",
            "nullable": true
          },
          "AutomaticReminderSendMethod": {
            "$ref": "#/components/schemas/InvoiceSendMethod"
          },
          "AutomaticReminderMailFromType": {
            "$ref": "#/components/schemas/SendInvoiceMailsFromEnum"
          },
          "AutomaticReminderMailToType": {
            "$ref": "#/components/schemas/SendInvoiceMailsToEnum"
          },
          "AutomaticReminderMailToAddresses": {
            "type": "string",
            "description": "The mail address to use if <cref>ReminderMailToType</cref> is set",
            "nullable": true
          },
          "AutomaticReminderMailSubject": {
            "type": "string",
            "description": "Mail subject to use for reminder mails",
            "nullable": true
          },
          "AutomaticReminderMailMessage": {
            "type": "string",
            "description": "Mail message to use for reminder mails",
            "nullable": true
          },
          "InvoiceSource": {
            "$ref": "#/components/schemas/InvoiceSource"
          },
          "OriginOcrNumber": {
            "type": "integer",
            "description": "This is used for matching payments on invoices that has been created from self invoices.",
            "format": "int64",
            "nullable": true
          },
          "SelfInvoiceId": {
            "type": "string",
            "description": "If the invoice is generated using a self invoice this is the id of the related self invoice",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InvoiceActivationRequest": {
        "type": "object",
        "properties": {
          "HasSentInvoiceBefore": {
            "type": "boolean",
            "description": "If the company has sent invoices before"
          },
          "LastInvoiceNumber": {
            "type": "integer",
            "description": "The invoice number of the last invoice that was sent if the company has sent invoice before",
            "format": "int32",
            "nullable": true
          },
          "PreferedStartInvoiceNumber": {
            "type": "integer",
            "description": "If there's a prefered invoice number to start the invoicing with",
            "format": "int32",
            "nullable": true
          },
          "HasEUCustomers": {
            "type": "boolean",
            "description": "If customers in other EU countries will be invoiced"
          },
          "HasRegisteredForFTax": {
            "type": "boolean",
            "description": "If company has registered for F-Tax"
          }
        },
        "additionalProperties": false
      },
      "InvoiceActivationState": {
        "enum": [
          "NotActivated",
          "WaitingForActivation",
          "Activated"
        ],
        "type": "string",
        "description": "<br />0 - NotActivated, 1 - WaitingForActivation, 2 - Activated"
      },
      "InvoiceAttachment": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "The identifier for the attachment.",
            "format": "uuid"
          },
          "FileName": {
            "type": "string",
            "description": "The file name of the attachment.",
            "nullable": true
          },
          "ContentType": {
            "type": "string",
            "description": "The content type of the attachment.",
            "nullable": true
          },
          "Data": {
            "type": "string",
            "description": "The attachment's data.",
            "format": "byte",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InvoiceAttachmentPost": {
        "type": "object",
        "properties": {
          "FileName": {
            "type": "string",
            "description": "The file name of the attachment.",
            "nullable": true
          },
          "ContentType": {
            "type": "string",
            "description": "The content type of the attachment.",
            "nullable": true
          },
          "Data": {
            "type": "string",
            "description": "The attachment's data.",
            "format": "byte",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InvoiceChangedFieldGroup": {
        "enum": [
          "Recipient",
          "Reference",
          "CustomerDetails",
          "Rows",
          "Amounts",
          "Vat",
          "RutRot",
          "Dates",
          "Periodisation",
          "Dimensions",
          "Appearance",
          "Notes",
          "Reminders",
          "PaymentOption"
        ],
        "type": "string",
        "description": "<br />0 - Recipient, 1 - Reference, 2 - CustomerDetails, 3 - Rows, 4 - Amounts, 5 - Vat, 6 - RutRot, 7 - Dates, 8 - Periodisation, 9 - Dimensions, 10 - Appearance, 11 - Notes, 12 - Reminders, 13 - PaymentOption"
      },
      "InvoiceCreditStatus": {
        "enum": [
          "Regular",
          "Credit",
          "Credited"
        ],
        "type": "string",
        "description": "Credit status of the invoice<br />0 - Regular, 1 - Credit, 2 - Credited"
      },
      "InvoiceDefaultMailOptions": {
        "required": [
          "From",
          "To"
        ],
        "type": "object",
        "properties": {
          "MailFromList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceMailSenderOptions"
            },
            "description": "List of senders of the mail.",
            "nullable": true
          },
          "MailToList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceMailRecipientOptions"
            },
            "description": "List of receipients of the mail.",
            "nullable": true
          },
          "Subject": {
            "type": "string",
            "description": "Subject for the mail. If left empty, the subject which is specified under Superkoll -> Inställningar -> Fakturainställningar -> Fakturamail\r\nwill be used.",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "description": "Message for the mail. If left empty, the message specified under\r\nSuperkoll -> Inställningar -> Fakturainställningar -> Fakturamail will be used.",
            "nullable": true
          },
          "To": {
            "$ref": "#/components/schemas/InvoiceMailRecipientOptions"
          },
          "From": {
            "$ref": "#/components/schemas/InvoiceMailSenderOptions"
          },
          "Version": {
            "type": "integer",
            "description": "Specific version to send",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Invoice mail form properties."
      },
      "InvoiceDeliverySettings": {
        "type": "object",
        "properties": {
          "EnableDeliverySettings": {
            "type": "boolean",
            "description": "True if the delivery settings are enabled from customer settings."
          },
          "DefaultInvoiceSendOption": {
            "$ref": "#/components/schemas/InvoiceSendMethod"
          },
          "InvoiceTitleTemplate": {
            "type": "string",
            "description": "Invoice title template. This is the default subject of the invoice mail.",
            "nullable": true
          },
          "InvoiceMessageTemplate": {
            "type": "string",
            "description": "Invoice message template. This is the default message of the invoice mail.",
            "nullable": true
          },
          "InvoiceFileNameTemplate": {
            "type": "string",
            "description": "Invoice file name template. This is the default filename of the attached invoice of the invoice mail.",
            "nullable": true
          },
          "InvoiceMailToType": {
            "$ref": "#/components/schemas/SendInvoiceMailsToEnum"
          },
          "CustomInvoiceMailTo": {
            "type": "string",
            "description": "Specifies the mail address to send the invoice to. This is used if Wint.Superkoll.API.Model.InvoiceDeliverySettings.InvoiceMailToType is set to Wint.Superkoll.API.Model.SendInvoiceMailsToEnum.Other.",
            "nullable": true
          },
          "InvoiceNotes": {
            "type": "string",
            "description": "Notes for the invoice. This is used as a default note in the invoice.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the default invoice delivery settings."
      },
      "InvoiceDimensionPut": {
        "type": "object",
        "properties": {
          "UseStrictValidation": {
            "type": "boolean",
            "description": "Set this if dimensions should be validated in strict mode. If set, required\r\ndimensions must be specified."
          },
          "DimensionList": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "The invoice level dimensions for the invoice",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InvoiceDue": {
        "type": "object",
        "properties": {
          "DueDate": {
            "type": "string",
            "description": "The payment due date of the invoice",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "InvoiceHouseWorkType": {
        "enum": [
          "None",
          "ROT",
          "RUT"
        ],
        "type": "string",
        "description": "HouseWork type for the invoice<br />0 - None, 1 - ROT, 2 - RUT"
      },
      "InvoiceListItem": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The id of the invoice.",
            "format": "int32"
          },
          "WebUrl": {
            "type": "string",
            "description": "Absolute URL to open this invoice in the Wint web app.",
            "nullable": true
          },
          "SerialNumber": {
            "type": "integer",
            "description": "Serial number on invoice",
            "format": "int64"
          },
          "OwnerId": {
            "type": "integer",
            "description": "Id of the invoice creator",
            "format": "int32",
            "nullable": true
          },
          "OwnerName": {
            "type": "string",
            "description": "Name of the invoice creator",
            "nullable": true
          },
          "FromQuotation": {
            "type": "boolean",
            "description": "Is based on a quotation"
          },
          "FromRecurring": {
            "type": "boolean",
            "description": "Is based on a recurring invoice"
          },
          "PostingDate": {
            "type": "string",
            "description": "The posting date",
            "format": "date-time"
          },
          "DueDate": {
            "type": "string",
            "description": "Due date for the invoice",
            "format": "date-time"
          },
          "CustomerId": {
            "type": "integer",
            "description": "Id of the invoice customer",
            "format": "int32"
          },
          "CustomerName": {
            "type": "string",
            "description": "The name of the customer",
            "nullable": true
          },
          "Status": {
            "$ref": "#/components/schemas/InvoiceStatus"
          },
          "CreditStatus": {
            "$ref": "#/components/schemas/InvoiceCreditStatus"
          },
          "ReminderInvoicesCount": {
            "type": "integer",
            "description": "Number of reminder invoices.",
            "format": "int32",
            "nullable": true
          },
          "Rot": {
            "type": "boolean",
            "description": "whether rot is enable",
            "nullable": true
          },
          "Rut": {
            "type": "boolean",
            "description": "whether rut is enable",
            "nullable": true
          },
          "HouseWorkApplicationIsFiled": {
            "type": "boolean",
            "description": "whether house work application is filed or not"
          },
          "HasUnbookedHouseWorkCases": {
            "type": "boolean"
          },
          "Currency": {
            "type": "string",
            "description": "The currency of the invoice E.g. SEK",
            "nullable": true
          },
          "TotalAmount": {
            "type": "number",
            "description": "Total amount",
            "format": "double"
          },
          "TotalAmountExcludingTax": {
            "type": "number",
            "description": "Total amount of the invoice excluding VAT in original currency value.",
            "format": "double"
          },
          "TotalAmountSummary": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CurrencyValue"
            },
            "description": "Sum of total amount values group by currency (Used only when the filter is configured with IncludeSummary)",
            "nullable": true
          },
          "LeftToPay": {
            "type": "number",
            "description": "Remaining amount to be paid",
            "format": "double",
            "nullable": true
          },
          "LeftToPaySummary": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CurrencyValue"
            },
            "description": "Sum of remaining amount to be paid, group by currency (Used only when the filter is configured with IncludeSummary)",
            "nullable": true
          },
          "TotalAmountSummarySEK": {
            "$ref": "#/components/schemas/CurrencyValue"
          },
          "AmountLeftSummarySEK": {
            "$ref": "#/components/schemas/CurrencyValue"
          },
          "AmountExcludingTaxSummarySEK": {
            "$ref": "#/components/schemas/CurrencyValue"
          },
          "AmountExcludingTaxSummary": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CurrencyValue"
            },
            "description": "Sum of total amount values (excluding VAT) group by currency (Used only when the filter is configured with IncludeSummary)",
            "nullable": true
          },
          "BookedAmount": {
            "type": "number",
            "description": "Booked amount in SEK",
            "format": "double",
            "nullable": true
          },
          "AmountPaidSEK": {
            "type": "number",
            "description": "Paid amount in SEK",
            "format": "double",
            "nullable": true
          },
          "PaymentState": {
            "$ref": "#/components/schemas/InvoicePaymentState"
          }
        },
        "additionalProperties": false
      },
      "InvoiceMailOptions": {
        "required": [
          "From",
          "To"
        ],
        "type": "object",
        "properties": {
          "Subject": {
            "type": "string",
            "description": "Subject for the mail. If left empty, the subject which is specified under Superkoll -> Inställningar -> Fakturainställningar -> Fakturamail\r\nwill be used.",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "description": "Message for the mail. If left empty, the message specified under\r\nSuperkoll -> Inställningar -> Fakturainställningar -> Fakturamail will be used.",
            "nullable": true
          },
          "To": {
            "$ref": "#/components/schemas/InvoiceMailRecipientOptions"
          },
          "From": {
            "$ref": "#/components/schemas/InvoiceMailSenderOptions"
          },
          "Version": {
            "type": "integer",
            "description": "Specific version to send",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Options for sending an invoice by mail."
      },
      "InvoiceMailRecipientOptions": {
        "required": [
          "Type"
        ],
        "type": "object",
        "properties": {
          "Type": {
            "$ref": "#/components/schemas/SendInvoiceMailsToEnum"
          },
          "Address": {
            "type": "string",
            "description": "The mail address to the recipient.",
            "format": "email",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Options for the recipient of an invoice mail."
      },
      "InvoiceMailSenderOptions": {
        "required": [
          "Type"
        ],
        "type": "object",
        "properties": {
          "Type": {
            "$ref": "#/components/schemas/SendInvoiceMailsFromEnum"
          },
          "Name": {
            "type": "string",
            "description": "The mail address to the recipient.",
            "format": "email",
            "nullable": true
          },
          "Address": {
            "type": "string",
            "description": "The mail address to the recipient.",
            "format": "email",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Options for the sender of an invoice mail."
      },
      "InvoiceOwnerReassignRequest": {
        "type": "object",
        "properties": {
          "NewOwnerId": {
            "type": "integer",
            "description": "Id of the new invoice owner",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "InvoicePaymentMethod": {
        "enum": [
          "Bankgiro",
          "Plusgiro",
          "Autogiro"
        ],
        "type": "string",
        "description": "Payment method<br />0 - Bankgiro, 1 - Plusgiro, 2 - Autogiro"
      },
      "InvoicePaymentOption": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The ID of the payment option",
            "format": "int32"
          },
          "Method": {
            "$ref": "#/components/schemas/InvoicePaymentMethod"
          },
          "Number": {
            "type": "string",
            "description": "Payment number (e.g. the BG number)",
            "nullable": true
          },
          "IsDefault": {
            "type": "boolean",
            "description": "If this the default payment option (used on invoices where no payment option is specified)"
          }
        },
        "additionalProperties": false,
        "description": "A payment option that can be used on invoices"
      },
      "InvoicePaymentReminder": {
        "type": "object",
        "properties": {
          "ReminderDueDate": {
            "type": "string",
            "description": "The date that you want to be reminded of the invoice again",
            "format": "date-time"
          },
          "ReminderCost": {
            "type": "number",
            "description": "The fee of the reminder",
            "format": "double",
            "nullable": true
          },
          "ReminderMessage": {
            "type": "string",
            "description": "The message of the reminder",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InvoicePaymentState": {
        "enum": [
          "Unpaid",
          "Paid",
          "OverdueSoon",
          "Overdue",
          "PartiallyPaid",
          "PartiallyPaidOverdue"
        ],
        "type": "string",
        "description": "Possible payment statuses for a invoice<br />0 - Unpaid, 1 - Paid, 2 - OverdueSoon, 3 - Overdue, 4 - PartiallyPaid, 5 - PartiallyPaidOverdue"
      },
      "InvoicePdf": {
        "type": "object",
        "properties": {
          "FileName": {
            "type": "string",
            "description": "The file name of the attachment.",
            "nullable": true
          },
          "ContentType": {
            "type": "string",
            "description": "The content type of the attachment.",
            "nullable": true
          },
          "Data": {
            "type": "string",
            "description": "The attachment's data.",
            "format": "byte",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InvoicePdfTemplate": {
        "enum": [
          "Default",
          "Classic"
        ],
        "type": "string",
        "description": "<br />0 - Default, 1 - Classic"
      },
      "InvoicePenaltyInterestType": {
        "enum": [
          "NoPenaltyInterest",
          "Statutory",
          "Prearranged"
        ],
        "type": "string",
        "description": "<br />0 - NoPenaltyInterest, 1 - Statutory, 2 - Prearranged"
      },
      "InvoicePeriodisationRowPut": {
        "required": [
          "InvoiceItemId"
        ],
        "type": "object",
        "properties": {
          "InvoiceItemId": {
            "type": "integer",
            "description": "Id of the invoice item.",
            "format": "int32"
          },
          "Periodisation": {
            "type": "boolean",
            "description": "True to periodise this row, false to remove an existing periodisation."
          },
          "PeriodisationStartYear": {
            "type": "integer",
            "description": "Start year of the periodisation period (used together with Wint.Superkoll.API.Model.InvoicePeriodisationRowPut.PeriodisationStartMonth).",
            "format": "int32",
            "nullable": true
          },
          "PeriodisationStartMonth": {
            "type": "integer",
            "description": "Start month (1-12) of the periodisation period.",
            "format": "int32",
            "nullable": true
          },
          "PeriodisationEndYear": {
            "type": "integer",
            "description": "End year of the periodisation period (used together with Wint.Superkoll.API.Model.InvoicePeriodisationRowPut.PeriodisationEndMonth).",
            "format": "int32",
            "nullable": true
          },
          "PeriodisationEndMonth": {
            "type": "integer",
            "description": "End month (1-12) of the periodisation period.",
            "format": "int32",
            "nullable": true
          },
          "PeriodisationStartDate": {
            "type": "string",
            "description": "Optional exact start date for date-based periodisation. When set together with\r\nWint.Superkoll.API.Model.InvoicePeriodisationRowPut.PeriodisationEndDate, the periodisation is day-weighted.",
            "format": "date-time",
            "nullable": true
          },
          "PeriodisationEndDate": {
            "type": "string",
            "description": "Optional exact end date for date-based periodisation. See Wint.Superkoll.API.Model.InvoicePeriodisationRowPut.PeriodisationStartDate.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Desired periodisation for a single invoice item.\r\nWhen Wint.Superkoll.API.Model.InvoicePeriodisationRowPut.Periodisation is true, supply either the month pair\r\n(Wint.Superkoll.API.Model.InvoicePeriodisationRowPut.PeriodisationStartYear + Wint.Superkoll.API.Model.InvoicePeriodisationRowPut.PeriodisationStartMonth and the corresponding end values)\r\nor the date pair (Wint.Superkoll.API.Model.InvoicePeriodisationRowPut.PeriodisationStartDate + Wint.Superkoll.API.Model.InvoicePeriodisationRowPut.PeriodisationEndDate).\r\nWhen both are supplied the date pair takes precedence (mirrors invoice send-time behaviour)."
      },
      "InvoicePeriodisationsPut": {
        "required": [
          "Rows"
        ],
        "type": "object",
        "properties": {
          "Rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoicePeriodisationRowPut"
            },
            "description": "Per-invoice-item desired periodisation state."
          }
        },
        "additionalProperties": false,
        "description": "Request body for PUT /api/invoice/{id}/periodisations.\r\nEach row addresses one invoice item; rows for items not in this list are not touched."
      },
      "InvoicePersonsSuggestionCollection": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Wint.Utils.WebApi.SearchResult"
            },
            "description": "List of all suggestions",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InvoicePost": {
        "required": [
          "Currency",
          "CustomerId",
          "DueDate",
          "Language",
          "Rows"
        ],
        "type": "object",
        "properties": {
          "Attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceAttachment"
            },
            "description": "List of invoice attachments",
            "nullable": true
          },
          "ForwardedCostIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Forwardable costs (see /api/costforwarding/forwardable) to reserve on this invoice. The\r\nrows for them are sent in Rows like any other row. Ids already reserved on this invoice\r\nare accepted, so a draft may resend them.",
            "nullable": true
          },
          "CostMarkupPercentage": {
            "type": "number",
            "description": "The markup the client applied to the forwarded rows, recorded for reference. Optional.",
            "format": "double",
            "nullable": true
          },
          "AttachForwardedCostDocuments": {
            "type": "boolean",
            "description": "Attach the forwarded costs' source documents (receipt images, supplier invoice images)\r\nto this invoice."
          },
          "UseStrictValidation": {
            "type": "boolean",
            "description": "Set this if invoices should be validated in strict mode. If set all rules required\r\nto be able to send the invoice will be validated. If not set it will be possible to\r\nsave the invoice in a \"draft\" mode which could require additional updates before it\r\ncan be sent."
          },
          "InvoiceMailInfo": {
            "$ref": "#/components/schemas/InvoiceSendProperties"
          },
          "OwnerId": {
            "type": "integer",
            "description": "The invoice owner (defaults to request principal)",
            "format": "int32",
            "nullable": true
          },
          "CustomerId": {
            "type": "integer",
            "description": "The customer to send the invoice to",
            "format": "int32"
          },
          "CustomerReference": {
            "$ref": "#/components/schemas/InvoiceReference"
          },
          "ContactPerson": {
            "type": "string",
            "description": "Seller reference",
            "nullable": true
          },
          "Notes": {
            "type": "string",
            "description": "Notes to the invoice",
            "nullable": true
          },
          "Dimensions": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "The dimensions for the invoice",
            "nullable": true
          },
          "DeliveryDate": {
            "type": "string",
            "description": "The delivery date",
            "format": "date-time"
          },
          "PostingDate": {
            "type": "string",
            "description": "The posting date",
            "format": "date-time"
          },
          "DueDate": {
            "type": "string",
            "description": "When the due date for the invoice is",
            "format": "date-time"
          },
          "ShowReferencePersonInAddress": {
            "type": "boolean",
            "description": "Whether the invoice should have the reference name in the address"
          },
          "ShowShippingAddress": {
            "type": "boolean",
            "description": "Wheter the invoice should contain the customers' delivery address"
          },
          "ShowCurrencyCode": {
            "type": "boolean",
            "description": "Wheter the invoice should show the currency or not. E.g. SEK in the summation row"
          },
          "Language": {
            "minLength": 1,
            "type": "string",
            "description": "The language of the invoice. Either SV or EN"
          },
          "Currency": {
            "minLength": 1,
            "type": "string",
            "description": "The currency of the invoice E.g. SEK"
          },
          "CreditedInvoiceId": {
            "type": "integer",
            "description": "The invoice this credit invoice is referring to. Mandatory if the Credit flag i set to true",
            "format": "int32",
            "nullable": true
          },
          "ReminderCost": {
            "type": "number",
            "description": "The reminder cost of the invoice",
            "format": "double",
            "nullable": true
          },
          "PenaltyInterest": {
            "$ref": "#/components/schemas/PenaltyInterestSettings"
          },
          "ReminderNotes": {
            "type": "string",
            "description": "Notes for the reminder",
            "nullable": true
          },
          "PaymentOptionId": {
            "type": "integer",
            "description": "ID of the PaymentOption to use. Default payment option will be used if not specified",
            "format": "int32",
            "nullable": true
          },
          "Rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceRow"
            },
            "description": "The rows for the invoice"
          },
          "ExternalInvoiceReferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalInvoiceReference"
            },
            "description": "List of references to the invoice if it exist in an external system",
            "nullable": true
          },
          "Template": {
            "$ref": "#/components/schemas/InvoicePdfTemplate"
          },
          "InvoiceHouseWorkType": {
            "$ref": "#/components/schemas/InvoiceHouseWorkType"
          },
          "InvoiceRotPercentageType": {
            "$ref": "#/components/schemas/InvoiceRotPercentageType"
          },
          "CustomerPersonNumber": {
            "type": "string",
            "description": "Personnumber of the invoice customer",
            "nullable": true
          },
          "HouseWorkOtherCosts": {
            "type": "number",
            "description": "Other cost related to RUT/ROT",
            "format": "double",
            "nullable": true
          },
          "InvoiceRotPropertyType": {
            "$ref": "#/components/schemas/InvoiceRotPropertyType"
          },
          "PropertyDesignation": {
            "type": "string",
            "description": "Property for ROT",
            "nullable": true
          },
          "TenantsOwnerAssociationOrgNumber": {
            "type": "string",
            "description": "Tenant-owners' association's organization number",
            "nullable": true
          },
          "ApartmentNumber": {
            "type": "string",
            "description": "Apartment number of the customer",
            "nullable": true
          },
          "QuotationSerialNumber": {
            "type": "integer",
            "description": "Serial number of the quotation",
            "format": "int32",
            "nullable": true
          },
          "IsAutomaticRemindersEnabled": {
            "type": "boolean",
            "description": "True if automatic reminders are enabled for the invoice",
            "nullable": true
          },
          "AutomaticReminderPeriod": {
            "type": "integer",
            "description": "Number of days after due date of invoice or previous reminder when automatic reminders are sent",
            "format": "int32",
            "nullable": true
          },
          "AutomaticReminderDelay": {
            "type": "integer",
            "description": "Number of days after invoice has been overdue that any automatic reminder is sent",
            "format": "int32",
            "nullable": true
          },
          "AutomaticReminderAmountLimit": {
            "type": "number",
            "description": "Minimum payment amount left needed to send automatic reminders",
            "format": "double",
            "nullable": true
          },
          "AutomaticReminderCountLimit": {
            "type": "integer",
            "description": "The maximum number of reminders which will be automatically sent",
            "format": "int32",
            "nullable": true
          },
          "AutomaticReminderFeeDeprecationLimit": {
            "type": "number",
            "description": "Any unpaid reminder fees will be automatically deprecated if under this limit",
            "format": "double",
            "nullable": true
          },
          "AutomaticReminderNotes": {
            "type": "string",
            "description": "Message to show on invoice on automatic reminders",
            "nullable": true
          },
          "AutomaticReminderSendMethod": {
            "$ref": "#/components/schemas/InvoiceSendMethod"
          },
          "AutomaticReminderMailFromType": {
            "$ref": "#/components/schemas/SendInvoiceMailsFromEnum"
          },
          "AutomaticReminderMailToType": {
            "$ref": "#/components/schemas/SendInvoiceMailsToEnum"
          },
          "AutomaticReminderMailToAddresses": {
            "type": "string",
            "description": "The mail address to use if <cref>ReminderMailToType</cref> is set",
            "nullable": true
          },
          "AutomaticReminderMailSubject": {
            "type": "string",
            "description": "Mail subject to use for reminder mails",
            "nullable": true
          },
          "AutomaticReminderMailMessage": {
            "type": "string",
            "description": "Mail message to use for reminder mails",
            "nullable": true
          },
          "InvoiceSource": {
            "$ref": "#/components/schemas/InvoiceSource"
          },
          "OriginOcrNumber": {
            "type": "integer",
            "description": "This is used for matching payments on invoices that has been created from self invoices.",
            "format": "int64",
            "nullable": true
          },
          "SelfInvoiceId": {
            "type": "string",
            "description": "If the invoice is generated using a self invoice this is the id of the related self invoice",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InvoicePreviewRequest": {
        "required": [
          "Currency",
          "CustomerId",
          "DueDate",
          "Language",
          "Rows"
        ],
        "type": "object",
        "properties": {
          "SerialNumber": {
            "type": "integer",
            "description": "Serial number on invoice",
            "format": "int32",
            "nullable": true
          },
          "OCR": {
            "type": "integer",
            "description": "OCR number on invoice",
            "format": "int64",
            "nullable": true
          },
          "OCRText": {
            "type": "string",
            "description": "OCR number on invoice as text",
            "nullable": true
          },
          "RecurringInvoiceId": {
            "type": "integer",
            "description": "Related recurring invoice id, if any",
            "format": "int32",
            "nullable": true
          },
          "RecurringInvoiceVersion": {
            "$ref": "#/components/schemas/RecurringInvoiceVersion"
          },
          "Attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceAttachment"
            },
            "description": "List of invoice attachments",
            "nullable": true
          },
          "ForwardedCostIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Forwardable costs (see /api/costforwarding/forwardable) to reserve on this invoice. The\r\nrows for them are sent in Rows like any other row. Ids already reserved on this invoice\r\nare accepted, so a draft may resend them.",
            "nullable": true
          },
          "CostMarkupPercentage": {
            "type": "number",
            "description": "The markup the client applied to the forwarded rows, recorded for reference. Optional.",
            "format": "double",
            "nullable": true
          },
          "AttachForwardedCostDocuments": {
            "type": "boolean",
            "description": "Attach the forwarded costs' source documents (receipt images, supplier invoice images)\r\nto this invoice."
          },
          "UseStrictValidation": {
            "type": "boolean",
            "description": "Set this if invoices should be validated in strict mode. If set all rules required\r\nto be able to send the invoice will be validated. If not set it will be possible to\r\nsave the invoice in a \"draft\" mode which could require additional updates before it\r\ncan be sent."
          },
          "InvoiceMailInfo": {
            "$ref": "#/components/schemas/InvoiceSendProperties"
          },
          "OwnerId": {
            "type": "integer",
            "description": "The invoice owner (defaults to request principal)",
            "format": "int32",
            "nullable": true
          },
          "CustomerId": {
            "type": "integer",
            "description": "The customer to send the invoice to",
            "format": "int32"
          },
          "CustomerReference": {
            "$ref": "#/components/schemas/InvoiceReference"
          },
          "ContactPerson": {
            "type": "string",
            "description": "Seller reference",
            "nullable": true
          },
          "Notes": {
            "type": "string",
            "description": "Notes to the invoice",
            "nullable": true
          },
          "Dimensions": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "The dimensions for the invoice",
            "nullable": true
          },
          "DeliveryDate": {
            "type": "string",
            "description": "The delivery date",
            "format": "date-time"
          },
          "PostingDate": {
            "type": "string",
            "description": "The posting date",
            "format": "date-time"
          },
          "DueDate": {
            "type": "string",
            "description": "When the due date for the invoice is",
            "format": "date-time"
          },
          "ShowReferencePersonInAddress": {
            "type": "boolean",
            "description": "Whether the invoice should have the reference name in the address"
          },
          "ShowShippingAddress": {
            "type": "boolean",
            "description": "Wheter the invoice should contain the customers' delivery address"
          },
          "ShowCurrencyCode": {
            "type": "boolean",
            "description": "Wheter the invoice should show the currency or not. E.g. SEK in the summation row"
          },
          "Language": {
            "minLength": 1,
            "type": "string",
            "description": "The language of the invoice. Either SV or EN"
          },
          "Currency": {
            "minLength": 1,
            "type": "string",
            "description": "The currency of the invoice E.g. SEK"
          },
          "CreditedInvoiceId": {
            "type": "integer",
            "description": "The invoice this credit invoice is referring to. Mandatory if the Credit flag i set to true",
            "format": "int32",
            "nullable": true
          },
          "ReminderCost": {
            "type": "number",
            "description": "The reminder cost of the invoice",
            "format": "double",
            "nullable": true
          },
          "PenaltyInterest": {
            "$ref": "#/components/schemas/PenaltyInterestSettings"
          },
          "ReminderNotes": {
            "type": "string",
            "description": "Notes for the reminder",
            "nullable": true
          },
          "PaymentOptionId": {
            "type": "integer",
            "description": "ID of the PaymentOption to use. Default payment option will be used if not specified",
            "format": "int32",
            "nullable": true
          },
          "Rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceRow"
            },
            "description": "The rows for the invoice"
          },
          "ExternalInvoiceReferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalInvoiceReference"
            },
            "description": "List of references to the invoice if it exist in an external system",
            "nullable": true
          },
          "Template": {
            "$ref": "#/components/schemas/InvoicePdfTemplate"
          },
          "InvoiceHouseWorkType": {
            "$ref": "#/components/schemas/InvoiceHouseWorkType"
          },
          "InvoiceRotPercentageType": {
            "$ref": "#/components/schemas/InvoiceRotPercentageType"
          },
          "CustomerPersonNumber": {
            "type": "string",
            "description": "Personnumber of the invoice customer",
            "nullable": true
          },
          "HouseWorkOtherCosts": {
            "type": "number",
            "description": "Other cost related to RUT/ROT",
            "format": "double",
            "nullable": true
          },
          "InvoiceRotPropertyType": {
            "$ref": "#/components/schemas/InvoiceRotPropertyType"
          },
          "PropertyDesignation": {
            "type": "string",
            "description": "Property for ROT",
            "nullable": true
          },
          "TenantsOwnerAssociationOrgNumber": {
            "type": "string",
            "description": "Tenant-owners' association's organization number",
            "nullable": true
          },
          "ApartmentNumber": {
            "type": "string",
            "description": "Apartment number of the customer",
            "nullable": true
          },
          "QuotationSerialNumber": {
            "type": "integer",
            "description": "Serial number of the quotation",
            "format": "int32",
            "nullable": true
          },
          "IsAutomaticRemindersEnabled": {
            "type": "boolean",
            "description": "True if automatic reminders are enabled for the invoice",
            "nullable": true
          },
          "AutomaticReminderPeriod": {
            "type": "integer",
            "description": "Number of days after due date of invoice or previous reminder when automatic reminders are sent",
            "format": "int32",
            "nullable": true
          },
          "AutomaticReminderDelay": {
            "type": "integer",
            "description": "Number of days after invoice has been overdue that any automatic reminder is sent",
            "format": "int32",
            "nullable": true
          },
          "AutomaticReminderAmountLimit": {
            "type": "number",
            "description": "Minimum payment amount left needed to send automatic reminders",
            "format": "double",
            "nullable": true
          },
          "AutomaticReminderCountLimit": {
            "type": "integer",
            "description": "The maximum number of reminders which will be automatically sent",
            "format": "int32",
            "nullable": true
          },
          "AutomaticReminderFeeDeprecationLimit": {
            "type": "number",
            "description": "Any unpaid reminder fees will be automatically deprecated if under this limit",
            "format": "double",
            "nullable": true
          },
          "AutomaticReminderNotes": {
            "type": "string",
            "description": "Message to show on invoice on automatic reminders",
            "nullable": true
          },
          "AutomaticReminderSendMethod": {
            "$ref": "#/components/schemas/InvoiceSendMethod"
          },
          "AutomaticReminderMailFromType": {
            "$ref": "#/components/schemas/SendInvoiceMailsFromEnum"
          },
          "AutomaticReminderMailToType": {
            "$ref": "#/components/schemas/SendInvoiceMailsToEnum"
          },
          "AutomaticReminderMailToAddresses": {
            "type": "string",
            "description": "The mail address to use if <cref>ReminderMailToType</cref> is set",
            "nullable": true
          },
          "AutomaticReminderMailSubject": {
            "type": "string",
            "description": "Mail subject to use for reminder mails",
            "nullable": true
          },
          "AutomaticReminderMailMessage": {
            "type": "string",
            "description": "Mail message to use for reminder mails",
            "nullable": true
          },
          "InvoiceSource": {
            "$ref": "#/components/schemas/InvoiceSource"
          },
          "OriginOcrNumber": {
            "type": "integer",
            "description": "This is used for matching payments on invoices that has been created from self invoices.",
            "format": "int64",
            "nullable": true
          },
          "SelfInvoiceId": {
            "type": "string",
            "description": "If the invoice is generated using a self invoice this is the id of the related self invoice",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InvoicePut": {
        "required": [
          "Currency",
          "CustomerId",
          "DueDate",
          "Language",
          "Rows"
        ],
        "type": "object",
        "properties": {
          "Attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceAttachment"
            },
            "description": "List of invoice attachments",
            "nullable": true
          },
          "ForwardedCostIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Forwardable costs (see /api/costforwarding/forwardable) to reserve on this invoice. The\r\nrows for them are sent in Rows like any other row. Ids already reserved on this invoice\r\nare accepted, so a draft may resend them.",
            "nullable": true
          },
          "CostMarkupPercentage": {
            "type": "number",
            "description": "The markup the client applied to the forwarded rows, recorded for reference. Optional.",
            "format": "double",
            "nullable": true
          },
          "AttachForwardedCostDocuments": {
            "type": "boolean",
            "description": "Attach the forwarded costs' source documents (receipt images, supplier invoice images)\r\nto this invoice."
          },
          "UseStrictValidation": {
            "type": "boolean",
            "description": "Set this if invoices should be validated in strict mode. If set all rules required\r\nto be able to send the invoice will be validated. If not set it will be possible to\r\nsave the invoice in a \"draft\" mode which could require additional updates before it\r\ncan be sent."
          },
          "InvoiceMailInfo": {
            "$ref": "#/components/schemas/InvoiceSendProperties"
          },
          "OwnerId": {
            "type": "integer",
            "description": "The invoice owner (defaults to request principal)",
            "format": "int32",
            "nullable": true
          },
          "CustomerId": {
            "type": "integer",
            "description": "The customer to send the invoice to",
            "format": "int32"
          },
          "CustomerReference": {
            "$ref": "#/components/schemas/InvoiceReference"
          },
          "ContactPerson": {
            "type": "string",
            "description": "Seller reference",
            "nullable": true
          },
          "Notes": {
            "type": "string",
            "description": "Notes to the invoice",
            "nullable": true
          },
          "Dimensions": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "The dimensions for the invoice",
            "nullable": true
          },
          "DeliveryDate": {
            "type": "string",
            "description": "The delivery date",
            "format": "date-time"
          },
          "PostingDate": {
            "type": "string",
            "description": "The posting date",
            "format": "date-time"
          },
          "DueDate": {
            "type": "string",
            "description": "When the due date for the invoice is",
            "format": "date-time"
          },
          "ShowReferencePersonInAddress": {
            "type": "boolean",
            "description": "Whether the invoice should have the reference name in the address"
          },
          "ShowShippingAddress": {
            "type": "boolean",
            "description": "Wheter the invoice should contain the customers' delivery address"
          },
          "ShowCurrencyCode": {
            "type": "boolean",
            "description": "Wheter the invoice should show the currency or not. E.g. SEK in the summation row"
          },
          "Language": {
            "minLength": 1,
            "type": "string",
            "description": "The language of the invoice. Either SV or EN"
          },
          "Currency": {
            "minLength": 1,
            "type": "string",
            "description": "The currency of the invoice E.g. SEK"
          },
          "CreditedInvoiceId": {
            "type": "integer",
            "description": "The invoice this credit invoice is referring to. Mandatory if the Credit flag i set to true",
            "format": "int32",
            "nullable": true
          },
          "ReminderCost": {
            "type": "number",
            "description": "The reminder cost of the invoice",
            "format": "double",
            "nullable": true
          },
          "PenaltyInterest": {
            "$ref": "#/components/schemas/PenaltyInterestSettings"
          },
          "ReminderNotes": {
            "type": "string",
            "description": "Notes for the reminder",
            "nullable": true
          },
          "PaymentOptionId": {
            "type": "integer",
            "description": "ID of the PaymentOption to use. Default payment option will be used if not specified",
            "format": "int32",
            "nullable": true
          },
          "Rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceRow"
            },
            "description": "The rows for the invoice"
          },
          "ExternalInvoiceReferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalInvoiceReference"
            },
            "description": "List of references to the invoice if it exist in an external system",
            "nullable": true
          },
          "Template": {
            "$ref": "#/components/schemas/InvoicePdfTemplate"
          },
          "InvoiceHouseWorkType": {
            "$ref": "#/components/schemas/InvoiceHouseWorkType"
          },
          "InvoiceRotPercentageType": {
            "$ref": "#/components/schemas/InvoiceRotPercentageType"
          },
          "CustomerPersonNumber": {
            "type": "string",
            "description": "Personnumber of the invoice customer",
            "nullable": true
          },
          "HouseWorkOtherCosts": {
            "type": "number",
            "description": "Other cost related to RUT/ROT",
            "format": "double",
            "nullable": true
          },
          "InvoiceRotPropertyType": {
            "$ref": "#/components/schemas/InvoiceRotPropertyType"
          },
          "PropertyDesignation": {
            "type": "string",
            "description": "Property for ROT",
            "nullable": true
          },
          "TenantsOwnerAssociationOrgNumber": {
            "type": "string",
            "description": "Tenant-owners' association's organization number",
            "nullable": true
          },
          "ApartmentNumber": {
            "type": "string",
            "description": "Apartment number of the customer",
            "nullable": true
          },
          "QuotationSerialNumber": {
            "type": "integer",
            "description": "Serial number of the quotation",
            "format": "int32",
            "nullable": true
          },
          "IsAutomaticRemindersEnabled": {
            "type": "boolean",
            "description": "True if automatic reminders are enabled for the invoice",
            "nullable": true
          },
          "AutomaticReminderPeriod": {
            "type": "integer",
            "description": "Number of days after due date of invoice or previous reminder when automatic reminders are sent",
            "format": "int32",
            "nullable": true
          },
          "AutomaticReminderDelay": {
            "type": "integer",
            "description": "Number of days after invoice has been overdue that any automatic reminder is sent",
            "format": "int32",
            "nullable": true
          },
          "AutomaticReminderAmountLimit": {
            "type": "number",
            "description": "Minimum payment amount left needed to send automatic reminders",
            "format": "double",
            "nullable": true
          },
          "AutomaticReminderCountLimit": {
            "type": "integer",
            "description": "The maximum number of reminders which will be automatically sent",
            "format": "int32",
            "nullable": true
          },
          "AutomaticReminderFeeDeprecationLimit": {
            "type": "number",
            "description": "Any unpaid reminder fees will be automatically deprecated if under this limit",
            "format": "double",
            "nullable": true
          },
          "AutomaticReminderNotes": {
            "type": "string",
            "description": "Message to show on invoice on automatic reminders",
            "nullable": true
          },
          "AutomaticReminderSendMethod": {
            "$ref": "#/components/schemas/InvoiceSendMethod"
          },
          "AutomaticReminderMailFromType": {
            "$ref": "#/components/schemas/SendInvoiceMailsFromEnum"
          },
          "AutomaticReminderMailToType": {
            "$ref": "#/components/schemas/SendInvoiceMailsToEnum"
          },
          "AutomaticReminderMailToAddresses": {
            "type": "string",
            "description": "The mail address to use if <cref>ReminderMailToType</cref> is set",
            "nullable": true
          },
          "AutomaticReminderMailSubject": {
            "type": "string",
            "description": "Mail subject to use for reminder mails",
            "nullable": true
          },
          "AutomaticReminderMailMessage": {
            "type": "string",
            "description": "Mail message to use for reminder mails",
            "nullable": true
          },
          "InvoiceSource": {
            "$ref": "#/components/schemas/InvoiceSource"
          },
          "OriginOcrNumber": {
            "type": "integer",
            "description": "This is used for matching payments on invoices that has been created from self invoices.",
            "format": "int64",
            "nullable": true
          },
          "SelfInvoiceId": {
            "type": "string",
            "description": "If the invoice is generated using a self invoice this is the id of the related self invoice",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InvoiceReference": {
        "type": "object",
        "properties": {
          "ReferenceId": {
            "type": "integer",
            "description": "The id to a reference person which is set when creating a customer.\r\nMandatory if reference name is not set, otherwise optional",
            "format": "int32",
            "nullable": true
          },
          "ReferenceName": {
            "type": "string",
            "description": "A name for the reference. Mandatory if Reference id is not set. Otherwise\r\noptional. Will create a reference person",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InvoiceReminderSettings": {
        "type": "object",
        "properties": {
          "EnableReminderSettings": {
            "type": "boolean",
            "description": "True if the reminder settings are enabled from customer settings."
          },
          "ReminderCost": {
            "type": "number",
            "description": "Reminder cost.",
            "format": "double",
            "nullable": true
          },
          "IsAutomaticRemindersEnabled": {
            "type": "boolean",
            "description": "True if automatic reminders are enabled.",
            "nullable": true
          },
          "AutomaticReminderAmountLimit": {
            "type": "number",
            "description": "Automatic reminder amount limit.",
            "format": "double",
            "nullable": true
          },
          "AutomaticReminderDelay": {
            "type": "integer",
            "description": "Automatic reminder delay.",
            "format": "int32",
            "nullable": true
          },
          "AutomaticReminderPeriod": {
            "type": "integer",
            "description": "Automatic reminder period.",
            "format": "int32",
            "nullable": true
          },
          "AutomaticReminderCountLimit": {
            "type": "integer",
            "description": "Automatic reminder count limit.",
            "format": "int32",
            "nullable": true
          },
          "InvoiceReminderNotesTemplate": {
            "type": "string",
            "description": "Invoice reminder invoice message template.",
            "nullable": true
          },
          "InvoiceReminderSendOption": {
            "$ref": "#/components/schemas/InvoiceSendMethod"
          },
          "InvoiceReminderTitleTemplate": {
            "type": "string",
            "description": "Invoice reminder title template. This is the default subject of the invoice reminder mail.",
            "nullable": true
          },
          "InvoiceReminderMessageTemplate": {
            "type": "string",
            "description": "Invoice reminder message template. This is the default message of the invoice reminder mail.",
            "nullable": true
          },
          "InvoiceReminderFilenameTemplate": {
            "type": "string",
            "description": "Invoice reminder filename template. This is the default filename of the attached invoice of the invoice reminder mail.",
            "nullable": true
          },
          "InvoiceReminderMailToType": {
            "$ref": "#/components/schemas/SendInvoiceMailsToEnum"
          },
          "CustomInvoiceReminderMailTo": {
            "type": "string",
            "description": "Default invoice reminder mail to. This is the default mail to of the invoice reminder mail.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the default invoice reminder settings."
      },
      "InvoiceRotPercentageType": {
        "enum": [
          "Standard",
          "Temporary2025Increase"
        ],
        "type": "string",
        "description": "Property type for rot invoice percentage<br />0 - Standard, 1 - Temporary2025Increase"
      },
      "InvoiceRotPropertyType": {
        "enum": [
          "None",
          "House",
          "Condominium"
        ],
        "type": "string",
        "description": "Property type for Rot invoices<br />0 - None, 1 - House, 2 - Condominium"
      },
      "InvoiceRow": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of the invoice row",
            "format": "int32"
          },
          "ArticleId": {
            "type": "integer",
            "description": "The id of the article this invoice row is referring to",
            "format": "int32"
          },
          "Quantity": {
            "type": "number",
            "description": "The quantity for this row",
            "format": "double"
          },
          "Description": {
            "type": "string",
            "description": "The description of the row. If article is set, the description will be the article's text",
            "nullable": true
          },
          "OverriddenDescription": {
            "type": "string",
            "description": "Set this if you want to select an article but modify the article's text",
            "nullable": true
          },
          "Unit": {
            "$ref": "#/components/schemas/Unit"
          },
          "UnitPrice": {
            "type": "number",
            "description": "The unit price. If article is set, this property will be ignored",
            "format": "double",
            "nullable": true
          },
          "OverriddenUnitPrice": {
            "type": "number",
            "description": "Set this if you want to select an article but modify the price",
            "format": "double",
            "nullable": true
          },
          "OrderIndex": {
            "type": "integer",
            "description": "Zero-based index",
            "format": "int32"
          },
          "Rot": {
            "type": "boolean",
            "description": "If invoice row is ROT. Invoice cannot both contain ROT and RUT invoice rows"
          },
          "Rut": {
            "type": "boolean",
            "description": "If invoice row is RUT. Invoice cannot both contain ROT and RUT invoice rows"
          },
          "Vat": {
            "type": "number",
            "description": "The VAT percentage. If article is set, this property will be ignored",
            "format": "double"
          },
          "OverriddenVat": {
            "type": "number",
            "description": "Set this if you want to select an article but modify the VAT percentage",
            "format": "double",
            "nullable": true
          },
          "EuVatProductType": {
            "$ref": "#/components/schemas/EuVatProductType"
          },
          "Periodisation": {
            "type": "boolean",
            "description": "`true` if the invoice row should be booked with a periodisation. If so Wint.Superkoll.API.Model.InvoiceRow.PeriodisationStartYear and Wint.Superkoll.API.Model.InvoiceRow.PeriodisationStartMonth, Wint.Superkoll.API.Model.InvoiceRow.PeriodisationEndYear and Wint.Superkoll.API.Model.InvoiceRow.PeriodisationEndMonth must all be set"
          },
          "PeriodisationStartYear": {
            "type": "integer",
            "description": "This value should hold the start year of the periodisation if Wint.Superkoll.API.Model.InvoiceRow.Periodisation is `true`.",
            "format": "int32",
            "nullable": true
          },
          "PeriodisationStartMonth": {
            "type": "integer",
            "description": "This value should hold the start month of the periodisation if Wint.Superkoll.API.Model.InvoiceRow.Periodisation is `true`.\r\nThe month should be represented as a number where Jan = 1, Feb = 2 and so forth",
            "format": "int32",
            "nullable": true
          },
          "PeriodisationEndYear": {
            "type": "integer",
            "description": "This value should hold the end year of the periodisation if Wint.Superkoll.API.Model.InvoiceRow.Periodisation is `true`.",
            "format": "int32",
            "nullable": true
          },
          "PeriodisationEndMonth": {
            "type": "integer",
            "description": "This value should hold the end month of the periodisation if Wint.Superkoll.API.Model.InvoiceRow.Periodisation is `true`.\r\nThe month should be represented as a number where Jan = 1, Feb = 2 and so forth",
            "format": "int32",
            "nullable": true
          },
          "PeriodisationStartDate": {
            "type": "string",
            "description": "Optional exact start date for date-based (day-weighted) periodisation. When both\r\nWint.Superkoll.API.Model.InvoiceRow.PeriodisationStartDate and Wint.Superkoll.API.Model.InvoiceRow.PeriodisationEndDate are set,\r\nthe periodisation is split across months proportionally to the number of days in each\r\nmonth that fall within the range. Year/month fields are derived from these dates.",
            "format": "date-time",
            "nullable": true
          },
          "PeriodisationEndDate": {
            "type": "string",
            "description": "Optional exact end date for date-based periodisation. See Wint.Superkoll.API.Model.InvoiceRow.PeriodisationStartDate.",
            "format": "date-time",
            "nullable": true
          },
          "Dimensions": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "The dimensions for the row",
            "nullable": true
          },
          "HouseWorkHours": {
            "type": "number",
            "description": "Housework hours for article",
            "format": "double",
            "nullable": true
          },
          "MaterialCost": {
            "type": "number",
            "description": "Material cost for article",
            "format": "double",
            "nullable": true
          },
          "HouseWorkTypeId": {
            "type": "integer",
            "description": "Id of housework type",
            "format": "int32",
            "nullable": true
          },
          "HouseWorkTypeName": {
            "type": "string",
            "description": "Name of housework type",
            "nullable": true
          },
          "Account": {
            "type": "integer",
            "description": "The row's locked revenue account, if any. Unlike an article's own revenue account setting\r\n(which the client chooses directly), this value is never client-chosen: it is set\r\nautomatically when the invoice is sent (stamped from the article's revenue account at that\r\nmoment) or, for a credit note, carried forward from the credited invoice's original row so\r\na later change to the article's account can't retroactively rewrite a historical credit.\r\nSubmitting a value here has no effect — nothing server-side reads this property back from\r\nthe request; treat it as read-only and simply display/preserve whatever value a GET\r\nresponse returned. Null until the row has actually been sent or credited.",
            "format": "int32",
            "nullable": true
          },
          "ArticleAccount": {
            "type": "integer",
            "description": "The revenue account currently configured on the row's article, or null when the article has\r\nnone (or the row has no article). Unlike Wint.Superkoll.API.Model.InvoiceRow.Account, which is the value stamped on\r\nthis row when it was sent, this reflects the article's configuration at the time of the GET\r\nand may differ from Wint.Superkoll.API.Model.InvoiceRow.Account on historical invoices. Exposed so a client can\r\nmirror the send-time VAT rule (GlobalInvoiceSystemStatic.ValidateItemRevenueAccountVat) when\r\nan existing invoice is opened for editing, without a per-row article lookup. Read-only:\r\nsubmitting a value has no effect.",
            "format": "int32",
            "nullable": true
          },
          "ArticleVat": {
            "type": "number",
            "description": "The VAT rate currently configured on the row's article, or null when the row has no article.\r\nThis is the rate Wint.Superkoll.API.Model.InvoiceRow.Vat must match for a domestic, non-credit row whose article\r\nhas a revenue account. Read-only: submitting a value has no effect.",
            "format": "double",
            "nullable": true
          },
          "ArticleIsAgentSale": {
            "type": "boolean",
            "description": "True when the row's article is a system-created agent-sale article. Such rows are exempt\r\nfrom the revenue-account VAT rule server-side, so a client mirroring that rule must skip them.\r\nNull when the row has no article. Nullable rather than a plain bool so the generated client\r\ntypes don't make a read-only member required on the request side. Read-only: submitting a\r\nvalue has no effect.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InvoiceSendMethod": {
        "enum": [
          "Email",
          "Print",
          "MarkAsSent"
        ],
        "type": "string",
        "description": "The method of sending an invoice.<br />0 - Email, 1 - Print, 2 - MarkAsSent"
      },
      "InvoiceSendProperties": {
        "required": [
          "InvoiceSendMethod"
        ],
        "type": "object",
        "properties": {
          "InvoiceSendMethod": {
            "$ref": "#/components/schemas/InvoiceSendMethod"
          },
          "MailOptions": {
            "$ref": "#/components/schemas/InvoiceMailOptions"
          }
        },
        "additionalProperties": false,
        "description": "Specifies invoice send information"
      },
      "InvoiceSendType": {
        "enum": [
          "SendForPrintOrEInvoice",
          "SendByEmail"
        ],
        "type": "string",
        "description": "<br />0 - SendForPrintOrEInvoice, 1 - SendByEmail"
      },
      "InvoiceSimilarItem": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of the invoice",
            "format": "int32"
          },
          "Date": {
            "type": "string",
            "description": "Invoice date",
            "format": "date-time",
            "nullable": true
          },
          "Receiver": {
            "type": "string",
            "description": "The receiver's name of the invoice",
            "nullable": true
          },
          "Amount": {
            "type": "number",
            "description": "The total amount of the invoice",
            "format": "double",
            "nullable": true
          },
          "Status": {
            "$ref": "#/components/schemas/InvoiceStatus"
          },
          "Currency": {
            "type": "string",
            "description": "Currency of the invoice",
            "nullable": true
          },
          "Dimensions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Dimensions of the invoice",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InvoiceSource": {
        "enum": [
          "Unknown",
          "SelfInvoice"
        ],
        "type": "string",
        "description": "<br />0 - Unknown, 1 - SelfInvoice"
      },
      "InvoiceStatus": {
        "enum": [
          "NotSent",
          "Unpaid",
          "OverdueReminderSent",
          "OverdueReminderNotSent",
          "Paid",
          "Cancelled",
          "Collection",
          "ReminderFeeNotFullyPaid",
          "Expires"
        ],
        "type": "string",
        "description": "Invoice status declares the current status of invoice<br />0 - NotSent, 1 - Unpaid, 2 - OverdueReminderSent, 3 - OverdueReminderNotSent, 4 - Paid, 5 - Cancelled, 6 - Collection, 7 - ReminderFeeNotFullyPaid, 100 - Expires"
      },
      "InvoiceVersionInfo": {
        "type": "object",
        "properties": {
          "Version": {
            "type": "integer",
            "format": "int32"
          },
          "CreatedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "DueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Amount": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "LocalizedEnum": {
        "required": [
          "NameEn",
          "NameSv"
        ],
        "type": "object",
        "properties": {
          "NameEn": {
            "type": "string",
            "description": "English name (from LocalizedDisplay attribute)",
            "nullable": true
          },
          "NameSv": {
            "type": "string",
            "description": "Swedish name (from LocalizedDisplay attribute)",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents an enum value with localized names for multiple languages"
      },
      "LoginState": {
        "enum": [
          "Success",
          "WrongUsernameOrPassword",
          "AccountLocked",
          "NoCompanies",
          "Timeout",
          "UnknownBankIdError",
          "IncorrectPersonalNumber",
          "ForceLoginWithBankId"
        ],
        "type": "string",
        "description": "<br />0 - Success, 1 - WrongUsernameOrPassword, 2 - AccountLocked, 3 - NoCompanies, 4 - Timeout, 5 - UnknownBankIdError, 6 - IncorrectPersonalNumber, 7 - ForceLoginWithBankId"
      },
      "Microsoft.AspNetCore.Mvc.ProblemDetails": {
        "type": "object",
        "properties": {
          "Type": {
            "type": "string",
            "nullable": true
          },
          "Title": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Detail": {
            "type": "string",
            "nullable": true
          },
          "Instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "MissingDocumentAttachment": {
        "type": "object",
        "properties": {
          "Data": {
            "type": "string",
            "description": "The attachment's data.",
            "format": "byte",
            "nullable": true
          },
          "UploadedFileId": {
            "type": "string",
            "description": "The uploaded file to attach.",
            "format": "uuid",
            "nullable": true
          },
          "Id": {
            "type": "integer",
            "description": "The id of the attachment.",
            "format": "int32"
          },
          "ContentType": {
            "type": "string",
            "description": "The content type of the attachment.",
            "nullable": true
          },
          "FileName": {
            "type": "string",
            "description": "The file name of the attachment.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Full attachment which contains meta data and data."
      },
      "MissingDocumentImage": {
        "type": "object",
        "properties": {
          "Data": {
            "type": "string",
            "format": "byte",
            "nullable": true
          },
          "ContentType": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MissingDocumentPut": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Explanation": {
            "type": "string",
            "description": "The explanation of the missing document.",
            "nullable": true
          },
          "Images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MissingDocumentImage"
            },
            "nullable": true,
            "deprecated": true
          },
          "Attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MissingDocumentAttachment"
            },
            "description": "Attachments that should be added to the missing document.",
            "nullable": true
          },
          "BookWithoutImage": {
            "type": "boolean",
            "description": "Whether the missing document should be booked without an image.\r\nThis is in case the image can't be retrieved at the moment."
          },
          "MissingDocumentType": {
            "$ref": "#/components/schemas/MissingDocumentPutType"
          },
          "IncomingInvoiceInfo": {
            "$ref": "#/components/schemas/IncomingInvoicePutInfo"
          },
          "ReceiptInfo": {
            "$ref": "#/components/schemas/ReceiptPutInfo"
          },
          "DimensionList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DimensionData"
            },
            "description": "Dimensions for the missing document",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MissingDocumentPutType": {
        "enum": [
          "Receipt",
          "IncomingInvoice",
          "Other"
        ],
        "type": "string",
        "description": "<br />1 - Receipt, 2 - IncomingInvoice, 3 - Other"
      },
      "MonthlyReport": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Unique identifier of the report.",
            "format": "uuid"
          },
          "PeriodStart": {
            "type": "string",
            "description": "First day of the reporting period.",
            "format": "date-time"
          },
          "PeriodEnd": {
            "type": "string",
            "description": "Last day of the reporting period.",
            "format": "date-time"
          },
          "Segment": {
            "type": "string",
            "description": "Prompt segment the report was generated with.",
            "nullable": true
          },
          "Status": {
            "$ref": "#/components/schemas/MonthlyReportStatus"
          },
          "CurrentIteration": {
            "type": "integer",
            "description": "Number of the current iteration; bumps on every regeneration or edit.",
            "format": "int32"
          },
          "CurrentMarkdown": {
            "type": "string",
            "description": "Markdown of the current iteration. Empty while Wint.Superkoll.API.Model.MonthlyReportStatus.Generating.",
            "nullable": true
          },
          "CurrentRenderedHtml": {
            "type": "string",
            "description": "Server-rendered HTML of the current iteration, sanitized by the report service. Render as-is.",
            "nullable": true
          },
          "ApprovedAt": {
            "type": "string",
            "description": "When the report was approved for the customer; null until then.",
            "format": "date-time",
            "nullable": true
          },
          "ApprovedByUserId": {
            "type": "integer",
            "description": "Person who approved the report; null until then.",
            "format": "int32",
            "nullable": true
          },
          "UpdatedAt": {
            "type": "string",
            "description": "When the report's content last changed: generated, regenerated or edited. Approval and revocation\r\nleave it alone; Wint.Superkoll.API.Model.MonthlyReport.ApprovedAt covers those. Null on reports written before the service tracked it.",
            "format": "date-time",
            "nullable": true
          },
          "Iterations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MonthlyReportIteration"
            },
            "description": "Every pass so far, oldest first.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A monthly report with its current body and history, for the accountant's review view."
      },
      "MonthlyReportCompanyInstruction": {
        "type": "object",
        "properties": {
          "Text": {
            "type": "string",
            "description": "The instruction, at most 4000 characters. Null when the company has none; saving empty text removes it.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The advisor's standing instruction for the selected company's monthly reports. The report service\r\nsends it to the model on every generation and regeneration."
      },
      "MonthlyReportIteration": {
        "type": "object",
        "properties": {
          "IterationNumber": {
            "type": "integer",
            "description": "1-based sequence number of the pass.",
            "format": "int32"
          },
          "Markdown": {
            "type": "string",
            "description": "The markdown this pass produced.",
            "nullable": true
          },
          "KaFeedback": {
            "type": "string",
            "description": "The reviewer feedback that drove this pass, if any. A manual edit carries a marker instead.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One generation or edit pass of a monthly report, kept as an audit trail."
      },
      "MonthlyReportStatus": {
        "enum": [
          "Generating",
          "Draft",
          "Failed",
          "ApprovedForCustomer",
          "Published",
          "Unknown"
        ],
        "type": "string",
        "description": "Lifecycle state of a monthly report, as the accountant sees it.<br />0 - Generating, 1 - Draft, 2 - Failed, 3 - ApprovedForCustomer, 4 - Published, 5 - Unknown"
      },
      "MonthlyReportSummary": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Unique identifier of the report. Poll `GET api/MonthlyReports/{id}` with it.",
            "format": "uuid"
          },
          "PeriodStart": {
            "type": "string",
            "description": "First day of the reporting period.",
            "format": "date-time"
          },
          "PeriodEnd": {
            "type": "string",
            "description": "Last day of the reporting period.",
            "format": "date-time"
          },
          "Status": {
            "$ref": "#/components/schemas/MonthlyReportStatus"
          },
          "ApprovedAt": {
            "type": "string",
            "description": "When the report was approved for the customer; null until then.",
            "format": "date-time",
            "nullable": true
          },
          "UpdatedAt": {
            "type": "string",
            "description": "When the report's content last changed; approval and revocation leave it alone. Null on reports written before the service tracked it,\r\nso a list shows no date rather than an invented one.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Identity and state of a monthly report without its body: the rows of the list, and what a create\r\nreturns, since the body does not exist yet then."
      },
      "Payment": {
        "type": "object",
        "properties": {
          "Amount": {
            "type": "number",
            "format": "double"
          },
          "BookedAmount": {
            "type": "number",
            "format": "double"
          },
          "Date": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "PaymentAgent": {
        "enum": [
          "LegacyBGC",
          "SEB",
          "Handelsbanken",
          "Nordea",
          "PaymentService",
          "Swedbank",
          "BankService"
        ],
        "type": "string",
        "description": "This is used for feature flagging a payment integration.<br />0 - LegacyBGC, 1 - SEB, 2 - Handelsbanken, 3 - Nordea, 4 - PaymentService, 5 - Swedbank, 6 - BankService"
      },
      "PaymentState": {
        "enum": [
          "Unpaid",
          "Paid"
        ],
        "type": "string",
        "description": "Possible payment states for a receipt<br />0 - Unpaid, 1 - Paid"
      },
      "PenaltyInterestSettings": {
        "type": "object",
        "properties": {
          "Type": {
            "$ref": "#/components/schemas/InvoicePenaltyInterestType"
          },
          "Rate": {
            "type": "number",
            "description": "The reminder penalty interest rate",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Permissions": {
        "type": "object",
        "properties": {
          "CEO": {
            "type": "boolean"
          },
          "Contact": {
            "type": "boolean"
          },
          "Employee": {
            "type": "boolean"
          },
          "Documents": {
            "type": "boolean"
          },
          "UploadGenericDocuments": {
            "type": "boolean"
          },
          "IncomingInvoicesOverview": {
            "type": "boolean"
          },
          "IncomingInvoices": {
            "type": "boolean"
          },
          "InvoicesAdmin": {
            "type": "boolean"
          },
          "Invoices": {
            "type": "boolean"
          },
          "ReceiptsAdmin": {
            "type": "boolean"
          },
          "Receipts": {
            "type": "boolean"
          },
          "Admin": {
            "type": "boolean"
          },
          "Reports": {
            "type": "boolean"
          },
          "IncomingInvoicesAdmin": {
            "type": "boolean"
          },
          "IncomingInvoicesSignee": {
            "type": "boolean"
          },
          "Agreement": {
            "type": "boolean"
          },
          "CashReconciliation": {
            "type": "boolean"
          },
          "PaymentFileSignee": {
            "type": "boolean"
          },
          "MissingDocumentAdmin": {
            "type": "boolean"
          },
          "Auditor": {
            "type": "boolean"
          },
          "Revisor": {
            "type": "boolean"
          },
          "SalaryAdmin": {
            "type": "boolean"
          },
          "PaymentSignee": {
            "type": "boolean"
          },
          "StoppedPaymentAdmin": {
            "type": "boolean"
          },
          "Advisor": {
            "type": "boolean",
            "nullable": true
          },
          "DeviationAdmin": {
            "type": "boolean"
          },
          "Board": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "PersonMonthlySalaryDeviation": {
        "type": "object",
        "properties": {
          "PersonId": {
            "type": "integer",
            "description": "Id of person the record belongs to",
            "format": "int32"
          },
          "PersonName": {
            "type": "string",
            "description": "Name of person the record belongs to",
            "nullable": true
          },
          "YearAndMonth": {
            "type": "integer",
            "description": "Year and month\r\ne.g. YYYYMM",
            "format": "int32"
          },
          "State": {
            "$ref": "#/components/schemas/SalaryDeviationMonthState"
          },
          "Total": {
            "type": "number",
            "description": "Total deviation salary",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Person salary deviation for a month"
      },
      "ProfileImage": {
        "type": "object",
        "properties": {
          "ImageData": {
            "type": "string",
            "format": "byte",
            "nullable": true
          },
          "ContentType": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProfileRoutinePut": {
        "required": [
          "State"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of the profile routine",
            "format": "int32"
          },
          "State": {
            "$ref": "#/components/schemas/ProfileRoutineState"
          }
        },
        "additionalProperties": false
      },
      "ProfileRoutineState": {
        "enum": [
          "Pending",
          "Started",
          "Done"
        ],
        "type": "string",
        "description": "ProfileRoutineState declares the current status of ProfileRoutine<br />0 - Pending, 1 - Started, 2 - Done"
      },
      "QuestionsAndAnswers.AnswerKind": {
        "enum": [
          "Numeric",
          "Boolean",
          "Text",
          "Matrix",
          "Selection",
          "File",
          "StringSelection",
          "SingleLineText"
        ],
        "type": "string",
        "description": "Defines how a question can be answered.<br />1 - Numeric, 2 - Boolean, 3 - Text, 4 - Matrix, 5 - Selection, 6 - File, 7 - StringSelection, 8 - SingleLineText"
      },
      "QuestionsAndAnswers.FileAnswerFileModel": {
        "type": "object",
        "properties": {
          "FileName": {
            "type": "string",
            "description": "Gets the name of the file.",
            "nullable": true
          },
          "MediaType": {
            "type": "string",
            "description": "Gets the media type (formely MIME-type) of the Wint.Superkoll.API.Model.QuestionsAndAnswers.FileAnswerFileModel.FileContent.",
            "nullable": true
          },
          "FileContent": {
            "type": "string",
            "description": "Gets the base-64 encoded file contents.",
            "nullable": true
          },
          "FileId": {
            "type": "string",
            "description": "Gets the `Id` of the file data.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Describes a file answer."
      },
      "QuestionsAndAnswers.LinkModel": {
        "type": "object",
        "properties": {
          "Href": {
            "type": "string",
            "description": "Gets or sets the href of the link.",
            "nullable": true
          },
          "Ordinal": {
            "type": "integer",
            "description": "Gets the ordinal.",
            "format": "int32"
          },
          "Title": {
            "type": "string",
            "description": "Gets or sets the title.",
            "nullable": true
          },
          "Value": {
            "type": "string",
            "description": "Gets or sets the content contained in the link.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Describes a link."
      },
      "QuestionsAndAnswers.MatrixValueModel": {
        "type": "object",
        "properties": {
          "TextValue": {
            "type": "string",
            "description": "Gets the text value.",
            "nullable": true
          },
          "BooleanValue": {
            "type": "boolean",
            "description": "Gets the boolean value.",
            "nullable": true
          },
          "NumericValue": {
            "type": "integer",
            "description": "Gets the numeric value.",
            "format": "int32",
            "nullable": true
          },
          "RowOrdinal": {
            "type": "integer",
            "description": "Gets the row ordinal.",
            "format": "int32"
          },
          "ColumnOrdinal": {
            "type": "integer",
            "description": "Gets the column ordinal.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Describes a matrix value specified in input."
      },
      "QuestionsAndAnswers.QuestionFileDefinitionModel": {
        "type": "object",
        "properties": {
          "MinimumFileCount": {
            "type": "integer",
            "description": "Gets the required number of files.",
            "format": "int32"
          },
          "MaximumFileCount": {
            "type": "integer",
            "description": "Gets the maximum number of files allowed.",
            "format": "int32",
            "nullable": true
          },
          "MediaTypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets the sequence of allowed media types.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Describes the definition of a question whose answer would be made using file upload(s)."
      },
      "QuestionsAndAnswers.QuestionMatrixColumnDefinitionModel": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name of the column.",
            "nullable": true
          },
          "Ordinal": {
            "type": "integer",
            "description": "Gets the ordinal of the column.",
            "format": "int32"
          },
          "ValueKind": {
            "$ref": "#/components/schemas/QuestionsAndAnswers.QuestionMatrixValueKind"
          }
        },
        "additionalProperties": false,
        "description": "Describes a column definition of a matrix question."
      },
      "QuestionsAndAnswers.QuestionMatrixDefinitionModel": {
        "type": "object",
        "properties": {
          "QuestionMatrixColumnDefinitions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuestionsAndAnswers.QuestionMatrixColumnDefinitionModel"
            },
            "description": "Gets the sequence of columns in the matrix.",
            "nullable": true
          },
          "RowCount": {
            "type": "integer",
            "description": "Gets the required number of rows in the matrix.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Describe a question matrix definition."
      },
      "QuestionsAndAnswers.QuestionMatrixValueKind": {
        "enum": [
          "Numeric",
          "Boolean",
          "Text"
        ],
        "type": "string",
        "description": "Defines the value types available in a matrix column.<br />1 - Numeric, 2 - Boolean, 3 - Text"
      },
      "QuestionsAndAnswers.QuestionSelectionDefinitionModel": {
        "type": "object",
        "properties": {
          "MultiSelection": {
            "type": "boolean",
            "description": "Gets a value indicating if multi selection is accepted."
          },
          "SelectionValues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuestionsAndAnswers.SelectionValueModel"
            },
            "description": "Gets the sequence of available selection values.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuestionsAndAnswers.QuestionStringSelectionDefinitionModel": {
        "type": "object",
        "properties": {
          "MultiSelection": {
            "type": "boolean",
            "description": "Gets a value indicating if multi selection is accepted."
          },
          "SelectionValues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuestionsAndAnswers.StringSelectionValueModel"
            },
            "description": "Gets the sequence of available selection values.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuestionsAndAnswers.SelectionValueModel": {
        "type": "object",
        "properties": {
          "Description": {
            "type": "string",
            "description": "Gets or sets the description of this selection.",
            "nullable": true
          },
          "Ordinal": {
            "type": "integer",
            "description": "Gets or sets the ordinal.",
            "format": "int32"
          },
          "Value": {
            "type": "integer",
            "description": "Gets or sets the value of this selection.",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "QuestionsAndAnswers.StringSelectionValueModel": {
        "type": "object",
        "properties": {
          "Description": {
            "type": "string",
            "description": "Gets or sets the description of this selection.",
            "nullable": true
          },
          "Ordinal": {
            "type": "integer",
            "description": "Gets or sets the ordinal.",
            "format": "int32"
          },
          "Value": {
            "type": "string",
            "description": "Gets or sets the value of this selection.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuotationActivationState": {
        "enum": [
          "NotActivated",
          "Activated"
        ],
        "type": "string",
        "description": "Quotation Activation State<br />0 - NotActivated, 1 - Activated"
      },
      "Receipt": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The identifier of the receipt.",
            "format": "int32"
          },
          "State": {
            "$ref": "#/components/schemas/ReceiptStateApiModel"
          },
          "HasImages": {
            "type": "boolean",
            "description": "Whether the receipt has images or not."
          },
          "Meta": {
            "$ref": "#/components/schemas/ReceiptMeta"
          },
          "CreatedByPersonName": {
            "type": "string",
            "description": "Name of the person who created this receipt",
            "nullable": true
          },
          "CreatedByPersonId": {
            "type": "integer",
            "description": "Id of the person who created this receipt",
            "format": "int32",
            "nullable": true
          },
          "PaymentMethodName": {
            "type": "string",
            "description": "Name of the payment method used to pay for this receipt",
            "nullable": true
          },
          "CategoryName": {
            "type": "string",
            "description": "Name of the category for this receipt",
            "nullable": true
          },
          "LastUpdated": {
            "type": "string",
            "description": "Last modified timestamp",
            "format": "date-time"
          },
          "SendBackData": {
            "$ref": "#/components/schemas/ReceiptSendBackData"
          },
          "Personnumber": {
            "type": "string",
            "description": "Personnumber of the person who created this receipt",
            "nullable": true
          },
          "PaymentState": {
            "$ref": "#/components/schemas/PaymentState"
          },
          "RecipientClearingNumber": {
            "type": "string",
            "description": "Bank clearing number of the person who created this receipt",
            "nullable": true
          },
          "RecipientAccount": {
            "type": "string",
            "description": "Bank account number of the person who created this receipt",
            "nullable": true
          },
          "PaymentDate": {
            "type": "string",
            "description": "payment date of the receipt",
            "format": "date-time",
            "nullable": true
          },
          "PaidOut": {
            "type": "boolean",
            "description": "Whether receipt is paid out or not"
          },
          "PaymentMethods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReceiptPaymentMethod"
            },
            "description": "Available receipt payment methods for the receipt",
            "nullable": true,
            "deprecated": true
          },
          "TotalAmountSummary": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CurrencyValue"
            },
            "description": "Sum of total amount values group by currency (Used only when the filter is configured with IncludeSummary)",
            "nullable": true
          },
          "TotalAmountSummarySEK": {
            "type": "number",
            "description": "Sum of total amount values in kr (Used only when the filter is configured with IncludeSummary)",
            "format": "double"
          },
          "SerialNumber": {
            "type": "integer",
            "description": "Serial number of receipt",
            "format": "int32"
          },
          "CanPayEmployee": {
            "type": "boolean",
            "description": "Do we have the neccessary information to pay out this receipt to the employee?"
          },
          "HasMissingPaymentDetails": {
            "type": "boolean",
            "description": "Person doesn't have a swedish personnumber and or missing bankaccount"
          },
          "DocumentDraftId": {
            "type": "integer",
            "description": "Connected document draft id",
            "format": "int32",
            "nullable": true
          },
          "IsMatchedToDocumentDraftViaAutomationService": {
            "type": "boolean",
            "description": "Indicates whether the receipt is matched to a document draft via automation service"
          },
          "DateTime": {
            "type": "string",
            "description": "When the receipt was created",
            "format": "date-time"
          },
          "Dimensions": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Dimensions of the receipt",
            "nullable": true
          },
          "DimensionList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DimensionData"
            },
            "description": "New dimensions structure for the web app",
            "nullable": true
          },
          "Comment": {
            "type": "string",
            "description": "User comment on receipt",
            "nullable": true
          },
          "ReceiptCategoryId": {
            "type": "integer",
            "description": "Id of receipt category",
            "format": "int32",
            "nullable": true
          },
          "PaymentMethodId": {
            "type": "integer",
            "description": "Id of receipt payment method",
            "format": "int32",
            "nullable": true
          },
          "Intent": {
            "type": "string",
            "nullable": true
          },
          "Amount": {
            "type": "number",
            "description": "Ammount paid",
            "format": "double"
          },
          "PaymentMethodType": {
            "$ref": "#/components/schemas/ReceiptPaymentMethodType"
          },
          "Persons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReceiptPerson"
            },
            "description": "People the receipt concerns",
            "nullable": true
          },
          "Images": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "byte"
            },
            "nullable": true,
            "deprecated": true
          },
          "ClientId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "Currency": {
            "type": "string",
            "description": "Currency of the receipt",
            "nullable": true
          },
          "Attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReceiptAttachment"
            },
            "description": "The attachments of the receipt.",
            "nullable": true
          },
          "SupplierName": {
            "maxLength": 128,
            "type": "string",
            "description": "Name of the supplier.",
            "nullable": true
          },
          "IsOtherPaymentMethod": {
            "type": "boolean",
            "description": "The flag indicating if the payment method is \"Other\" from a classified receipt that comes originally from a GenericVoucher submission. \r\nBut the DocumentClassificationService has identified this document as a receipt. \r\nPlease look at this user story for more information:\r\nhttps://app.clickup.com/t/4523827/DEV-20076"
          },
          "OtherPaymentMethodExplanation": {
            "type": "string",
            "description": "Explanation from the user for the selection of the\r\n\"Other\" payment method. Will always contain a value if \"IsOtherPaymentMethod\" is true.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A representation of a receipt."
      },
      "ReceiptAttachment": {
        "type": "object",
        "properties": {
          "Data": {
            "type": "string",
            "description": "The attachment's data.",
            "format": "byte",
            "nullable": true
          },
          "Id": {
            "type": "integer",
            "description": "The identifier of the attachment.",
            "format": "int32"
          },
          "FileName": {
            "type": "string",
            "description": "The file name of the attachment.",
            "nullable": true
          },
          "ContentType": {
            "type": "string",
            "description": "The content type of the attachment.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Full attachment which contains meta data and data of the attachment."
      },
      "ReceiptCategory": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Type": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "deprecated": true
          },
          "CategoryType": {
            "$ref": "#/components/schemas/ReceiptCategoryType"
          }
        },
        "additionalProperties": false
      },
      "ReceiptCategoryType": {
        "enum": [
          "Representation",
          "Fuel",
          "ComputersAndAccessories",
          "OfficeSupplies",
          "OfficeCoffee",
          "Other",
          "TravelExpenses",
          "Postage",
          "PurchasesOfGoods",
          "ITServiceOrSoftware",
          "EmployeeRepresentation"
        ],
        "type": "string",
        "description": "<br />0 - Representation, 1 - Fuel, 2 - ComputersAndAccessories, 3 - OfficeSupplies, 4 - OfficeCoffee, 5 - Other, 6 - TravelExpenses, 7 - Postage, 8 - PurchasesOfGoods, 9 - ITServiceOrSoftware, 10 - EmployeeRepresentation"
      },
      "ReceiptDocumentDraft": {
        "type": "object",
        "properties": {
          "DocumentDraftId": {
            "type": "integer",
            "description": "Document draft id",
            "format": "int32",
            "nullable": true
          },
          "ReceiptId": {
            "type": "integer",
            "description": "Receipt id",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Meta data for handle document draft connected to receipt."
      },
      "ReceiptImageMeta": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The image id.",
            "format": "int32"
          },
          "ContentType": {
            "type": "string",
            "description": "The content type of the image.",
            "nullable": true
          },
          "NumberOfPages": {
            "type": "integer",
            "description": "The number of pages the image contains.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Meta data for an image."
      },
      "ReceiptMeta": {
        "type": "object",
        "properties": {
          "NumberOfImages": {
            "type": "integer",
            "description": "The total number of images.",
            "format": "int32"
          },
          "Images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReceiptImageMeta"
            },
            "description": "Collection of meta data for all the images.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Meta data for the image."
      },
      "ReceiptPaymentInfo": {
        "type": "object",
        "properties": {
          "PersonNumber": {
            "type": "string",
            "description": "Person number for the user who created the receipt.",
            "nullable": true
          },
          "BankAccount": {
            "type": "string",
            "description": "Bank account number the receipt should be payed out to.",
            "nullable": true
          },
          "ClearingNumber": {
            "type": "string",
            "description": "Clearing number of the bank account the receipt should be payed out to.",
            "nullable": true
          },
          "HasMissingPaymentDetails": {
            "type": "boolean",
            "description": "Person doesn't have a swedish personnumber and or missing bankaccount"
          }
        },
        "additionalProperties": false
      },
      "ReceiptPaymentMethod": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of the payment method",
            "format": "int32"
          },
          "PersonId": {
            "type": "integer",
            "description": "Payment method owner's Id",
            "format": "int32"
          },
          "CanDeactivate": {
            "type": "boolean",
            "description": "Can payment method deactivate"
          },
          "IsPaymentMethodTypeDisabled": {
            "type": "boolean",
            "description": "Is payment method type readonly",
            "nullable": true
          },
          "CompanyId": {
            "type": "integer",
            "description": "Company id for wint card payment method types. Null for other payment method types.",
            "format": "int32",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "Name of the payment method",
            "nullable": true
          },
          "CurrencyMarkup": {
            "type": "number",
            "description": "Currency surcharge",
            "format": "double",
            "nullable": true
          },
          "Type": {
            "$ref": "#/components/schemas/ReceiptPaymentMethodType"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Is payment method active"
          }
        },
        "additionalProperties": false
      },
      "ReceiptPaymentMethodType": {
        "enum": [
          "BankCard",
          "CreditCard",
          "OwnExpense",
          "Cash",
          "Settlement",
          "WintCard",
          "MissingDocument"
        ],
        "type": "string",
        "description": "Receipt payment method types<br />0 - BankCard, 1 - CreditCard, 2 - OwnExpense, 3 - Cash, 4 - Settlement, 5 - WintCard, 6 - MissingDocument"
      },
      "ReceiptPerson": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Company": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReceiptPost": {
        "type": "object",
        "properties": {
          "ReceiptPaymentInfo": {
            "$ref": "#/components/schemas/ReceiptPaymentInfo"
          },
          "DateTime": {
            "type": "string",
            "description": "When the receipt was created",
            "format": "date-time"
          },
          "Dimensions": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Dimensions of the receipt",
            "nullable": true
          },
          "DimensionList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DimensionData"
            },
            "description": "New dimensions structure for the web app",
            "nullable": true
          },
          "Comment": {
            "type": "string",
            "description": "User comment on receipt",
            "nullable": true
          },
          "ReceiptCategoryId": {
            "type": "integer",
            "description": "Id of receipt category",
            "format": "int32",
            "nullable": true
          },
          "PaymentMethodId": {
            "type": "integer",
            "description": "Id of receipt payment method",
            "format": "int32",
            "nullable": true
          },
          "Intent": {
            "type": "string",
            "nullable": true
          },
          "Amount": {
            "type": "number",
            "description": "Ammount paid",
            "format": "double"
          },
          "PaymentMethodType": {
            "$ref": "#/components/schemas/ReceiptPaymentMethodType"
          },
          "Persons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReceiptPerson"
            },
            "description": "People the receipt concerns",
            "nullable": true
          },
          "Images": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "byte"
            },
            "nullable": true,
            "deprecated": true
          },
          "ClientId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "Currency": {
            "type": "string",
            "description": "Currency of the receipt",
            "nullable": true
          },
          "Attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReceiptAttachment"
            },
            "description": "The attachments of the receipt.",
            "nullable": true
          },
          "SupplierName": {
            "maxLength": 128,
            "type": "string",
            "description": "Name of the supplier.",
            "nullable": true
          },
          "IsOtherPaymentMethod": {
            "type": "boolean",
            "description": "The flag indicating if the payment method is \"Other\" from a classified receipt that comes originally from a GenericVoucher submission. \r\nBut the DocumentClassificationService has identified this document as a receipt. \r\nPlease look at this user story for more information:\r\nhttps://app.clickup.com/t/4523827/DEV-20076"
          },
          "OtherPaymentMethodExplanation": {
            "type": "string",
            "description": "Explanation from the user for the selection of the\r\n\"Other\" payment method. Will always contain a value if \"IsOtherPaymentMethod\" is true.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReceiptPut": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The identifier of the receipt.",
            "format": "int32"
          },
          "ReceiptPaymentInfo": {
            "$ref": "#/components/schemas/ReceiptPaymentInfo"
          },
          "DateTime": {
            "type": "string",
            "description": "When the receipt was created",
            "format": "date-time"
          },
          "Dimensions": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Dimensions of the receipt",
            "nullable": true
          },
          "DimensionList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DimensionData"
            },
            "description": "New dimensions structure for the web app",
            "nullable": true
          },
          "Comment": {
            "type": "string",
            "description": "User comment on receipt",
            "nullable": true
          },
          "ReceiptCategoryId": {
            "type": "integer",
            "description": "Id of receipt category",
            "format": "int32",
            "nullable": true
          },
          "PaymentMethodId": {
            "type": "integer",
            "description": "Id of receipt payment method",
            "format": "int32",
            "nullable": true
          },
          "Intent": {
            "type": "string",
            "nullable": true
          },
          "Amount": {
            "type": "number",
            "description": "Ammount paid",
            "format": "double"
          },
          "PaymentMethodType": {
            "$ref": "#/components/schemas/ReceiptPaymentMethodType"
          },
          "Persons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReceiptPerson"
            },
            "description": "People the receipt concerns",
            "nullable": true
          },
          "Images": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "byte"
            },
            "nullable": true,
            "deprecated": true
          },
          "ClientId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "Currency": {
            "type": "string",
            "description": "Currency of the receipt",
            "nullable": true
          },
          "Attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReceiptAttachment"
            },
            "description": "The attachments of the receipt.",
            "nullable": true
          },
          "SupplierName": {
            "maxLength": 128,
            "type": "string",
            "description": "Name of the supplier.",
            "nullable": true
          },
          "IsOtherPaymentMethod": {
            "type": "boolean",
            "description": "The flag indicating if the payment method is \"Other\" from a classified receipt that comes originally from a GenericVoucher submission. \r\nBut the DocumentClassificationService has identified this document as a receipt. \r\nPlease look at this user story for more information:\r\nhttps://app.clickup.com/t/4523827/DEV-20076"
          },
          "OtherPaymentMethodExplanation": {
            "type": "string",
            "description": "Explanation from the user for the selection of the\r\n\"Other\" payment method. Will always contain a value if \"IsOtherPaymentMethod\" is true.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReceiptPutInfo": {
        "type": "object",
        "properties": {
          "ReceiptCategoryId": {
            "type": "integer",
            "description": "Id of receipt category",
            "format": "int32",
            "nullable": true
          },
          "Persons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReceiptPerson"
            },
            "description": "People the receipt concerns",
            "nullable": true
          },
          "DimensionList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DimensionData"
            },
            "description": "New dimensions structure for the web app\r\nTODO: delete if not used in mobile app",
            "nullable": true
          },
          "Intent": {
            "type": "string",
            "description": "Concerns/Purpose of the receipt",
            "nullable": true
          },
          "Currency": {
            "type": "string",
            "description": "The currency",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Receipt specific data"
      },
      "ReceiptSendBackData": {
        "type": "object",
        "properties": {
          "Message": {
            "type": "string",
            "description": "Message (reason)",
            "nullable": true
          },
          "Date": {
            "type": "string",
            "description": "When the receipt was last sent back",
            "format": "date-time",
            "nullable": true
          },
          "SentBackById": {
            "type": "integer",
            "description": "The id of the person who sent the receipt back",
            "format": "int32",
            "nullable": true
          },
          "SentBackByName": {
            "type": "string",
            "description": "The name of the person who sent the receipt back",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Meta data for SendBack-action of a receipt."
      },
      "ReceiptStateApiModel": {
        "enum": [
          "Received",
          "Booked",
          "Canceled",
          "WaitingAcceptance",
          "Investigation",
          "SentBackToCustomer",
          "SentBackFromReceiptAdmin",
          "PaymentSign",
          "Stopped",
          "PayoutRescheduled",
          "Draft",
          "Purchased",
          "Paid"
        ],
        "type": "string",
        "description": "<br />0 - Received, 1 - Booked, 2 - Canceled, 3 - WaitingAcceptance, 4 - Investigation, 5 - SentBackToCustomer, 6 - SentBackFromReceiptAdmin, 7 - PaymentSign, 8 - Stopped, 9 - PayoutRescheduled, 10 - Draft, 100 - Purchased, 101 - Paid"
      },
      "ReceiptsSimilarItem": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of the receipt",
            "format": "int32"
          },
          "Date": {
            "type": "string",
            "description": "Created date of the receipt",
            "format": "date-time",
            "nullable": true
          },
          "Sender": {
            "type": "string",
            "description": "Name of the person who uploads",
            "nullable": true
          },
          "Amount": {
            "type": "number",
            "description": "The total amount of the receipt",
            "format": "double"
          },
          "State": {
            "$ref": "#/components/schemas/ReceiptStateApiModel"
          },
          "Currency": {
            "type": "string",
            "description": "The currency of the receipt",
            "nullable": true
          },
          "RefersTo": {
            "type": "string",
            "description": "Receipt category type",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RecurringInvoice": {
        "required": [
          "Rows"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of the recurring invoice",
            "format": "int32"
          },
          "CustomerName": {
            "type": "string",
            "description": "Name of the customer",
            "nullable": true
          },
          "CustomerOrgNo": {
            "type": "string",
            "description": "Organization number of the customer",
            "nullable": true
          },
          "OwnerName": {
            "type": "string",
            "description": "Name of the invoice owner",
            "nullable": true
          },
          "TotalAmount": {
            "type": "number",
            "description": "The total amount with vat",
            "format": "double"
          },
          "TotalTax": {
            "type": "number",
            "description": "The tax amount",
            "format": "double"
          },
          "IsEUCustomer": {
            "type": "boolean",
            "description": "If customer is EU Customer"
          },
          "NumberOfSentInvoices": {
            "type": "integer",
            "description": "Number of completed invoices",
            "format": "int32"
          },
          "NumberOfPlannedInvoices": {
            "type": "integer",
            "description": "Number of planned invoices until the end date or null if there is no end date.",
            "format": "int32"
          },
          "ExpectedRevenue": {
            "type": "number",
            "description": "Expected revenue from this recurring invoice. If the end date is not set then the revenue for 12 months.",
            "format": "double"
          },
          "Status": {
            "$ref": "#/components/schemas/RecurringInvoiceState"
          },
          "InvoicePaymentBgNumber": {
            "type": "string",
            "description": "Bankgiro number of the payment",
            "nullable": true
          },
          "InvoicePaymentMethod": {
            "$ref": "#/components/schemas/InvoicePaymentMethod"
          },
          "RevenueFromPastInvoices": {
            "type": "number",
            "description": "Revenue from invoices created from this recurring invoice",
            "format": "double",
            "nullable": true
          },
          "RecurringInvoiceVersion": {
            "$ref": "#/components/schemas/RecurringInvoiceVersion"
          },
          "TotalAmountSummary": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CurrencyValue"
            },
            "description": "Sum of total amount values group by currency (Used only when the filter is configured with IncludeSummary)",
            "nullable": true
          },
          "TotalRevenueFromPastInvoicesSummary": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CurrencyValue"
            },
            "description": "Sum of revenue from past invoices group by currency (Used only when the filter is configured with IncludeSummary)",
            "nullable": true
          },
          "Attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceAttachment"
            },
            "description": "List of invoice attachments.",
            "nullable": true
          },
          "CustomerId": {
            "type": "integer",
            "description": "Id of the customer.",
            "format": "int32"
          },
          "OwnerId": {
            "type": "integer",
            "description": "Id of the owner.",
            "format": "int32",
            "nullable": true
          },
          "CustomerReference": {
            "$ref": "#/components/schemas/InvoiceReference"
          },
          "ContactPerson": {
            "type": "string",
            "description": "Seller reference.",
            "nullable": true
          },
          "Notes": {
            "type": "string",
            "description": "Text data that you want to include in the projected invoices.",
            "nullable": true
          },
          "Dimensions": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "The dimensions for the invoice.",
            "nullable": true
          },
          "FirstPostingDate": {
            "type": "string",
            "description": "The posting date of the recurring invoice.",
            "format": "date-time"
          },
          "StopDate": {
            "type": "string",
            "description": "The stop date of the recurring invoice.",
            "format": "date-time",
            "nullable": true
          },
          "ShowReferencePersonInAddress": {
            "type": "boolean",
            "description": "Whether the invoice should have the reference name in the address."
          },
          "ShowShippingAddress": {
            "type": "boolean",
            "description": "Whether the invoice should contain the customers' delivery address."
          },
          "ShowCurrencyCode": {
            "type": "boolean",
            "description": "Whether the invoice should show the currency or not."
          },
          "Language": {
            "type": "string",
            "description": "The language of the invoice. Either SV or EN.",
            "nullable": true
          },
          "Currency": {
            "type": "string",
            "description": "The currency of the invoice E.g. SEK.",
            "nullable": true
          },
          "PaymentTerms": {
            "type": "integer",
            "description": "Payment terms for the invoice.",
            "format": "int32"
          },
          "PaymentOptionId": {
            "type": "integer",
            "description": "ID of the PaymentOption to use.",
            "format": "int32",
            "nullable": true
          },
          "DaysToDelivery": {
            "type": "integer",
            "description": "Number of days to delivery in relation to invoice date. Value can be negative.",
            "format": "int32",
            "nullable": true
          },
          "Rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RecurringInvoiceRow"
            },
            "description": "The rows for the invoice."
          },
          "Template": {
            "$ref": "#/components/schemas/InvoicePdfTemplate"
          },
          "RecurringDescription": {
            "type": "string",
            "description": "Description for the recurring invoice.",
            "nullable": true
          },
          "InvoiceFrequency": {
            "$ref": "#/components/schemas/RecurringInvoiceFrequency"
          },
          "UntilFurtherNotice": {
            "type": "boolean",
            "description": "Whether invoice will continue until further notice."
          },
          "InvoiceSendType": {
            "$ref": "#/components/schemas/InvoiceSendType"
          },
          "MailFromType": {
            "$ref": "#/components/schemas/SendRecurringInvoiceMailsFromEnum"
          },
          "MailToType": {
            "$ref": "#/components/schemas/SendInvoiceMailsToEnum"
          },
          "MailMessage": {
            "type": "string",
            "description": "Message body of the email.",
            "nullable": true
          },
          "MailTitle": {
            "type": "string",
            "description": "Subject of the email.",
            "nullable": true
          },
          "MailTo": {
            "type": "string",
            "description": "Email recipient.",
            "nullable": true
          },
          "RecurringInvoiceSendType": {
            "$ref": "#/components/schemas/RecurringInvoiceSendType"
          }
        },
        "additionalProperties": false
      },
      "RecurringInvoiceFrequency": {
        "enum": [
          "Monthly",
          "Quarterly",
          "HalfYearly",
          "Yearly"
        ],
        "type": "string",
        "description": "<br />0 - Monthly, 1 - Quarterly, 2 - HalfYearly, 3 - Yearly"
      },
      "RecurringInvoiceRow": {
        "type": "object",
        "properties": {
          "Guid": {
            "type": "string",
            "description": "Id of the row.",
            "format": "uuid"
          },
          "ArticleId": {
            "type": "integer",
            "description": "The id of the article this invoice row is referring to.",
            "format": "int32",
            "nullable": true
          },
          "Quantity": {
            "type": "number",
            "description": "The quantity for this row.",
            "format": "double"
          },
          "Description": {
            "type": "string",
            "description": "The description of the row. If article is set, the description will be the article's text.",
            "nullable": true
          },
          "OverriddenDescription": {
            "type": "string",
            "description": "Set this if you want to select an article but modify the article's text.",
            "nullable": true
          },
          "Unit": {
            "$ref": "#/components/schemas/Unit"
          },
          "UnitPrice": {
            "type": "number",
            "description": "The unit price. If article is set, this property will be ignored.",
            "format": "double",
            "nullable": true
          },
          "OverriddenUnitPrice": {
            "type": "number",
            "description": "Set this if you want to select an article but modify the price.",
            "format": "double",
            "nullable": true
          },
          "OrderIndex": {
            "type": "integer",
            "description": "Zero-based index.",
            "format": "int32"
          },
          "Rot": {
            "type": "boolean",
            "description": "If invoice row is ROT. Invoice cannot both contain ROT and RUT invoice rows."
          },
          "Rut": {
            "type": "boolean",
            "description": "If invoice row is RUT. Invoice cannot both contain ROT and RUT invoice rows."
          },
          "Vat": {
            "type": "number",
            "description": "The VAT percentage.",
            "format": "double"
          },
          "OverriddenVat": {
            "type": "number",
            "description": "Set this if you want to select an article but modify the VAT percentage.",
            "format": "double",
            "nullable": true
          },
          "EuVatProductType": {
            "$ref": "#/components/schemas/EuVatProductType"
          },
          "Periodisation": {
            "type": "boolean",
            "description": "Whether the invoice row should be booked with a periodisation. If so Wint.Superkoll.API.Model.RecurringInvoiceRow.PeriodisationStartOffset and Wint.Superkoll.API.Model.RecurringInvoiceRow.PeriodisationLength  must be set."
          },
          "PeriodisationStartOffset": {
            "type": "integer",
            "description": "Starting month in relation to the invoice month. (-) means before invoice month and (+) means after invoice month. Default will be set to 0.",
            "format": "int32"
          },
          "PeriodisationLength": {
            "type": "integer",
            "description": "Duration of the periodisation.Defaut will be set to the recurring interval.",
            "format": "int32"
          },
          "Dimensions": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "The dimensions for the row.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RecurringInvoiceSendType": {
        "enum": [
          "Manual",
          "Auto"
        ],
        "type": "string",
        "description": "<br />0 - Manual, 1 - Auto"
      },
      "RecurringInvoiceState": {
        "enum": [
          "Created",
          "Ongoing",
          "Stopped"
        ],
        "type": "string",
        "description": "<br />0 - Created, 1 - Ongoing, 2 - Stopped"
      },
      "RecurringInvoiceVersion": {
        "enum": [
          "V0_Old",
          "V1_PeriodInfo"
        ],
        "type": "string",
        "description": "Version of recurring invoice<br />0 - V0_Old, 1 - V1_PeriodInfo"
      },
      "Reference": {
        "required": [
          "Name"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The id of the reference person. Will be returned when GET:ing the customer\r\nThis should not be set when creating a customer.",
            "format": "int32"
          },
          "CustomerId": {
            "type": "integer",
            "description": "Customer Id",
            "format": "int32"
          },
          "Name": {
            "minLength": 1,
            "type": "string",
            "description": "The name of the reference person"
          },
          "EmailAddress": {
            "type": "string",
            "description": "The email address of the reference person",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "description": "The phone number to the reference person",
            "nullable": true
          },
          "ReferenceIdentifier": {
            "type": "string",
            "description": "The reference identifier associated with a reference person.\r\nIncluded in e-invoicing for sender validation.",
            "nullable": true
          },
          "IsDefault": {
            "type": "boolean",
            "description": "If the reference person to be used as default for the customer"
          }
        },
        "additionalProperties": false
      },
      "ReferencePersonImport": {
        "type": "object",
        "properties": {
          "ReferenceNameColumn": {
            "type": "string",
            "description": "CSV column for reference person's name.",
            "nullable": true
          },
          "ReferenceMailColumn": {
            "type": "string",
            "description": "CSV column for reference person's email.",
            "nullable": true
          },
          "ReferencePhoneColumn": {
            "type": "string",
            "description": "CSV column for reference person's phone.",
            "nullable": true
          },
          "ReferenceIdentifierColumn": {
            "type": "string",
            "description": "CSV column for reference person's identifier.",
            "nullable": true
          },
          "ReferenceIsDefaultColumn": {
            "type": "string",
            "description": "CSV column for if reference person isDefault.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReferencePost": {
        "required": [
          "Name"
        ],
        "type": "object",
        "properties": {
          "CustomerId": {
            "type": "integer",
            "description": "Customer Id",
            "format": "int32"
          },
          "Name": {
            "minLength": 1,
            "type": "string",
            "description": "The name of the reference person"
          },
          "EmailAddress": {
            "type": "string",
            "description": "The email address of the reference person",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "description": "The phone number to the reference person",
            "nullable": true
          },
          "ReferenceIdentifier": {
            "type": "string",
            "description": "The reference identifier associated with a reference person.\r\nIncluded in e-invoicing for sender validation.",
            "nullable": true
          },
          "IsDefault": {
            "type": "boolean",
            "description": "If the reference person to be used as default for the customer"
          }
        },
        "additionalProperties": false
      },
      "ReferencePut": {
        "required": [
          "Name"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "minLength": 1,
            "type": "string",
            "description": "The name of the reference person"
          },
          "EmailAddress": {
            "type": "string",
            "description": "The email address of the reference person",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "description": "The phone number to the reference person",
            "nullable": true
          },
          "ReferenceIdentifier": {
            "type": "string",
            "description": "The reference identifier associated with a reference person.\r\nIncluded in e-invoicing for sender validation.",
            "nullable": true
          },
          "IsDefault": {
            "type": "boolean",
            "description": "If the reference person to be used as default for the customer"
          }
        },
        "additionalProperties": false
      },
      "ReferenceSearchResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of the reference person",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Name of the reference person",
            "nullable": true
          },
          "Mail": {
            "type": "string",
            "description": "Email of the reference person",
            "nullable": true
          },
          "ReferenceIdentifier": {
            "type": "string",
            "description": "The reference identifier associated with a reference person.\r\nIncluded in e-invoicing for sender validation.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RegenerateMonthlyReportRequest": {
        "type": "object",
        "properties": {
          "KaFeedback": {
            "type": "string",
            "description": "Optional free-text feedback threaded into the next pass. Omit for a plain rerun.",
            "nullable": true
          },
          "Deployment": {
            "type": "string",
            "description": "Optional model override. Omit to reuse the previous pass's model.",
            "nullable": true
          },
          "DiscardPriorMarkdown": {
            "type": "boolean",
            "description": "When true, the previous body is not fed to the model, so the pass starts from the data alone."
          }
        },
        "additionalProperties": false,
        "description": "Asks for another generation pass over an existing report."
      },
      "ReportPaymentRequest": {
        "type": "object",
        "properties": {
          "PaymentDate": {
            "type": "string",
            "description": "The payment date for the invoice",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ReportSubmissionData": {
        "type": "object",
        "properties": {
          "YearMonth": {
            "type": "integer",
            "description": "Year and month of the deviation report",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Information needed to submit the salary deviation report"
      },
      "ResetPassword": {
        "type": "object",
        "properties": {
          "Ticket": {
            "type": "string",
            "nullable": true
          },
          "Password": {
            "type": "string",
            "nullable": true
          },
          "ConfirmPassword": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RevenueReportApproval": {
        "type": "object",
        "properties": {
          "TemplateId": {
            "type": "string",
            "description": "Identifier of the template (payment method) the approval belongs to.",
            "format": "uuid"
          },
          "PeriodYear": {
            "type": "integer",
            "description": "Reporting period year of the approval.",
            "format": "int32"
          },
          "PeriodMonth": {
            "type": "integer",
            "description": "Reporting period month of the approval.",
            "format": "int32"
          },
          "PeriodStartDay": {
            "type": "integer",
            "description": "Start day of the reporting period the approval covers. Only set for weekly templates,\r\nwhere several periods share a year and month. Null means the approval covers the whole\r\nmonth, which is the case for every monthly or longer template and for approvals recorded\r\nbefore DEV-27884.",
            "format": "int32",
            "nullable": true
          },
          "IsApproved": {
            "type": "boolean",
            "description": "Whether the period is approved."
          },
          "ApprovedBy": {
            "type": "integer",
            "description": "Identifier of the person who approved the period.",
            "format": "int32",
            "nullable": true
          },
          "ApprovedDate": {
            "type": "string",
            "description": "Date the period was approved.",
            "format": "date-time",
            "nullable": true
          },
          "ConfirmedNoIncome": {
            "type": "boolean",
            "description": "Whether the approval confirmed the period had no income."
          },
          "Comment": {
            "type": "string",
            "description": "Optional comment on the approval.",
            "nullable": true
          },
          "AttachmentFileName": {
            "type": "string",
            "description": "Name of the approval's attachment file, if any.",
            "nullable": true
          },
          "AttachmentContentType": {
            "type": "string",
            "description": "Content type of the approval's attachment, e.g. image/png, application/pdf.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A revenue reporting period approval for a template (payment method)."
      },
      "RevenueReportApproveRequest": {
        "type": "object",
        "properties": {
          "TemplateId": {
            "type": "string",
            "description": "Identifier of the template (payment method) the period belongs to.",
            "format": "uuid"
          },
          "PeriodYear": {
            "type": "integer",
            "description": "Reporting period year being approved.",
            "format": "int32"
          },
          "PeriodMonth": {
            "type": "integer",
            "description": "Reporting period month being approved.",
            "format": "int32"
          },
          "PeriodStartDay": {
            "type": "integer",
            "description": "Start day of the reporting period being approved. Only meaningful for weekly templates,\r\nwhere several periods share a year and month. Leave null to approve the whole month, which\r\nis what every monthly or longer template does and what callers predating DEV-27884 did.",
            "format": "int32",
            "nullable": true
          },
          "ConfirmNoIncome": {
            "type": "boolean",
            "description": "Confirmation that the period had no income when no report was submitted for it."
          },
          "Comment": {
            "type": "string",
            "description": "Optional comment for the approval.",
            "nullable": true
          },
          "Attachment": {
            "$ref": "#/components/schemas/RevenueReportAttachment"
          },
          "Attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RevenueReportAttachment"
            },
            "description": "Optional image/PDF attachments supporting the approval (\"kompletterande underlag\"). Each\r\none becomes its own unbooked accounting voucher the accountant can open from the period's\r\ntodo.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Post object to approve a revenue reporting period for a template (payment method)."
      },
      "RevenueReportAttachment": {
        "type": "object",
        "properties": {
          "ContentType": {
            "type": "string",
            "description": "Attachment content type e.g. application/pdf, image/png, ...",
            "nullable": true
          },
          "Data": {
            "type": "string",
            "description": "Attachment data.",
            "format": "byte",
            "nullable": true
          },
          "FileName": {
            "type": "string",
            "description": "The name of the file.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A revenue report attachment which will be an image or PDF."
      },
      "RevenueReportAttachmentInfo": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Identifier of the attachment.",
            "nullable": true
          },
          "FileName": {
            "type": "string",
            "description": "Name of the attached file.",
            "nullable": true
          },
          "ContentType": {
            "type": "string",
            "description": "Content type of the attached file, e.g. image/png, application/pdf.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Metadata of a revenue report attachment (without the file data)."
      },
      "RevenueReportDescriptor": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Unique identifier of the report.",
            "format": "uuid"
          },
          "Date": {
            "type": "string",
            "description": "Reporting date of the report.",
            "format": "date-time"
          },
          "OwnerId": {
            "type": "integer",
            "description": "Identifier of the person who registered the report.",
            "format": "int32",
            "nullable": true
          },
          "OwnerName": {
            "type": "string",
            "description": "Name of the person who registered the report.",
            "nullable": true
          },
          "TemplateId": {
            "type": "string",
            "description": "Identifier of the template (payment method) the report was created from.",
            "format": "uuid"
          },
          "TemplateName": {
            "type": "string",
            "description": "Display name of the template (payment method) the report was created from.",
            "nullable": true
          },
          "CostCenter": {
            "type": "string",
            "description": "Cost center dimension's short name of the report's sales.",
            "nullable": true
          },
          "Project": {
            "type": "string",
            "description": "Project dimension's short name of the report's sales.",
            "nullable": true
          },
          "Difference": {
            "type": "number",
            "description": "Difference in sales and payments in SEK.",
            "format": "double"
          },
          "Amount": {
            "type": "number",
            "description": "Total sales amount of the report in SEK.",
            "format": "double"
          },
          "Status": {
            "$ref": "#/components/schemas/RevenueReportStatus"
          }
        },
        "additionalProperties": false,
        "description": "Compact details of a submitted revenue report."
      },
      "RevenueReportDetail": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Unique identifier of the report.",
            "format": "uuid"
          },
          "Date": {
            "type": "string",
            "description": "Reporting date of the report.",
            "format": "date-time"
          },
          "OwnerId": {
            "type": "integer",
            "description": "Identifier of the person who registered the report.",
            "format": "int32",
            "nullable": true
          },
          "OwnerName": {
            "type": "string",
            "description": "Name of the person who registered the report.",
            "nullable": true
          },
          "TemplateId": {
            "type": "string",
            "description": "Identifier of the template (payment method) the report was created from.",
            "format": "uuid"
          },
          "TemplateName": {
            "type": "string",
            "description": "Display name of the template (payment method) the report was created from.",
            "nullable": true
          },
          "Status": {
            "$ref": "#/components/schemas/RevenueReportStatus"
          },
          "Difference": {
            "type": "number",
            "description": "Difference in sales and payments in SEK.",
            "format": "double"
          },
          "Amount": {
            "type": "number",
            "description": "Total sales amount of the report in SEK.",
            "format": "double"
          },
          "Comment": {
            "type": "string",
            "description": "Optional comment on the report.",
            "nullable": true
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RevenueReportItemDto"
            },
            "description": "Account based transactions of the report.",
            "nullable": true
          },
          "Attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RevenueReportAttachmentInfo"
            },
            "description": "Image/PDF attachments of the report.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Full details of a submitted revenue report."
      },
      "RevenueReportDto": {
        "type": "object",
        "properties": {
          "TemplateId": {
            "type": "string",
            "description": "Identifier of the template the report is based on.",
            "format": "uuid"
          },
          "Date": {
            "type": "string",
            "description": "Booking date of the report.",
            "format": "date-time"
          },
          "PeriodYear": {
            "type": "integer",
            "description": "Reporting period year.",
            "format": "int32"
          },
          "PeriodMonth": {
            "type": "integer",
            "description": "Reporting period month.",
            "format": "int32"
          },
          "PeriodStartDay": {
            "type": "integer",
            "description": "Ignored. For a weekly template the reported period is resolved from Wint.Superkoll.API.Model.RevenueReportDto.Date\r\nagainst the template's own schedule, because a caller cannot know where the weekly grid\r\nfalls, and for monthly and longer templates the period is the year and month above.",
            "format": "int32",
            "nullable": true
          },
          "Comment": {
            "type": "string",
            "description": "Optional comment for the report.",
            "nullable": true
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RevenueReportItemDto"
            },
            "description": "Account based transactions for the report.",
            "nullable": true
          },
          "Attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RevenueReportAttachment"
            },
            "description": "Image attachments (images, PDFs) for the report.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Post object to submit a revenue report."
      },
      "RevenueReportItemCategory": {
        "enum": [
          "Sales",
          "PaymentMethod",
          "Other"
        ],
        "type": "string",
        "description": "Category for a revenue report item.<br />0 - Sales, 2 - PaymentMethod, 3 - Other"
      },
      "RevenueReportItemDto": {
        "type": "object",
        "properties": {
          "TemplateItemId": {
            "type": "string",
            "description": "Identifier of the template item this transaction maps to.",
            "format": "uuid",
            "nullable": true
          },
          "Account": {
            "type": "integer",
            "description": "Account number of the transaction.",
            "format": "int32"
          },
          "Amount": {
            "type": "number",
            "description": "Amount of the transaction.",
            "format": "double"
          },
          "VatAccount": {
            "type": "integer",
            "description": "VAT account number of the transaction.",
            "format": "int32",
            "nullable": true
          },
          "VatRate": {
            "type": "number",
            "description": "VAT rate of the transaction.",
            "format": "double",
            "nullable": true
          },
          "AccountType": {
            "$ref": "#/components/schemas/RevenueReportItemType"
          },
          "Category": {
            "$ref": "#/components/schemas/RevenueReportItemCategory"
          },
          "Description": {
            "type": "string",
            "description": "Description of the transaction.",
            "nullable": true
          },
          "CostCenter": {
            "type": "string",
            "description": "Cost center dimension's short name.",
            "nullable": true
          },
          "Project": {
            "type": "string",
            "description": "Project dimension's short name.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Account based transaction in a revenue report."
      },
      "RevenueReportItemType": {
        "enum": [
          "Debit",
          "Credit"
        ],
        "type": "string",
        "description": "Account type for a revenue report item.<br />0 - Debit, 1 - Credit"
      },
      "RevenueReportStatus": {
        "enum": [
          "Reported",
          "Voided"
        ],
        "type": "string",
        "description": "Customer-facing status of a submitted revenue report.<br />0 - Reported, 1 - Voided"
      },
      "RevenueReportingTemplate": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Unique identifier of the template.",
            "format": "uuid"
          },
          "Name": {
            "type": "string",
            "description": "Display name of the template.",
            "nullable": true
          },
          "IsVatAffecting": {
            "type": "boolean",
            "description": "Whether the template affects VAT reporting."
          },
          "RequiresAttachment": {
            "type": "boolean",
            "description": "Whether a report created from this template must carry at least one attachment.\r\nThe revenue reporting service enforces this when the report is created and rejects a\r\nreport without attachments, so clients should block submission before that point.\r\nDefaults to `true` so a template created before the flag existed keeps the requirement."
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RevenueReportingTemplateItem"
            },
            "description": "Template items used to build a report.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Company revenue reporting template."
      },
      "RevenueReportingTemplateItem": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Unique identifier of the template item.",
            "format": "uuid"
          },
          "Account": {
            "type": "integer",
            "description": "Account number for the template item.",
            "format": "int32"
          },
          "Category": {
            "$ref": "#/components/schemas/RevenueReportItemCategory"
          },
          "AccountType": {
            "$ref": "#/components/schemas/RevenueReportItemType"
          },
          "VatAccount": {
            "type": "integer",
            "description": "VAT account number for the template item.",
            "format": "int32",
            "nullable": true
          },
          "VatRate": {
            "type": "number",
            "description": "VAT rate for the template item.",
            "format": "double",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "Description for the template item.",
            "nullable": true
          },
          "SortOrder": {
            "type": "integer",
            "description": "Sort order for the template item.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Company revenue reporting template item."
      },
      "RutRotWorkType": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of work type",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Name of work type",
            "nullable": true
          },
          "Type": {
            "$ref": "#/components/schemas/InvoiceHouseWorkType"
          }
        },
        "additionalProperties": false
      },
      "SIEFilePost": {
        "type": "object",
        "properties": {
          "Data": {
            "type": "string",
            "description": "The data of the attachment.",
            "format": "byte",
            "nullable": true
          },
          "ContentType": {
            "type": "string",
            "description": "The content type of the file.",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "The name of the file.",
            "nullable": true
          },
          "Comment": {
            "type": "string",
            "description": "Comment for SIEFile",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SalaryAdminSearchInfo": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of the salary admin",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Name of the salary admin",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Information of the salary admin"
      },
      "SalaryDeviation": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Salary deviation's unique Id",
            "format": "int32"
          },
          "PersonId": {
            "type": "integer",
            "description": "Id of the employee",
            "format": "int32"
          },
          "PersonName": {
            "type": "string",
            "description": "Name of the employee",
            "nullable": true
          },
          "IsDeviationOngoing": {
            "type": "boolean",
            "description": "Indicate whether deviation is on going"
          },
          "HasConnectedTimeReports": {
            "type": "boolean",
            "description": "Indicate whether deviation can only be handled by time reporting"
          },
          "IsAdminOnlyType": {
            "type": "boolean",
            "description": "Indicate that the deviation type is only editable by admin users"
          },
          "YearAndMonth": {
            "type": "integer",
            "description": "Year and month\r\ne.g. YYYYMM",
            "format": "int32"
          },
          "Comment": {
            "type": "string",
            "description": "Comment",
            "nullable": true
          },
          "FromDate": {
            "type": "string",
            "description": "Start date",
            "format": "date-time",
            "nullable": true
          },
          "ToDate": {
            "type": "string",
            "description": "End date",
            "format": "date-time",
            "nullable": true
          },
          "Distance": {
            "type": "integer",
            "description": "Journey distance",
            "format": "int32",
            "nullable": true
          },
          "DayHours": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalaryDeviationHoursByDay"
            },
            "description": "List of days and hours information",
            "nullable": true
          },
          "DeviationType": {
            "$ref": "#/components/schemas/SalaryDeviationType"
          },
          "ChildName": {
            "type": "string",
            "description": "Name of the child",
            "nullable": true
          },
          "Country": {
            "type": "string",
            "description": "Two letters country code",
            "nullable": true
          },
          "VehicleType": {
            "$ref": "#/components/schemas/SalaryDeviationVehicleType"
          },
          "MealDeductions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalaryDeviationDeviationMeal"
            },
            "description": "List of days and meal information",
            "nullable": true
          },
          "Hours": {
            "type": "number",
            "description": "Hours reported",
            "format": "double",
            "nullable": true
          },
          "Provisions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SumDescriptionDto"
            },
            "description": "List of provisions",
            "nullable": true
          },
          "CommissionsVacationPaid": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SumDescriptionDto"
            },
            "description": "List of commissions vacation paid",
            "nullable": true
          },
          "CommissionsVacationSaved": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SumDescriptionDto"
            },
            "description": "List of commissions vacation saved",
            "nullable": true
          },
          "CommissionWithdrawalsSavedVacation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SumDescriptionDto"
            },
            "description": "List of commission withdrawals saved vacation",
            "nullable": true
          },
          "Bonus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SumDescriptionDto"
            },
            "description": "List of Bonus",
            "nullable": true
          },
          "CustomDeviationCompensation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SumDescriptionDto"
            },
            "description": "List of custom compensations",
            "nullable": true
          },
          "CustomDeviationName": {
            "type": "string",
            "description": "Name of the custom deviation.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Salary deviation GET"
      },
      "SalaryDeviationDescriptor": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Salary deviation's unique Id",
            "format": "int32"
          },
          "PersonId": {
            "type": "integer",
            "description": "Id of the employee",
            "format": "int32"
          },
          "PersonName": {
            "type": "string",
            "description": "Name of the employee",
            "nullable": true
          },
          "DeviationType": {
            "$ref": "#/components/schemas/SalaryDeviationType"
          },
          "Comment": {
            "type": "string",
            "description": "Comment",
            "nullable": true
          },
          "FromDate": {
            "type": "string",
            "description": "Start date",
            "format": "date-time",
            "nullable": true
          },
          "ToDate": {
            "type": "string",
            "description": "End date",
            "format": "date-time",
            "nullable": true
          },
          "YearAndMonth": {
            "type": "integer",
            "description": "Year and month\r\ne.g. YYYYMM",
            "format": "int32"
          },
          "Summary": {
            "$ref": "#/components/schemas/DeviationSummary"
          },
          "MonthState": {
            "$ref": "#/components/schemas/SalaryDeviationMonthState"
          },
          "HasDeviationsForPeriod": {
            "type": "boolean",
            "description": "Whether this person has deviations",
            "nullable": true
          },
          "CustomDeviationName": {
            "type": "string",
            "description": "Name of the custom deviation",
            "nullable": true
          },
          "IsAdminOnlyType": {
            "type": "boolean",
            "description": "Indicate that the deviation type is only editable by admin users"
          }
        },
        "additionalProperties": false,
        "description": "Compact details of salary deviation"
      },
      "SalaryDeviationDeviationMeal": {
        "type": "object",
        "properties": {
          "Day": {
            "type": "string",
            "description": "Specific Date",
            "format": "date-time"
          },
          "Breakfast": {
            "type": "boolean",
            "description": "Is breakfast included"
          },
          "Lunch": {
            "type": "boolean",
            "description": "Is lunch included"
          },
          "Dinner": {
            "type": "boolean",
            "description": "Is Dinner included"
          }
        },
        "additionalProperties": false,
        "description": "Meals information by a date item"
      },
      "SalaryDeviationHoursByDay": {
        "type": "object",
        "properties": {
          "Day": {
            "type": "string",
            "description": "Specific Date",
            "format": "date-time"
          },
          "Hours": {
            "type": "number",
            "description": "Number of hours per the date",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Hours for a date item"
      },
      "SalaryDeviationMonth": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id of salary deviation month",
            "format": "int32"
          },
          "YearAndMonth": {
            "type": "integer",
            "description": "Year and month\r\ne.g. YYYYMM",
            "format": "int32"
          },
          "State": {
            "$ref": "#/components/schemas/SalaryDeviationMonthState"
          },
          "Comment": {
            "type": "string",
            "description": "Comment on the month",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Company salary deviation month"
      },
      "SalaryDeviationMonthState": {
        "enum": [
          "Created",
          "Submitted",
          "Handled"
        ],
        "type": "string",
        "description": "State of company salary deviation month<br />0 - Created, 1 - Submitted, 2 - Handled"
      },
      "SalaryDeviationPost": {
        "type": "object",
        "properties": {
          "PersonId": {
            "type": "integer",
            "description": "Employee Id",
            "format": "int32"
          },
          "FromTime": {
            "type": "string",
            "description": "Start time",
            "nullable": true
          },
          "ToTime": {
            "type": "string",
            "description": "End time",
            "nullable": true
          },
          "YearAndMonth": {
            "type": "integer",
            "description": "Year and month\r\ne.g. YYYYMM",
            "format": "int32"
          },
          "Comment": {
            "type": "string",
            "description": "Comment",
            "nullable": true
          },
          "FromDate": {
            "type": "string",
            "description": "Start date",
            "format": "date-time",
            "nullable": true
          },
          "ToDate": {
            "type": "string",
            "description": "End date",
            "format": "date-time",
            "nullable": true
          },
          "Distance": {
            "type": "integer",
            "description": "Journey distance",
            "format": "int32",
            "nullable": true
          },
          "DayHours": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalaryDeviationHoursByDay"
            },
            "description": "List of days and hours information",
            "nullable": true
          },
          "DeviationType": {
            "$ref": "#/components/schemas/SalaryDeviationType"
          },
          "ChildName": {
            "type": "string",
            "description": "Name of the child",
            "nullable": true
          },
          "Country": {
            "type": "string",
            "description": "Two letters country code",
            "nullable": true
          },
          "VehicleType": {
            "$ref": "#/components/schemas/SalaryDeviationVehicleType"
          },
          "MealDeductions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalaryDeviationDeviationMeal"
            },
            "description": "List of days and meal information",
            "nullable": true
          },
          "Hours": {
            "type": "number",
            "description": "Hours reported",
            "format": "double",
            "nullable": true
          },
          "Provisions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SumDescriptionDto"
            },
            "description": "List of provisions",
            "nullable": true
          },
          "CommissionsVacationPaid": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SumDescriptionDto"
            },
            "description": "List of commissions vacation paid",
            "nullable": true
          },
          "CommissionsVacationSaved": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SumDescriptionDto"
            },
            "description": "List of commissions vacation saved",
            "nullable": true
          },
          "CommissionWithdrawalsSavedVacation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SumDescriptionDto"
            },
            "description": "List of commission withdrawals saved vacation",
            "nullable": true
          },
          "Bonus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SumDescriptionDto"
            },
            "description": "List of Bonus",
            "nullable": true
          },
          "CustomDeviationCompensation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SumDescriptionDto"
            },
            "description": "List of custom compensations",
            "nullable": true
          },
          "CustomDeviationName": {
            "type": "string",
            "description": "Name of the custom deviation.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Salary deviation POST item"
      },
      "SalaryDeviationPut": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Salary deviation's unique Id",
            "format": "int32"
          },
          "PersonId": {
            "type": "integer",
            "description": "Employee Id",
            "format": "int32"
          },
          "FromTime": {
            "type": "string",
            "description": "Start time",
            "nullable": true
          },
          "ToTime": {
            "type": "string",
            "description": "End time",
            "nullable": true
          },
          "YearAndMonth": {
            "type": "integer",
            "description": "Year and month\r\ne.g. YYYYMM",
            "format": "int32"
          },
          "Comment": {
            "type": "string",
            "description": "Comment",
            "nullable": true
          },
          "FromDate": {
            "type": "string",
            "description": "Start date",
            "format": "date-time",
            "nullable": true
          },
          "ToDate": {
            "type": "string",
            "description": "End date",
            "format": "date-time",
            "nullable": true
          },
          "Distance": {
            "type": "integer",
            "description": "Journey distance",
            "format": "int32",
            "nullable": true
          },
          "DayHours": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalaryDeviationHoursByDay"
            },
            "description": "List of days and hours information",
            "nullable": true
          },
          "DeviationType": {
            "$ref": "#/components/schemas/SalaryDeviationType"
          },
          "ChildName": {
            "type": "string",
            "description": "Name of the child",
            "nullable": true
          },
          "Country": {
            "type": "string",
            "description": "Two letters country code",
            "nullable": true
          },
          "VehicleType": {
            "$ref": "#/components/schemas/SalaryDeviationVehicleType"
          },
          "MealDeductions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalaryDeviationDeviationMeal"
            },
            "description": "List of days and meal information",
            "nullable": true
          },
          "Hours": {
            "type": "number",
            "description": "Hours reported",
            "format": "double",
            "nullable": true
          },
          "Provisions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SumDescriptionDto"
            },
            "description": "List of provisions",
            "nullable": true
          },
          "CommissionsVacationPaid": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SumDescriptionDto"
            },
            "description": "List of commissions vacation paid",
            "nullable": true
          },
          "CommissionsVacationSaved": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SumDescriptionDto"
            },
            "description": "List of commissions vacation saved",
            "nullable": true
          },
          "CommissionWithdrawalsSavedVacation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SumDescriptionDto"
            },
            "description": "List of commission withdrawals saved vacation",
            "nullable": true
          },
          "Bonus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SumDescriptionDto"
            },
            "description": "List of Bonus",
            "nullable": true
          },
          "CustomDeviationCompensation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SumDescriptionDto"
            },
            "description": "List of custom compensations",
            "nullable": true
          },
          "CustomDeviationName": {
            "type": "string",
            "description": "Name of the custom deviation.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Salary deviation PUT item"
      },
      "SalaryDeviationPutPostStatus": {
        "type": "object",
        "properties": {
          "Succeeded": {
            "type": "boolean",
            "description": "Whether the operation is successfully completed or not"
          },
          "ErrorMessage": {
            "type": "string",
            "description": "Detailed error",
            "nullable": true
          },
          "Id": {
            "type": "integer",
            "description": "Id of salary deviation instance",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Status of Salary deviation Put and Post operation"
      },
      "SalaryDeviationType": {
        "enum": [
          "Vacation",
          "CareOfChildren",
          "Sick",
          "ParentalLeave",
          "Absence",
          "WithdrawalCompensation",
          "DepositedCompensation",
          "WorkedHours",
          "Allowance",
          "AllowanceForeign",
          "CommissionFee",
          "Bonus",
          "Mileage",
          "TenDays",
          "CommissionVacationPaid",
          "CommissionVacationSaved",
          "WithdrawalsSavedVacation",
          "CustomDeviationCompensation",
          "CustomTimeDeviation",
          "Overtime50",
          "Overtime75",
          "Overtime100",
          "Overtime150",
          "Overtime200",
          "OvertimeSimple",
          "OvertimeQualified",
          "ExtraTime",
          "UnsocialWorkingHours1",
          "UnsocialWorkingHours2",
          "UnsocialWorkingHours3",
          "UnsocialWorkingHours4",
          "OnCall",
          "Preparedness",
          "Overtime30",
          "TravelTimeSimple",
          "TravelTimeQualified",
          "ReducedWorkingHours",
          "PaidShortTermLeave"
        ],
        "type": "string",
        "description": "Salary deviation types supported by the system<br />1 - Vacation, 2 - CareOfChildren, 3 - Sick, 4 - ParentalLeave, 5 - Absence, 6 - WithdrawalCompensation, 7 - DepositedCompensation, 8 - WorkedHours, 9 - Allowance, 10 - AllowanceForeign, 11 - CommissionFee, 12 - Bonus, 13 - Mileage, 14 - TenDays, 15 - CommissionVacationPaid, 16 - CommissionVacationSaved, 17 - WithdrawalsSavedVacation, 20 - CustomDeviationCompensation, 21 - CustomTimeDeviation, 22 - Overtime50, 23 - Overtime75, 24 - Overtime100, 25 - Overtime150, 26 - Overtime200, 27 - OvertimeSimple, 28 - OvertimeQualified, 29 - ExtraTime, 30 - UnsocialWorkingHours1, 31 - UnsocialWorkingHours2, 32 - UnsocialWorkingHours3, 33 - UnsocialWorkingHours4, 34 - OnCall, 35 - Preparedness, 36 - Overtime30, 37 - TravelTimeSimple, 38 - TravelTimeQualified, 39 - ReducedWorkingHours, 40 - PaidShortTermLeave"
      },
      "SalaryDeviationVehicleType": {
        "enum": [
          "OwnCar",
          "CompanyDiesel",
          "CompanyGasoline",
          "CompanyElectric"
        ],
        "type": "string",
        "description": "Vehicle types supported by the system<br />0 - OwnCar, 1 - CompanyDiesel, 2 - CompanyGasoline, 3 - CompanyElectric"
      },
      "SalaryDraft": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The resource id",
            "format": "int32"
          },
          "Owner_Id": {
            "type": "integer",
            "description": "The current salary draft todo assignee",
            "format": "int32",
            "nullable": true
          },
          "OwnerName": {
            "type": "string",
            "description": "The current salary draft todo assignee",
            "nullable": true
          },
          "YearAndMonth": {
            "type": "integer",
            "description": "The salary draft Wint.Superkoll.API.Model.SalaryDraft.YearAndMonth, denoting the period the salary draft concerns.",
            "format": "int32"
          },
          "CreatedAt": {
            "type": "string",
            "description": "When the resource was created",
            "format": "date-time",
            "nullable": true
          },
          "State": {
            "$ref": "#/components/schemas/SalaryDraftState"
          },
          "Messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalaryDraftMessage"
            },
            "description": "The collection of messages in the dialogue related to the salary draft",
            "nullable": true
          },
          "Attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalaryDraftAttachment"
            },
            "description": "The collection of draft documents detailing the projected payroll payout",
            "nullable": true
          },
          "ApprovedDate": {
            "type": "string",
            "description": "The date the salary draft approved",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The projected payroll payout for the year and month period, together with related messages between the customer salary admins and the house salary team"
      },
      "SalaryDraftAssignAction": {
        "type": "object",
        "properties": {
          "SalaryDraftAssigneeId": {
            "type": "integer",
            "description": "Id of the person who is receiving salary draft",
            "format": "int32"
          },
          "Message": {
            "type": "string",
            "description": "Reason message the action",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Information related to salary draft assign action"
      },
      "SalaryDraftAttachment": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The resource id.",
            "format": "int32"
          },
          "Data": {
            "type": "string",
            "description": "The attachment data.",
            "format": "byte",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "The name of the attached document.",
            "nullable": true
          },
          "ContentType": {
            "type": "string",
            "description": "The content type of the attached document.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A draft document detailing the projected payroll payout."
      },
      "SalaryDraftMessage": {
        "type": "object",
        "properties": {
          "CreatedBy_Id": {
            "type": "integer",
            "description": "The message creator id.",
            "format": "int32"
          },
          "CreatedBy": {
            "type": "string",
            "description": "The message creator name.",
            "nullable": true
          },
          "Text": {
            "type": "string",
            "description": "The message content.",
            "nullable": true
          },
          "Timestamp": {
            "type": "string",
            "description": "When the message was created.",
            "format": "date-time"
          },
          "CreatedByWint": {
            "type": "boolean",
            "description": "Whether message was created by Wint"
          }
        },
        "additionalProperties": false,
        "description": "Component of a dialogue related to the salary draft."
      },
      "SalaryDraftPut": {
        "type": "object",
        "properties": {
          "State": {
            "$ref": "#/components/schemas/SalaryDraftState"
          },
          "Message": {
            "type": "string",
            "description": "Required motivation when rejecting salary drafts, ignored for all other state changes.",
            "nullable": true
          },
          "OwnerId": {
            "type": "integer",
            "description": "Salary draft assignee person id. Has to have salary administrator authority. Zero or lower is ignored.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Used for reassigning the salary draft todo to a salary administrator colleague or for approving or rejecting the draft.\r\nCombining those two use cases is allowed only when rejecting the draft."
      },
      "SalaryDraftRejectAction": {
        "type": "object",
        "properties": {
          "Message": {
            "type": "string",
            "description": "Reject reason message",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Used to reject the salary draft"
      },
      "SalaryDraftState": {
        "enum": [
          "NotSent",
          "AtCustomer",
          "Rejected",
          "Approved",
          "Handled",
          "Removed"
        ],
        "type": "string",
        "description": "Salary draft lifecycle flag:\r\n- NotSent (0)     = created, not dispatched to client,\r\n- AtCustomer (1)  = dispatched to client for review,\r\n- Rejected (2)    = rejected by customer, awaiting update,\r\n- Approved (3)    = approved by customer, pending payout,\r\n- Handled (4)     = payroll dispatched for payout,\r\n- Removed (5)     = removed.<br />0 - NotSent, 1 - AtCustomer, 2 - Rejected, 3 - Approved, 4 - Handled, 5 - Removed"
      },
      "SalaryImportFile": {
        "type": "object",
        "properties": {
          "FileName": {
            "type": "string",
            "description": "Name",
            "nullable": true
          },
          "ContentType": {
            "type": "string",
            "description": "Content type",
            "nullable": true
          },
          "Data": {
            "type": "string",
            "description": "File data",
            "format": "byte",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SearchCustomerInformationResponse": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Name of the customer",
            "nullable": true
          },
          "OrgNr": {
            "type": "string",
            "description": "Organization number of the customer",
            "nullable": true
          },
          "City": {
            "type": "string",
            "description": "Registered city of the customer",
            "nullable": true
          },
          "ZipCode": {
            "type": "string",
            "description": "Registered zipcode of the customer",
            "nullable": true
          },
          "Street": {
            "type": "string",
            "description": "Registered street of the customer",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SearchEntityType": {
        "enum": [
          "Supplier",
          "Customer",
          "Employee",
          "Article",
          "IncomingInvoices",
          "CustomerInvoices",
          "Receipts"
        ],
        "type": "string",
        "description": "<br />0 - Supplier, 1 - Customer, 2 - Employee, 3 - Article, 4 - IncomingInvoices, 5 - CustomerInvoices, 6 - Receipts"
      },
      "SearchResponseItems": {
        "type": "object",
        "properties": {
          "Type": {
            "$ref": "#/components/schemas/SearchEntityType"
          },
          "EntityId": {
            "type": "string",
            "description": "Entity id",
            "nullable": true
          },
          "EntityName": {
            "type": "string",
            "description": "Entity name",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "Description of the entity (Only set for IncomingInvoices, CustomerInvoices and Receipts. E.g: Serial number of a customer invoice)",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SelfInvoice": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Gets or sets the id of the invoice.",
            "format": "uuid"
          },
          "DraftInvoiceId": {
            "type": "integer",
            "description": "Gets or sets the id of a draft invoice created by the self invoice.",
            "format": "int32",
            "nullable": true
          },
          "State": {
            "$ref": "#/components/schemas/SelfInvoiceState"
          },
          "CustomerId": {
            "type": "integer",
            "description": "Gets or sets the identifier of the customer associated with the invoice.",
            "format": "int32",
            "nullable": true
          },
          "CustomerName": {
            "type": "string",
            "description": "Gets or sets the name of the customer associated with the invoice.",
            "nullable": true
          },
          "CustomerOrgNr": {
            "type": "string",
            "description": "Gets or sets the organization number of the customer associated with the invoice.",
            "nullable": true
          },
          "Images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SelfInvoiceImageData"
            },
            "description": "Gets or sets the image data of the invoice draft.",
            "nullable": true
          },
          "ReceivedDate": {
            "type": "string",
            "description": "Gets or sets the date when the self invoice is received at wint.",
            "format": "date-time"
          },
          "InvoiceDate": {
            "type": "string",
            "description": "Gets or sets the invoice date.",
            "format": "date-time",
            "nullable": true
          },
          "DueDate": {
            "type": "string",
            "description": "Gets or sets the date the invoice is due.",
            "format": "date-time",
            "nullable": true
          },
          "CustomerVatNumber": {
            "type": "string",
            "description": "Gets or sets the customer VAT number.",
            "nullable": true
          },
          "OCRNumber": {
            "type": "integer",
            "description": "Gets or sets the OCR number.",
            "format": "int64",
            "nullable": true
          },
          "TotalAmountExVat": {
            "type": "number",
            "description": "Gets or sets the Total amount excluding VAT.",
            "format": "double",
            "nullable": true
          },
          "TotalVatAmount": {
            "type": "number",
            "description": "Gets or sets the Total VAT amount.",
            "format": "double",
            "nullable": true
          },
          "TotalAmount": {
            "type": "number",
            "description": "Gets or sets the Total amount.",
            "format": "double",
            "nullable": true
          },
          "Currency": {
            "type": "string",
            "description": "Gets or sets the currency of the invoice.",
            "nullable": true
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SelfInvoiceInvoiceItem"
            },
            "description": "Gets or sets the items on the invoice.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the invoice data transfer object."
      },
      "SelfInvoiceImageData": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Gets or sets the id of the image data.",
            "format": "uuid"
          },
          "Content": {
            "type": "string",
            "description": "Gets or sets the url of the image data.",
            "format": "byte",
            "nullable": true
          },
          "ContentType": {
            "type": "string",
            "description": "Gets or sets the content type of the image data.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the image data data transfer object."
      },
      "SelfInvoiceImageDataPost": {
        "type": "object",
        "properties": {
          "FileName": {
            "type": "string",
            "description": "Gets or sets the file name of the image",
            "nullable": true
          },
          "Content": {
            "type": "string",
            "description": "Gets or sets the url of the image data.",
            "format": "byte",
            "nullable": true
          },
          "ContentType": {
            "type": "string",
            "description": "Gets or sets the content type of the image data.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SelfInvoiceInvoiceItem": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Gets or sets the id of the invoice item.",
            "format": "uuid"
          },
          "Text": {
            "type": "string",
            "description": "Gets or sets the text of the invoice item.",
            "nullable": true
          },
          "Unit": {
            "$ref": "#/components/schemas/Unit"
          },
          "Quantity": {
            "type": "number",
            "description": "Gets or sets the quantity of the invoice item.",
            "format": "double",
            "nullable": true
          },
          "UnitPrice": {
            "type": "number",
            "description": "Gets or sets the unit price of the invoice item.",
            "format": "double",
            "nullable": true
          },
          "VatAmount": {
            "type": "number",
            "description": "Gets or sets the VAT amount of the invoice item.",
            "format": "double"
          },
          "VatRate": {
            "type": "number",
            "description": "Gets or sets the VAT percentage of the invoice item.",
            "format": "double"
          },
          "TotalAmountExVAT": {
            "type": "number",
            "description": "Gets or sets the total amount excluding VAT of the invoice item.",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Represents the invoice item data transfer object."
      },
      "SelfInvoiceResponse": {
        "type": "object",
        "properties": {
          "Invoices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SelfInvoice"
            },
            "description": "Gets or sets the items in the response.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the response object that contains a list of self invoices."
      },
      "SelfInvoiceState": {
        "enum": [
          "Unhandled",
          "Created",
          "Rejected",
          "Deleted",
          "ApprovedToSendToCustomer"
        ],
        "type": "string",
        "description": "Represents the state of a self invoice in a workflow process.<br />0 - Unhandled, 1 - Created, 2 - Rejected, 3 - Deleted, 10 - ApprovedToSendToCustomer"
      },
      "SendInvoiceMailsFromEnum": {
        "enum": [
          "PersonMail",
          "CompanyMail",
          "Superkoll"
        ],
        "type": "string",
        "description": "Specifies from where the mail should be sent.<br />0 - PersonMail, 1 - CompanyMail, 2 - Superkoll"
      },
      "SendInvoiceMailsToEnum": {
        "enum": [
          "CustomerCompany",
          "ReferencePerson",
          "Other"
        ],
        "type": "string",
        "description": "Specifies the type of recipient it is for an invoice which should be sent by mail.<br />0 - CustomerCompany, 1 - ReferencePerson, 2 - Other"
      },
      "SendRecurringInvoiceMailsFromEnum": {
        "enum": [
          "CompanyMail",
          "Superkoll"
        ],
        "type": "string",
        "description": "<br />1 - CompanyMail, 2 - Superkoll"
      },
      "ShowVoucherTypes": {
        "enum": [
          "All",
          "OnlyRemoved",
          "OnlyNotRemoved",
          "OnlyReplacements",
          "OnlyNotRemovedSameDay"
        ],
        "type": "string",
        "description": "<br />0 - All, 1 - OnlyRemoved, 2 - OnlyNotRemoved, 3 - OnlyReplacements, 4 - OnlyNotRemovedSameDay"
      },
      "SumDescriptionDto": {
        "type": "object",
        "properties": {
          "Sum": {
            "type": "number",
            "description": "Sum",
            "format": "double"
          },
          "Description": {
            "type": "string",
            "description": "Description",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Shared class to input Sum and Description used for Bonus, Provision and Commission deviation types"
      },
      "SuperkollSalaryType": {
        "enum": [
          "None",
          "Simple",
          "Deviations",
          "WintSalary"
        ],
        "type": "string",
        "description": "<br />0 - None, 1 - Simple, 2 - Deviations, 3 - WintSalary"
      },
      "SupportAttachment": {
        "type": "object",
        "properties": {
          "Data": {
            "type": "string",
            "description": "The attachment's data.",
            "format": "byte",
            "nullable": true
          },
          "Id": {
            "type": "integer",
            "description": "The identifier for the attachment.",
            "format": "int32"
          },
          "FileName": {
            "type": "string",
            "description": "The file name of the attachment.",
            "nullable": true
          },
          "ContentType": {
            "type": "string",
            "description": "The content type of the attachment.",
            "nullable": true
          },
          "FileSize": {
            "type": "integer",
            "description": "File size of the attachement in bytes",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Full attachment which contains meta data and data."
      },
      "SupportAttachmentSimple": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The identifier for the attachment.",
            "format": "int32"
          },
          "FileName": {
            "type": "string",
            "description": "The file name of the attachment.",
            "nullable": true
          },
          "ContentType": {
            "type": "string",
            "description": "The content type of the attachment.",
            "nullable": true
          },
          "FileSize": {
            "type": "integer",
            "description": "File size of the attachement in bytes",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Simplified attachment which only contains meta data of an attachment."
      },
      "SupportCategory": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The identifier of the support category.",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "The name of the support category.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A category for a support issue."
      },
      "SupportComment": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The identifier of the comment.",
            "format": "int32"
          },
          "Created": {
            "type": "string",
            "description": "The date and time in UTC the comment was made.",
            "format": "date-time"
          },
          "User": {
            "$ref": "#/components/schemas/User"
          },
          "FromWint": {
            "type": "boolean",
            "description": "If the user that posted the comment is from wint."
          },
          "FromAgency": {
            "type": "boolean",
            "description": "True if the comment's author is a member of the byrå the issue is stamped for\r\n(`SupportIssue.IsAgencyCase`). Always `false` on an unstamped issue."
          },
          "Attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupportAttachmentSimple"
            },
            "description": "Simplified attachments associated with the attachment.\r\nGET: /api/supportattachment/{id}",
            "nullable": true
          },
          "HasRating": {
            "type": "boolean",
            "description": "If the comment already has been rated."
          },
          "Message": {
            "type": "string",
            "description": "The comment message.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a comment posted to a support errand."
      },
      "SupportCommentPost": {
        "type": "object",
        "properties": {
          "Attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupportAttachment"
            },
            "description": "Attachments associated with the comment.",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "description": "The comment message.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents properties that can/must be set when posting a comment to a support errand."
      },
      "SupportCommentRating": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The identifier of the comment rating.",
            "format": "int32"
          },
          "CreatedById": {
            "type": "integer",
            "description": "The id of user that posted the rating.",
            "format": "int32",
            "nullable": true
          },
          "Created": {
            "type": "string",
            "description": "The date and time in UTC the rating was made.",
            "format": "date-time"
          },
          "Rating": {
            "type": "number",
            "description": "The rating to be assigned to the support comment.",
            "format": "float"
          }
        },
        "additionalProperties": false,
        "description": "Represents a rating for a comment post in a support errand."
      },
      "SupportCommentRatingPost": {
        "type": "object",
        "properties": {
          "Rating": {
            "type": "number",
            "description": "The rating to be assigned to the support comment.",
            "format": "float"
          }
        },
        "additionalProperties": false,
        "description": "Represents properties that can/must be set when posting a rating for a support errand post."
      },
      "SupportIssue": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The identifier for the support issue.",
            "format": "int32"
          },
          "User": {
            "$ref": "#/components/schemas/User"
          },
          "Participants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/User"
            },
            "description": "The users who are participants of the support issue.",
            "nullable": true
          },
          "FromWint": {
            "type": "boolean",
            "description": "If the user who created the support issue is from wint."
          },
          "Category": {
            "$ref": "#/components/schemas/SupportCategory"
          },
          "CustomerMarkResolved": {
            "type": "boolean",
            "description": "True if support issue is marked as resolved by the customer"
          },
          "Comments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupportComment"
            },
            "description": "Comments associated with the support issue.",
            "nullable": true
          },
          "Attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupportAttachmentSimple"
            },
            "description": "Attachments associated with the support issue.",
            "nullable": true
          },
          "Created": {
            "type": "string",
            "description": "The date and time in UTC the issue was created.",
            "format": "date-time"
          },
          "State": {
            "$ref": "#/components/schemas/SupportIssueState"
          },
          "StateChangedTimestamp": {
            "type": "string",
            "description": "Timestamp in UTC when the state was changed.",
            "format": "date-time"
          },
          "ImportanceOrder": {
            "$ref": "#/components/schemas/SupportIssueImportanceOrder"
          },
          "IsReadOnly": {
            "type": "boolean",
            "description": "True if the customer can't reply to the customer case"
          },
          "IsUnread": {
            "type": "boolean",
            "description": "If the customer is unread by any participant"
          },
          "IsUnreadByCurrentUser": {
            "type": "boolean",
            "description": "If the customer is unread by the current user"
          },
          "IsConfidential": {
            "type": "boolean"
          },
          "IsAgencyCase": {
            "type": "boolean"
          },
          "IsOwnedByAgency": {
            "type": "boolean"
          },
          "AgencyName": {
            "type": "string",
            "nullable": true
          },
          "IsLocked": {
            "type": "boolean"
          },
          "CanRate": {
            "type": "boolean"
          },
          "CanForward": {
            "type": "boolean"
          },
          "IsViewerAgencyMember": {
            "type": "boolean"
          },
          "Title": {
            "type": "string",
            "description": "The title of the issue.",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "description": "The message associated with the issue.",
            "nullable": true
          },
          "CategoryId": {
            "type": "integer",
            "description": "The identifier of the category to mark this issue with.",
            "format": "int32",
            "nullable": true
          },
          "Severity": {
            "$ref": "#/components/schemas/SupportIssueSeverity"
          },
          "Recipient": {
            "$ref": "#/components/schemas/SupportIssueRecipient"
          },
          "PersonIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "The ids of the customer persons the issue should be addressed to, when Wint.Superkoll.API.Model.SupportIssuePost.Recipient is\r\nWint.Superkoll.API.Model.SupportIssueRecipient.Customer. Ignored otherwise. Must contain at least one id when used\r\n— a byrå cannot address a case to itself.",
            "nullable": true
          },
          "SupportAgentSessionId": {
            "type": "string",
            "description": "The support-agent session the issue was written in, when the customer asked the agent first.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a support issue."
      },
      "SupportIssueImportanceOrder": {
        "enum": [
          "AtCustomer",
          "AtSupport",
          "Closed"
        ],
        "type": "string",
        "description": "The importance order of the issues.<br />0 - AtCustomer, 1 - AtSupport, 2 - Closed"
      },
      "SupportIssueListItem": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The identifier for the support issue.",
            "format": "int32"
          },
          "User": {
            "$ref": "#/components/schemas/User"
          },
          "Participants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/User"
            },
            "description": "The users who are participants of the support issue.",
            "nullable": true
          },
          "Title": {
            "type": "string",
            "description": "The title of the issue.",
            "nullable": true
          },
          "State": {
            "$ref": "#/components/schemas/SupportIssueState"
          },
          "LatestComment": {
            "$ref": "#/components/schemas/SupportComment"
          },
          "StateChangedTimestamp": {
            "type": "string",
            "description": "Timestamp in UTC when the state was changed.",
            "format": "date-time"
          },
          "IsUnread": {
            "type": "boolean",
            "description": "Support issue is unread or read."
          },
          "ImportanceOrder": {
            "$ref": "#/components/schemas/SupportIssueImportanceOrder"
          },
          "IsConfidential": {
            "type": "boolean",
            "description": "True if the issue is confidential for an external agency, i.e. hidden from the agency's advisors."
          },
          "IsAgencyCase": {
            "type": "boolean",
            "description": "True if the issue is stamped for byråsupport, i.e. handled by an external agency rather than Wint directly."
          },
          "IsOwnedByAgency": {
            "type": "boolean",
            "description": "True if Wint.Superkoll.API.Model.SupportIssueListItem.IsAgencyCase is `true` and the issue is currently owned by a member of that\r\nagency — reassigning it to Wint leaves Wint.Superkoll.API.Model.SupportIssueListItem.IsAgencyCase set but makes this `false`. With\r\nWint.Superkoll.API.Model.SupportIssueListItem.State, what the client derives its \"Hos min byrå\"/\"Hos din byrå\"/\"Hos Wint\" labels from."
          },
          "AgencyName": {
            "type": "string",
            "description": "The name of the issue's agency when Wint.Superkoll.API.Model.SupportIssueListItem.IsAgencyCase is `true`; otherwise `null`.",
            "nullable": true
          },
          "IsLocked": {
            "type": "boolean",
            "description": "True if the issue is a byrå case (Wint.Superkoll.API.Model.SupportIssueListItem.IsAgencyCase) locked because the byrå stopped being\r\nconnected to the company — reassigned, unassigned, deactivated, or its assignment period expired.\r\nNobody may reply, from the web app or by mail, until Wint takes it over. Narrower than\r\nWint.Superkoll.API.Model.SupportIssue.IsReadOnly (\"cannot be replied to, for any reason\"): Wint's mass-created\r\ninformation issues are read-only from creation and are <em>not</em> locked."
          },
          "CanRate": {
            "type": "boolean",
            "description": "True if the issue can be rated by the customer. Always `false` for a byrå case\r\n(Wint.Superkoll.API.Model.SupportIssueListItem.IsAgencyCase) — rating is a Wint-support concept, not applicable when the byrå answers."
          },
          "CanForward": {
            "type": "boolean",
            "description": "True if the current viewer may forward this issue via `AgencyForward`: the issue is still owned by\r\nits byrå (Wint.Superkoll.API.Model.SupportIssueListItem.IsOwnedByAgency — not merely stamped, so a case Wint has taken over cannot be\r\npulled back), it is not locked (Wint.Superkoll.API.Model.SupportIssueListItem.IsLocked), and the viewer is a member of that agency.\r\nMirrors every condition `AgencyForward` itself enforces, so the action is never offered for a call\r\nthat would be refused."
          },
          "IsViewerAgencyMember": {
            "type": "boolean",
            "description": "True if the viewer this response was projected for is a member of the issue's stamped agency — i.e.\r\nwhether they see the issue from the byrå's side or the customer's. The client needs it to tell\r\n\"Hos min byrå\" from \"Hos din byrå\", which are otherwise the same tuple. Wint.Superkoll.API.Model.SupportIssueListItem.CanForward is not a\r\nsubstitute: it is false on a\r\nlocked issue and false once Wint owns the issue, where the two labels would then collapse into one."
          }
        },
        "additionalProperties": false,
        "description": "Light-weight version of the support issue."
      },
      "SupportIssuePost": {
        "type": "object",
        "properties": {
          "Title": {
            "type": "string",
            "description": "The title of the issue.",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "description": "The message associated with the issue.",
            "nullable": true
          },
          "CategoryId": {
            "type": "integer",
            "description": "The identifier of the category to mark this issue with.",
            "format": "int32",
            "nullable": true
          },
          "Severity": {
            "$ref": "#/components/schemas/SupportIssueSeverity"
          },
          "Attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupportAttachment"
            },
            "description": "Attachments associated with the issue.",
            "nullable": true
          },
          "Recipient": {
            "$ref": "#/components/schemas/SupportIssueRecipient"
          },
          "PersonIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "The ids of the customer persons the issue should be addressed to, when Wint.Superkoll.API.Model.SupportIssuePost.Recipient is\r\nWint.Superkoll.API.Model.SupportIssueRecipient.Customer. Ignored otherwise. Must contain at least one id when used\r\n— a byrå cannot address a case to itself.",
            "nullable": true
          },
          "SupportAgentSessionId": {
            "type": "string",
            "description": "The support-agent session the issue was written in, when the customer asked the agent first.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Properties for creating a support errand."
      },
      "SupportIssueRecipient": {
        "enum": [
          "Agency",
          "Wint",
          "Customer"
        ],
        "type": "string",
        "description": "Who a new support issue should be addressed to, when the company it belongs to has Byråsupport enabled\r\n(`CompanyPersonData.AgencySupportEnabled`). Ignored for a company without Byråsupport.<br />0 - Agency, 1 - Wint, 2 - Customer"
      },
      "SupportIssueSeverity": {
        "enum": [
          "Important",
          "CanWait",
          "NothingImportant"
        ],
        "type": "string",
        "description": "The severity of the issue.<br />0 - Important, 1 - CanWait, 2 - NothingImportant"
      },
      "SupportIssueState": {
        "enum": [
          "AtSupport",
          "AtCustomer",
          "Closed"
        ],
        "type": "string",
        "description": "The state of the issue.<br />0 - AtSupport, 1 - AtCustomer, 2 - Closed"
      },
      "SupportSuggestedPersonsCollection": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Wint.Utils.WebApi.SearchResult"
            },
            "description": "List of all booking tree items",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Surveys.AnswerModel": {
        "type": "object",
        "properties": {
          "QuestionId": {
            "type": "string",
            "description": "Gets or sets the `ID` of the question to which this answer relates.",
            "format": "uuid"
          },
          "Kind": {
            "$ref": "#/components/schemas/QuestionsAndAnswers.AnswerKind"
          },
          "BooleanValue": {
            "type": "boolean",
            "description": "Gets the System.Boolean answer value.",
            "nullable": true
          },
          "FileValue": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuestionsAndAnswers.FileAnswerFileModel"
            },
            "description": "Gets the answer described as a sequence of Wint.Superkoll.API.Model.QuestionsAndAnswers.FileAnswerFileModel items.",
            "nullable": true
          },
          "MatrixValue": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuestionsAndAnswers.MatrixValueModel"
            },
            "description": "Gets the sequence of Wint.Superkoll.API.Model.QuestionsAndAnswers.MatrixValueModel values.",
            "nullable": true
          },
          "SelectionValue": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Gets the sequence of selection values.",
            "nullable": true
          },
          "StringSelectionValue": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Value if the type is selection",
            "nullable": true
          },
          "NumericValue": {
            "type": "integer",
            "description": "Gets the System.Int32 answer value.",
            "format": "int32",
            "nullable": true
          },
          "TextValue": {
            "type": "string",
            "description": "Gets the System.String answer value.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Describes an answer input."
      },
      "Surveys.GroupAnswerModel": {
        "type": "object",
        "properties": {
          "QuestionGroupId": {
            "type": "string",
            "description": "Gets the `ID` of the question group to which this group answer relates.",
            "format": "uuid"
          },
          "IsEnabled": {
            "type": "boolean",
            "description": "Gets a value indicating if the question group is enabled."
          }
        },
        "additionalProperties": false,
        "description": "Describes a group answer."
      },
      "Surveys.QuestionGroupModel": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Gets the `Id` of the question group.",
            "format": "uuid"
          },
          "IsOptional": {
            "type": "boolean",
            "description": "Gets or sets a value indicating if the questions in this group are optional."
          },
          "IsHidden": {
            "type": "boolean",
            "description": "Gets or sets a value indicating if the questions in this group are hidden."
          },
          "Level": {
            "type": "string",
            "description": "Gets the string representation of the level.",
            "nullable": true,
            "example": "Hierarchy ID valueDescription/1/The first item on the first level./2/The second item on the first level./1/1/The first descendant of the first item on the first level./1/2/The second descendant of the first item on the first level./1/1.5/The second descendant of the first item on the first level, bumping item /1/2/ down the order."
          },
          "Questions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Surveys.QuestionModel"
            },
            "description": "Gets the sequence of Wint.Superkoll.API.Model.Surveys.QuestionModel items connected to this group.",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "Gets the name.",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "Gets the description.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Describes a question group."
      },
      "Surveys.QuestionModel": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Gets the `Id` of the question.",
            "format": "uuid"
          },
          "ParentId": {
            "type": "string",
            "description": "Gets the linked `ParentId` of the question.",
            "format": "uuid",
            "nullable": true
          },
          "HiddenWhenParentSelectsYes": {
            "type": "boolean",
            "description": "Gets or sets the value based on the answer selected for the parent question."
          },
          "IsRequired": {
            "type": "boolean",
            "description": "Gets or sets a value indicating if an answer to this question is required."
          },
          "IsHidden": {
            "type": "boolean",
            "description": "Gets or sets a value indicating if the question is hidden."
          },
          "AnswerKind": {
            "$ref": "#/components/schemas/QuestionsAndAnswers.AnswerKind"
          },
          "Links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuestionsAndAnswers.LinkModel"
            },
            "description": "Gets the sequence of Wint.Superkoll.API.Model.QuestionsAndAnswers.LinkModel items connected to this question.",
            "nullable": true
          },
          "MatrixDefinition": {
            "$ref": "#/components/schemas/QuestionsAndAnswers.QuestionMatrixDefinitionModel"
          },
          "SelectionDefinition": {
            "$ref": "#/components/schemas/QuestionsAndAnswers.QuestionSelectionDefinitionModel"
          },
          "FileDefinition": {
            "$ref": "#/components/schemas/QuestionsAndAnswers.QuestionFileDefinitionModel"
          },
          "Ordinal": {
            "type": "integer",
            "description": "Gets the ordinal of the question in the survey.",
            "format": "int32"
          },
          "Body": {
            "type": "string",
            "description": "Gets the question body.",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "Gets the question description.",
            "nullable": true
          },
          "StringSelectionDefinition": {
            "$ref": "#/components/schemas/QuestionsAndAnswers.QuestionStringSelectionDefinitionModel"
          }
        },
        "additionalProperties": false,
        "description": "Describes a question."
      },
      "Surveys.Survey": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Gets the `Id` identifying this survey.",
            "format": "uuid"
          },
          "SurveyResponse": {
            "$ref": "#/components/schemas/Surveys.SurveyResponseOutputModel"
          },
          "SurveyTemplate": {
            "$ref": "#/components/schemas/Surveys.SurveyTemplateModel"
          },
          "Comments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Surveys.SurveyComment"
            },
            "description": "Gets or sets the survey comments",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a survey. Used by customer."
      },
      "Surveys.SurveyAttachment": {
        "type": "object",
        "properties": {
          "ContentType": {
            "type": "string",
            "description": "Attachment content type e.g. application/pdf, image/png, ...",
            "nullable": true
          },
          "Data": {
            "type": "string",
            "description": "Attachment data",
            "format": "byte",
            "nullable": true
          },
          "FileName": {
            "type": "string",
            "description": "The name of the attachment.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Surveys.SurveyComment": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Gets or sets id",
            "format": "uuid"
          },
          "CreatedById": {
            "type": "integer",
            "description": "Gets or sets created by id",
            "format": "int32",
            "nullable": true
          },
          "CreatedByName": {
            "type": "string",
            "description": "Gets or sets created by name",
            "nullable": true
          },
          "Created": {
            "type": "string",
            "description": "Gets or sets the date and time this survey comment was created.",
            "format": "date-time"
          },
          "Message": {
            "type": "string",
            "description": "Gets or sets the message",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Describes a survey comment"
      },
      "Surveys.SurveyCommentRequest": {
        "type": "object",
        "properties": {
          "Message": {
            "type": "string",
            "description": "Gets or sets the message",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Describes a survey comment request"
      },
      "Surveys.SurveyPersonsSuggestionCollection": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Wint.Utils.WebApi.SearchResult"
            },
            "description": "List of all suggestions",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Survey person suggestion response"
      },
      "Surveys.SurveyResponseInputModel": {
        "type": "object",
        "properties": {
          "IsFinal": {
            "type": "boolean",
            "description": "Gets a value indicating if this response is final."
          },
          "SurveyId": {
            "type": "string",
            "description": "Gets the `Id` of the survey this response is connected to.",
            "format": "uuid"
          },
          "Answers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Surveys.AnswerModel"
            },
            "description": "Gets the sequence of answers in this survey response.",
            "nullable": true
          },
          "GroupAnswers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Surveys.GroupAnswerModel"
            },
            "description": "Gets the sequence of group answers in this survey response.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Describes a survey response input model."
      },
      "Surveys.SurveyResponseOutputModel": {
        "type": "object",
        "properties": {
          "IsFinal": {
            "type": "boolean",
            "description": "Gets a value indicating if this response is final."
          },
          "SurveyId": {
            "type": "string",
            "description": "Gets the `Id` of the survey this response is connected to.",
            "format": "uuid"
          },
          "Answers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Surveys.AnswerModel"
            },
            "description": "Gets the sequence of answers in this survey response.",
            "nullable": true
          },
          "GroupAnswers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Surveys.GroupAnswerModel"
            },
            "description": "Gets the sequence of group answers in this survey response.",
            "nullable": true
          },
          "Created": {
            "type": "string",
            "description": "Gets the date and time the survey response was created.",
            "format": "date-time"
          },
          "Updated": {
            "type": "string",
            "description": "Gets the date and time the survey response was updated.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Describes a survey response output model."
      },
      "Surveys.SurveySendToPersonAction": {
        "required": [
          "PersonId"
        ],
        "type": "object",
        "properties": {
          "PersonId": {
            "type": "integer",
            "description": "Id of the person to send the survey to",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Model for assigning survey to another person"
      },
      "Surveys.SurveyStatus": {
        "type": "object",
        "properties": {
          "SurveyId": {
            "type": "string",
            "description": "Gets the `Id` of the survey.",
            "format": "uuid"
          },
          "Description": {
            "type": "string",
            "description": "Gets the description of the survey.",
            "nullable": true
          },
          "NumberOfQuestionsLeftToAnswer": {
            "type": "integer",
            "description": "Gets the total number of questions in the survey that has not been answered.",
            "format": "int32"
          },
          "LastUpdated": {
            "type": "string",
            "description": "Gets the date and time the survey response was updated.",
            "format": "date-time",
            "nullable": true
          },
          "LastDateToAnswer": {
            "type": "string",
            "description": "Gets the date and time to when the survey request is valid.",
            "format": "date-time"
          },
          "FromDate": {
            "type": "string",
            "description": "Gets the date and time from when the survey request is valid.",
            "format": "date-time"
          },
          "Comments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Surveys.SurveyComment"
            },
            "description": "Gets or sets the survey comments",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Describes the status of a survey."
      },
      "Surveys.SurveyTemplateModel": {
        "type": "object",
        "properties": {
          "Created": {
            "type": "string",
            "description": "Gets the date and time the survey was created.",
            "format": "date-time"
          },
          "ExternalId": {
            "type": "string",
            "description": "Gets the external `Id` of the survey.",
            "format": "uuid"
          },
          "Name": {
            "type": "string",
            "description": "Gets the name of the survey.",
            "nullable": true
          },
          "QuestionGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Surveys.QuestionGroupModel"
            },
            "description": "Gets the sequence of question groups in the survey.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Describes a survey ouput model."
      },
      "TaxTableInfo": {
        "enum": [
          "None",
          "TaxTable29",
          "TaxTable30",
          "TaxTable31",
          "TaxTable32",
          "TaxTable33",
          "TaxTable34",
          "TaxTable35",
          "TaxTable36",
          "TaxTable37",
          "TaxTable38",
          "TaxTable39",
          "TaxTable40",
          "TaxTable41",
          "TaxTable42"
        ],
        "type": "string",
        "description": "<br />0 - None, 29 - TaxTable29, 30 - TaxTable30, 31 - TaxTable31, 32 - TaxTable32, 33 - TaxTable33, 34 - TaxTable34, 35 - TaxTable35, 36 - TaxTable36, 37 - TaxTable37, 38 - TaxTable38, 39 - TaxTable39, 40 - TaxTable40, 41 - TaxTable41, 42 - TaxTable42"
      },
      "TimeReporting.InvoiceCreditingState": {
        "enum": [
          "NotCredited",
          "PartiallyCredited",
          "FullyCredited"
        ],
        "type": "string",
        "description": "Possible invoice crediting states<br />0 - NotCredited, 1 - PartiallyCredited, 2 - FullyCredited"
      },
      "TimeReporting.TimeReportInvoiceInfo": {
        "type": "object",
        "properties": {
          "SerialNumber": {
            "type": "integer",
            "description": "Serial number of invoice",
            "format": "int32"
          },
          "InvoiceId": {
            "type": "integer",
            "description": "Invoice id of invoice",
            "format": "int32"
          },
          "InvoiceDate": {
            "type": "string",
            "description": "Invoice date of invoice",
            "format": "date-time"
          },
          "Amount": {
            "type": "number",
            "description": "Amount of invoice",
            "format": "double"
          },
          "Currency": {
            "type": "string",
            "description": "Currency of invoice",
            "nullable": true
          },
          "CustomerName": {
            "type": "string",
            "description": "Customer name of invoice",
            "nullable": true
          },
          "InvoiceState": {
            "$ref": "#/components/schemas/InvoiceStatus"
          },
          "CreditingState": {
            "$ref": "#/components/schemas/TimeReporting.InvoiceCreditingState"
          }
        },
        "additionalProperties": false,
        "description": "Details of invoice connected to project time"
      },
      "TimeReporting.TimeReportInvoiceStatus": {
        "enum": [
          "Unhandled",
          "Draft",
          "Sent",
          "Credited",
          "PartlyCredited",
          "PartlyConnectedToInvoices",
          "AllConnectedToInvoices"
        ],
        "type": "string",
        "description": "Time report invoice status declares the current invoice status for a time report record<br />0 - Unhandled, 1 - Draft, 2 - Sent, 3 - Credited, 4 - PartlyCredited, 5 - PartlyConnectedToInvoices, 6 - AllConnectedToInvoices"
      },
      "TimeReporting.TimeReportStatus": {
        "enum": [
          "Open",
          "Locked",
          "Approved",
          "Attested"
        ],
        "type": "string",
        "description": "Status for time report<br />0 - Open, 1 - Locked, 2 - Approved, 3 - Attested"
      },
      "TimeReporting.TimeReportingExportRow": {
        "type": "object",
        "properties": {
          "PersonId": {
            "type": "integer",
            "description": "Person Id",
            "format": "int32"
          },
          "Person": {
            "type": "string",
            "description": "Person",
            "nullable": true
          },
          "Date": {
            "type": "string",
            "description": "Time report date",
            "format": "date-time"
          },
          "Project": {
            "type": "string",
            "description": "Project name",
            "nullable": true
          },
          "Currency": {
            "type": "string",
            "description": "Currency",
            "nullable": true
          },
          "CategoryId": {
            "type": "integer",
            "description": "Category Id",
            "format": "int32"
          },
          "Category": {
            "type": "string",
            "description": "Category name",
            "nullable": true
          },
          "Hours": {
            "type": "number",
            "description": "Hours",
            "format": "double"
          },
          "Rate": {
            "type": "number",
            "description": "Rate",
            "format": "double"
          },
          "ExternalComment": {
            "type": "string",
            "description": "External comment",
            "nullable": true
          },
          "InternalComment": {
            "type": "string",
            "description": "Internal comment",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Export row"
      },
      "TimeReporting.TimeReportingPersonProjectBillingModel": {
        "enum": [
          "Hourly",
          "FixedPrice",
          "FixedPriceMinusDeviations"
        ],
        "type": "string",
        "description": "Billing model<br />0 - Hourly, 1 - FixedPrice, 2 - FixedPriceMinusDeviations"
      },
      "TimeReporting.TimeReportingReportColumn": {
        "type": "object",
        "properties": {
          "TimeReportingProjectId": {
            "type": "string",
            "description": "Project id for the time reporting project",
            "format": "uuid",
            "nullable": true
          },
          "ProjectTimeId": {
            "type": "integer",
            "description": "ProjectTimeId",
            "format": "int32",
            "nullable": true
          },
          "FromDate": {
            "type": "string",
            "description": "Date that current record is valid from",
            "format": "date-time"
          },
          "ToDate": {
            "type": "string",
            "description": "Date that current record is valid to",
            "format": "date-time",
            "nullable": true
          },
          "ProjectTime": {
            "type": "number",
            "description": "Reported hours project time",
            "format": "double",
            "nullable": true
          },
          "InternalProjectTime": {
            "type": "number",
            "description": "Reported hours internal project time",
            "format": "double",
            "nullable": true
          },
          "HourlyRate": {
            "type": "number",
            "description": "Hourly Rate",
            "format": "double",
            "nullable": true
          },
          "HoursToInvoice": {
            "type": "number",
            "description": "Number of hours to invoice",
            "format": "double",
            "nullable": true
          },
          "CalculatedAmount": {
            "type": "number",
            "description": "Calculated amount (including already billed amount)",
            "format": "double",
            "nullable": true
          },
          "InvoicedAmount": {
            "type": "number",
            "description": "Billed amount",
            "format": "double",
            "nullable": true
          },
          "CurrencyCode": {
            "type": "string",
            "description": "Currency code",
            "nullable": true
          },
          "Absence": {
            "type": "number",
            "description": "Absence",
            "format": "double",
            "nullable": true
          },
          "InvoiceId": {
            "type": "integer",
            "description": "The invoice id that contains the record",
            "format": "int32",
            "nullable": true
          },
          "InvoiceSerialNumber": {
            "type": "integer",
            "description": "Serial number on invoice or draft",
            "format": "int32",
            "nullable": true
          },
          "TimeReportInvoiceStatus": {
            "$ref": "#/components/schemas/TimeReporting.TimeReportInvoiceStatus"
          },
          "BillingModel": {
            "$ref": "#/components/schemas/TimeReporting.TimeReportingPersonProjectBillingModel"
          },
          "Allowance": {
            "type": "number",
            "description": "Column for all types of allowances. Could be in hours or currency",
            "format": "double",
            "nullable": true
          },
          "DeviationType": {
            "$ref": "#/components/schemas/SalaryDeviationType"
          },
          "TimeReportStatus": {
            "$ref": "#/components/schemas/TimeReporting.TimeReportStatus"
          },
          "ApprovedBy": {
            "type": "string",
            "description": "Who soft approved the time report (if approved)",
            "nullable": true
          },
          "UtilizationRate": {
            "type": "number",
            "description": "Efficiency (project time / total time)",
            "format": "double",
            "nullable": true
          },
          "AmountToInvoice": {
            "type": "number",
            "description": "Amount to invoice",
            "format": "double",
            "nullable": true
          },
          "CategoryId": {
            "type": "integer",
            "description": "Category Id",
            "format": "int32"
          },
          "CategoryName": {
            "type": "string",
            "description": "Category Name",
            "nullable": true
          },
          "CommentsCount": {
            "type": "integer",
            "description": "Number of comments",
            "format": "int32"
          },
          "Invoices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimeReporting.TimeReportInvoiceInfo"
            },
            "description": "List of invoices connected",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TimeReporting.TimeReportingReportRow": {
        "type": "object",
        "properties": {
          "PersonId": {
            "type": "integer",
            "description": "Project member id",
            "format": "int32"
          },
          "Description": {
            "type": "string",
            "description": "Row header",
            "nullable": true
          },
          "TimeReportingReportRowLevel": {
            "$ref": "#/components/schemas/TimeReporting.TimeReportingReportRowLevel"
          },
          "TimeReportingReportRowType": {
            "$ref": "#/components/schemas/TimeReporting.TimeReportingReportRowType"
          },
          "Columns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimeReporting.TimeReportingReportColumn"
            },
            "description": "Columns",
            "nullable": true
          },
          "Children": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimeReporting.TimeReportingReportRow"
            },
            "description": "Children",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A row in time reporting report"
      },
      "TimeReporting.TimeReportingReportRowLevel": {
        "enum": [
          "Level1PersonSummary",
          "Level2SubTotal",
          "Level3DetailsOrCategorySummary",
          "Level4TimeReports"
        ],
        "type": "string",
        "description": "Row level in report<br />0 - Level1PersonSummary, 1 - Level2SubTotal, 2 - Level3DetailsOrCategorySummary, 3 - Level4TimeReports"
      },
      "TimeReporting.TimeReportingReportRowType": {
        "enum": [
          "PersonSummary",
          "ProjectSummary",
          "DeviationSummary",
          "AllowanceSummary",
          "ProjectDetails",
          "InternalTimeDetails",
          "Vacation",
          "CareOfChildren",
          "Abscence",
          "ParentalLeave",
          "TenDays",
          "LeaveOfAbsence",
          "Mileage",
          "CommissionFee",
          "AllowanceDomestic",
          "AllowanceForeign",
          "WorkedHours",
          "WithdrawalCompensation",
          "DepositedCompensation",
          "Other",
          "CommissionVacationPaid",
          "CommissionVacationSaved",
          "WithdrawalsSavedVacation",
          "Bonus",
          "CustomTimeDeviation",
          "CustomDeviationCompensation",
          "ProjectCategorySummary",
          "Overtime50",
          "Overtime75",
          "Overtime100",
          "Overtime150",
          "Overtime200",
          "OvertimeSimple",
          "OvertimeQualified",
          "ExtraTime",
          "UnsocialWorkingHours1",
          "UnsocialWorkingHours2",
          "UnsocialWorkingHours3",
          "UnsocialWorkingHours4",
          "OnCall",
          "Preparedness",
          "Overtime30",
          "TravelTimeSimple",
          "TravelTimeQualified",
          "ReducedWorkingHours"
        ],
        "type": "string",
        "description": "Row type in report<br />0 - PersonSummary, 1 - ProjectSummary, 2 - DeviationSummary, 3 - AllowanceSummary, 4 - ProjectDetails, 5 - InternalTimeDetails, 6 - Vacation, 7 - CareOfChildren, 8 - Abscence, 9 - ParentalLeave, 10 - TenDays, 11 - LeaveOfAbsence, 12 - Mileage, 13 - CommissionFee, 14 - AllowanceDomestic, 15 - AllowanceForeign, 16 - WorkedHours, 17 - WithdrawalCompensation, 18 - DepositedCompensation, 19 - Other, 20 - CommissionVacationPaid, 21 - CommissionVacationSaved, 22 - WithdrawalsSavedVacation, 23 - Bonus, 24 - CustomTimeDeviation, 25 - CustomDeviationCompensation, 26 - ProjectCategorySummary, 27 - Overtime50, 28 - Overtime75, 29 - Overtime100, 30 - Overtime150, 31 - Overtime200, 32 - OvertimeSimple, 33 - OvertimeQualified, 34 - ExtraTime, 35 - UnsocialWorkingHours1, 36 - UnsocialWorkingHours2, 37 - UnsocialWorkingHours3, 38 - UnsocialWorkingHours4, 39 - OnCall, 40 - Preparedness, 41 - Overtime30, 42 - TravelTimeSimple, 43 - TravelTimeQualified, 44 - ReducedWorkingHours"
      },
      "TimeReportingInterval": {
        "enum": [
          "Weekly",
          "Monthly"
        ],
        "type": "string",
        "description": "<br />0 - Weekly, 1 - Monthly"
      },
      "TimeReportingSettings": {
        "type": "object",
        "properties": {
          "IsTimeReportingMandatory": {
            "type": "boolean"
          },
          "TimeReportingInterval": {
            "$ref": "#/components/schemas/TimeReportingInterval"
          }
        },
        "additionalProperties": false
      },
      "Unit": {
        "required": [
          "Name"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The id of the unit which will be returned when creating a Unit",
            "format": "int32"
          },
          "Name": {
            "minLength": 1,
            "type": "string",
            "description": "The name of the unit"
          }
        },
        "additionalProperties": false
      },
      "UnitOfDeviationValue": {
        "enum": [
          "Km",
          "SEK",
          "Days",
          "Hours"
        ],
        "type": "string",
        "description": "<br />0 - Km, 1 - SEK, 2 - Days, 3 - Hours"
      },
      "UnitPost": {
        "required": [
          "Name"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "minLength": 1,
            "type": "string",
            "description": "The name of the unit"
          }
        },
        "additionalProperties": false
      },
      "User": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Id": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "UserLoginInfo": {
        "type": "object",
        "properties": {
          "Key": {
            "type": "string",
            "format": "uuid"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "PersonId": {
            "type": "integer",
            "format": "int32"
          },
          "PersonNumber": {
            "type": "string",
            "nullable": true
          },
          "ReceiptBankAccount": {
            "type": "string",
            "nullable": true
          },
          "ReceiptBankAccountClearing": {
            "type": "string",
            "nullable": true
          },
          "Mail": {
            "type": "string",
            "nullable": true
          },
          "State": {
            "$ref": "#/components/schemas/LoginState"
          },
          "CompanyNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "PaymentMethods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReceiptPaymentMethod"
            },
            "nullable": true
          },
          "AuthTokens": {
            "$ref": "#/components/schemas/AuthTokens"
          },
          "IsHeartUser": {
            "type": "boolean"
          },
          "ShownIntroductions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "ShownHelps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "HasMissingPaymentDetails": {
            "type": "boolean"
          },
          "UnsignedEula": {
            "type": "boolean"
          },
          "CanSuspendEula": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "VatReportActionReason": {
        "enum": [
          "None",
          "UploadFailed",
          "Rejected",
          "AuthorizationFailure",
          "MissingPeriod",
          "StoppedByValidation"
        ],
        "type": "string",
        "description": "Why a report is Wint.Superkoll.API.Model.VatReportStatus.ActionRequired, which also tells who has to act.<br />0 - None, 1 - UploadFailed, 2 - Rejected, 3 - AuthorizationFailure, 4 - MissingPeriod, 5 - StoppedByValidation"
      },
      "VatReportBox": {
        "type": "object",
        "properties": {
          "Code": {
            "type": "string",
            "description": "Skatteverket's box number, e.g. \"05\" or \"49\".",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "Amount": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "VatReportDetails": {
        "type": "object",
        "properties": {
          "Boxes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VatReportBox"
            },
            "description": "Every box of the declaration in the order of Skatteverket's form: A, B, C, D, H, I, E, F, G.",
            "nullable": true
          },
          "AdditionalInformation": {
            "type": "string",
            "description": "The report's free-text \"Övriga upplysningar\".",
            "nullable": true
          },
          "VoucherNumber": {
            "type": "string",
            "description": "Series and number of the booking voucher, e.g. \"V1042\"; null when not booked.",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "format": "uuid"
          },
          "Start": {
            "type": "string",
            "format": "date-time"
          },
          "End": {
            "type": "string",
            "description": "Last day of the period, inclusive.",
            "format": "date-time"
          },
          "IsCorrection": {
            "type": "boolean"
          },
          "Status": {
            "$ref": "#/components/schemas/VatReportStatus"
          },
          "ActionReason": {
            "$ref": "#/components/schemas/VatReportActionReason"
          },
          "FiledByCustomer": {
            "type": "boolean",
            "description": "The customer files this declaration with Skatteverket, not Wint: a booked report Wint sent no declaration\r\nfor, or a draft of a company whose declarations Wint does not file."
          },
          "DueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "IsOverdue": {
            "type": "boolean",
            "description": "The payment Wint handles can no longer reach Skatteverket in time and no tax invoice pays it yet, by the\r\nrule behind Heart's overdue banner. Only ever true for the company's latest booked report."
          },
          "AmountToPay": {
            "type": "number",
            "description": "Box 49: positive to pay, negative to get back. Null when the report could not be read.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VatReportStatus": {
        "enum": [
          "Draft",
          "Booked",
          "AwaitingSignature",
          "Submitted",
          "ActionRequired",
          "BeingRemoved"
        ],
        "type": "string",
        "description": "A VAT report's state as the advisor sees it, combining the report's own state with its declaration at\r\nSkatteverket.<br />0 - Draft, 1 - Booked, 2 - AwaitingSignature, 3 - Submitted, 4 - ActionRequired, 5 - BeingRemoved"
      },
      "VatReportSummary": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "format": "uuid"
          },
          "Start": {
            "type": "string",
            "format": "date-time"
          },
          "End": {
            "type": "string",
            "description": "Last day of the period, inclusive.",
            "format": "date-time"
          },
          "IsCorrection": {
            "type": "boolean"
          },
          "Status": {
            "$ref": "#/components/schemas/VatReportStatus"
          },
          "ActionReason": {
            "$ref": "#/components/schemas/VatReportActionReason"
          },
          "FiledByCustomer": {
            "type": "boolean",
            "description": "The customer files this declaration with Skatteverket, not Wint: a booked report Wint sent no declaration\r\nfor, or a draft of a company whose declarations Wint does not file."
          },
          "DueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "IsOverdue": {
            "type": "boolean",
            "description": "The payment Wint handles can no longer reach Skatteverket in time and no tax invoice pays it yet, by the\r\nrule behind Heart's overdue banner. Only ever true for the company's latest booked report."
          },
          "AmountToPay": {
            "type": "number",
            "description": "Box 49: positive to pay, negative to get back. Null when the report could not be read.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VatReportsAvailability": {
        "type": "object",
        "properties": {
          "Available": {
            "type": "boolean",
            "description": "The company has an external agency selected in Heart and keeps its books in Wint Accounting, so the\r\nadvisor's VAT reports are shown."
          }
        },
        "additionalProperties": false
      },
      "Warning": {
        "type": "object",
        "properties": {
          "Message": {
            "type": "string",
            "description": "The warning message",
            "nullable": true
          },
          "Type": {
            "$ref": "#/components/schemas/WarningType"
          },
          "Level": {
            "$ref": "#/components/schemas/WarningLevel"
          },
          "Category": {
            "$ref": "#/components/schemas/WarningCategory"
          }
        },
        "additionalProperties": false,
        "description": "Issues that need attention"
      },
      "WarningCategory": {
        "enum": [
          "EUVATWarnings",
          "AutogiroWarnings",
          "AutogiroWarningsWithReceipt",
          "AutogiroPaymentHandling",
          "OldInvoice",
          "Printing",
          "EInvoicing",
          "ForwardedCosts",
          "NotDefined"
        ],
        "type": "string",
        "description": "<br />1 - EUVATWarnings, 2 - AutogiroWarnings, 3 - AutogiroWarningsWithReceipt, 4 - AutogiroPaymentHandling, 5 - OldInvoice, 6 - Printing, 7 - EInvoicing, 8 - ForwardedCosts, -1 - NotDefined"
      },
      "WarningLevel": {
        "enum": [
          "NotDefined",
          "Error",
          "Warning",
          "Info",
          "Success"
        ],
        "type": "string",
        "description": "<br />0 - NotDefined, 1 - Error, 2 - Warning, 3 - Info, 4 - Success"
      },
      "WarningType": {
        "enum": [
          "EuCustomerWithNoVatNumberDisplay",
          "EuCustomerWithInvalidVatNumberForDeliveryAddress",
          "EuCustomerWithInvalidVatNumberForBillingAddress",
          "UncategorizedEuCustomerInvoiceItems",
          "EuCustomerInvoiceWithApplicableItemsButNoVatNumber",
          "EuCustomerInvoiceWithInvalidVatNumberForItemCategory",
          "EuCustomerInvoiceItemsWithCategoryUnknown",
          "AutogiroHandledByWint",
          "AutogiroNotHandledByWint",
          "AutogiroHandleByWintWithReceiptManualSend",
          "AutogiroHandleByWintWithReceiptAutomaticSend",
          "AutogiroNotHandleByWintWithReceiptManualSend",
          "AutogiroNotHandleByWintWithReceiptAutomaticSend",
          "AutogiroPaymentHandledByWint",
          "AutogiroPaymentNotHandledByWint",
          "CannotSendOldInvoice",
          "SendForPrint",
          "MissingCustomerReferenceCode",
          "MissingCustomerElectronicIdentifiers",
          "SendAsEInvoice",
          "ForwardedCostSourceDocumentCancelled",
          "WarningTypeNotDefined"
        ],
        "type": "string",
        "description": "A unique warning type listing for automated processing purposes<br />1 - EuCustomerWithNoVatNumberDisplay, 2 - EuCustomerWithInvalidVatNumberForDeliveryAddress, 3 - EuCustomerWithInvalidVatNumberForBillingAddress, 4 - UncategorizedEuCustomerInvoiceItems, 5 - EuCustomerInvoiceWithApplicableItemsButNoVatNumber, 6 - EuCustomerInvoiceWithInvalidVatNumberForItemCategory, 7 - EuCustomerInvoiceItemsWithCategoryUnknown, 8 - AutogiroHandledByWint, 9 - AutogiroNotHandledByWint, 10 - AutogiroHandleByWintWithReceiptManualSend, 11 - AutogiroHandleByWintWithReceiptAutomaticSend, 12 - AutogiroNotHandleByWintWithReceiptManualSend, 13 - AutogiroNotHandleByWintWithReceiptAutomaticSend, 14 - AutogiroPaymentHandledByWint, 15 - AutogiroPaymentNotHandledByWint, 16 - CannotSendOldInvoice, 17 - SendForPrint, 18 - MissingCustomerReferenceCode, 19 - MissingCustomerElectronicIdentifiers, 20 - SendAsEInvoice, 21 - ForwardedCostSourceDocumentCancelled, -1 - WarningTypeNotDefined"
      },
      "Wint.Support.Service.Model.Agent.AgentCardRow": {
        "required": [
          "Label",
          "Value"
        ],
        "type": "object",
        "properties": {
          "Label": {
            "type": "string",
            "nullable": true
          },
          "Value": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Wint.Support.Service.Model.Agent.AgentCaseCreated": {
        "required": [
          "CaseId"
        ],
        "type": "object",
        "properties": {
          "CaseId": {
            "type": "integer",
            "format": "int32"
          },
          "AssignedTo": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Wint.Support.Service.Model.Agent.AgentCaseRequest": {
        "type": "object",
        "properties": {
          "Category": {
            "type": "string",
            "nullable": true
          },
          "Subject": {
            "type": "string",
            "nullable": true
          },
          "CustomerText": {
            "type": "string",
            "nullable": true
          },
          "Understood": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentCardRow"
            },
            "nullable": true
          },
          "Tried": {
            "type": "string",
            "nullable": true
          },
          "Urgent": {
            "type": "boolean",
            "nullable": true
          },
          "Summary": {
            "type": "string",
            "nullable": true
          },
          "Conversation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentConversationLine"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Wint.Support.Service.Model.Agent.AgentCaseSummary": {
        "required": [
          "Drafted",
          "Subject",
          "Summary"
        ],
        "type": "object",
        "properties": {
          "Subject": {
            "type": "string",
            "nullable": true
          },
          "Summary": {
            "type": "string",
            "nullable": true
          },
          "Category": {
            "type": "string",
            "nullable": true
          },
          "Drafted": {
            "type": "boolean"
          },
          "Found": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentCardRow"
            },
            "nullable": true
          },
          "References": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "Reason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Wint.Support.Service.Model.Agent.AgentCaseSummaryRequest": {
        "type": "object",
        "properties": {
          "Conversation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Wint.Support.Service.Model.Agent.AgentConversationLine"
            },
            "nullable": true
          },
          "Language": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Wint.Support.Service.Model.Agent.AgentConversationLine": {
        "required": [
          "Text",
          "Who"
        ],
        "type": "object",
        "properties": {
          "Who": {
            "type": "string",
            "nullable": true
          },
          "Text": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Wint.Support.Service.Model.Agent.AgentMessageRequest": {
        "required": [
          "Text"
        ],
        "type": "object",
        "properties": {
          "Text": {
            "type": "string",
            "nullable": true
          },
          "HasAttachments": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Wint.Support.Service.Model.Agent.AgentReply": {
        "type": "object",
        "additionalProperties": false
      },
      "Wint.Support.Service.Model.Agent.AgentSessionCreated": {
        "required": [
          "SessionId"
        ],
        "type": "object",
        "properties": {
          "SessionId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_Accounting.Account": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Accounting.Account"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/Accounting.Account"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_Accounting.Series": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Accounting.Series"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/Accounting.Series"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_Accounting.Transaction": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Accounting.Transaction"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/Accounting.Transaction"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_Accounting.Voucher": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Accounting.Voucher"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/Accounting.Voucher"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_Article": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Article"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/Article"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_CashReconciliationInstanceDescriptor": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CashReconciliationInstanceDescriptor"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/CashReconciliationInstanceDescriptor"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_Customer": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Customer"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/Customer"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_Dimension": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Dimension"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/Dimension"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_DimensionType": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DimensionType"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/DimensionType"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_Employee": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Employee"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/Employee"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_Invoice": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Invoice"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/Invoice"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_InvoiceListItem": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceListItem"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/InvoiceListItem"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_InvoicePaymentOption": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoicePaymentOption"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/InvoicePaymentOption"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_MonthlyReportSummary": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MonthlyReportSummary"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/MonthlyReportSummary"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_PersonMonthlySalaryDeviation": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonMonthlySalaryDeviation"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/PersonMonthlySalaryDeviation"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_Receipt": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Receipt"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/Receipt"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_Reference": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Reference"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/Reference"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_RevenueReportDescriptor": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RevenueReportDescriptor"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/RevenueReportDescriptor"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_RutRotWorkType": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RutRotWorkType"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/RutRotWorkType"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_SalaryDeviationDescriptor": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalaryDeviationDescriptor"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/SalaryDeviationDescriptor"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_SalaryDeviationMonth": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalaryDeviationMonth"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/SalaryDeviationMonth"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_SalaryDraft": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalaryDraft"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/SalaryDraft"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_SearchCustomerInformationResponse": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchCustomerInformationResponse"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/SearchCustomerInformationResponse"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_SupportComment": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupportComment"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/SupportComment"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_SupportIssue": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupportIssue"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/SupportIssue"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_SupportIssueListItem": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupportIssueListItem"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/SupportIssueListItem"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_Unit": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Unit"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/Unit"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_VatReportSummary": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VatReportSummary"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/VatReportSummary"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.ListResponseOf_Wint.Utils.WebApi.SearchResult": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Wint.Utils.WebApi.SearchResult"
            },
            "nullable": true
          },
          "NumPerPage": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "SummaryItem": {
            "$ref": "#/components/schemas/Wint.Utils.WebApi.SearchResult"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItemsWithOutFilter": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Wint.Utils.WebApi.SearchResult": {
        "type": "object",
        "properties": {
          "Description": {
            "type": "string",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WintSalary.Deviations.AmountDescription": {
        "type": "object",
        "properties": {
          "Amount": {
            "type": "number",
            "description": "Amount specified",
            "format": "double"
          },
          "Description": {
            "type": "string",
            "description": "Description of the amount",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents an amount and description for salary deviations"
      },
      "WintSalary.Deviations.Child": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Unique identifier of the child.",
            "format": "uuid"
          },
          "Name": {
            "type": "string",
            "description": "Name of the child.",
            "nullable": true
          },
          "DateOfBirth": {
            "type": "string",
            "description": "Date of birth of the child (or expected date of birth for unborn children).",
            "format": "date-time"
          },
          "SoleCustody": {
            "type": "boolean",
            "description": "Whether the parent has sole custody of the child."
          }
        },
        "additionalProperties": false,
        "description": "A child associated with a person, used for parental leave deviation selection."
      },
      "WintSalary.Deviations.ChildForCreate": {
        "required": [
          "DateOfBirth",
          "Name"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "description": "Name of the child."
          },
          "DateOfBirth": {
            "type": "string",
            "description": "Date of birth of the child (or expected date of birth for unborn children).",
            "format": "date-time"
          },
          "SoleCustody": {
            "type": "boolean",
            "description": "Whether the parent has sole custody of the child."
          }
        },
        "additionalProperties": false,
        "description": "DTO for creating a Child record associated with a person."
      },
      "WintSalary.Deviations.CurrentMonthPlacement": {
        "enum": [
          "Never",
          "Optional",
          "Always"
        ],
        "type": "string",
        "description": "Whether deviations of a type may be booked on the salary month they occur in rather than the\r\nfollowing one.\r\n\r\nThe integer values mirror Wint.Salary's `CurrentMonthPlacement` exactly:\r\n`DeviationMapper` maps by raw `(int)` cast, so every value defined in the salary\r\nservice enum must be defined here with the same number. Add new values in lockstep with the\r\nservice enum.<br />0 - Never, 1 - Optional, 2 - Always"
      },
      "WintSalary.Deviations.DayMinutes": {
        "type": "object",
        "properties": {
          "Day": {
            "type": "string",
            "description": "Date where the minutes are registered.",
            "format": "date-time"
          },
          "Minutes": {
            "type": "integer",
            "description": "Number of minutes registered for the day.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Represents a day and minutes entry in a salary deviations (Mostly in absence category)."
      },
      "WintSalary.Deviations.DeviationPeriodYearMonthState": {
        "type": "object",
        "properties": {
          "YearMonth": {
            "type": "integer",
            "description": "Calendar month (YYYYMM) the period's dates fall in. Not the salary month it is paid in, which is\r\nusually the following month.",
            "format": "int32"
          },
          "State": {
            "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviationState"
          },
          "IsYearMonthFinalized": {
            "type": "boolean",
            "description": "Whether the salary month this period is paid in is locked or already calculated; changes to such a period\r\nare restricted."
          }
        },
        "additionalProperties": false,
        "description": "Represents the state of a salary deviation for a specific year-month period."
      },
      "WintSalary.Deviations.FuelBenefit": {
        "type": "object",
        "properties": {
          "FuelCost": {
            "type": "number",
            "description": "Employer-paid fuel cost for the month, at market value including VAT.\r\nGross, before any employee repayment: repayments are reported separately.",
            "format": "double"
          },
          "PrivateDistance": {
            "type": "number",
            "description": "Private driving distance, in the same unit as Wint.Superkoll.API.Model.WintSalary.Deviations.FuelBenefit.BusinessDistance.",
            "format": "double"
          },
          "BusinessDistance": {
            "type": "number",
            "description": "Business driving distance. Missing counts as zero, so all driving is private.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Fuel benefit (drivmedelsförmån) inputs. The salary service calculates the deviation value from them."
      },
      "WintSalary.Deviations.SalaryDeviation": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Unique identifier for the salary deviation.",
            "format": "uuid"
          },
          "DeviationTypeId": {
            "type": "string",
            "description": "Unique identifier for the salary deviation type.",
            "format": "uuid"
          },
          "DeviationTypeName": {
            "type": "string",
            "description": "Name of the salary deviation type.",
            "nullable": true
          },
          "ReportedPersonName": {
            "type": "string",
            "description": "Name of the person who own the salary deviation.",
            "nullable": true
          },
          "ReportedPersonId": {
            "type": "integer",
            "description": "Unique identifier for the person who own the salary deviation.",
            "format": "int32"
          },
          "State": {
            "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviationState"
          },
          "YearAndMonth": {
            "type": "integer",
            "description": "Deprecated: echoes the `yearMonth` the request selected (YYYYMM), or null when it selected none.\r\nIt does not describe the deviation itself; read Wint.Superkoll.API.Model.WintSalary.Deviations.SalaryDeviation.PeriodYearMonthStates instead.",
            "format": "int32",
            "nullable": true,
            "deprecated": true
          },
          "PeriodYearMonthStates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WintSalary.Deviations.DeviationPeriodYearMonthState"
            },
            "description": "One entry per calendar month the deviation's dates fall in (a deviation is stored as one period per month),\r\nwith that month's state. Always covers every month of the deviation, also when the request selected only\r\nsome of them. Filled by the get-by-id endpoint only; empty in list and mutation responses.",
            "nullable": true
          },
          "FullDeviationLoaded": {
            "type": "boolean",
            "description": "False when the request selected only some of the deviation's months, in which case `FromDate`,\r\n`ToDate`, `Value`, `DayMinutes` and `State` describe those months only.",
            "nullable": true
          },
          "UseCurrentMonthPlacement": {
            "type": "boolean",
            "description": "Whether this deviation is placed on the month it occurs in rather than the following one.\r\nReflects the stored per-deviation value, so it already carries any placement inherited\r\nfrom an adjacent sick period rather than what the submitter originally sent. Not the\r\nresolved salary month, which additionally depends on locked-month redirection."
          },
          "FromDate": {
            "type": "string",
            "description": "Start date for the salary deviation.",
            "format": "date-time"
          },
          "ToDate": {
            "type": "string",
            "description": "End date for the salary deviation.",
            "format": "date-time"
          },
          "Value": {
            "type": "number",
            "description": "Value of the salary deviation. This will be total number of hours or monetary value depending on the type of deviation.",
            "format": "double",
            "nullable": true
          },
          "AmountDescriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WintSalary.Deviations.AmountDescription"
            },
            "description": "List of amount with description for the salary deviation.",
            "nullable": true
          },
          "ChildName": {
            "type": "string",
            "description": "Name of the child for whom the salary deviation is being requested.",
            "nullable": true
          },
          "ChildId": {
            "type": "string",
            "description": "Unique identifier of the child for whom the salary deviation is being requested.\r\nA parental leave deviation without it is rejected.",
            "format": "uuid",
            "nullable": true
          },
          "ChildDateOfBirth": {
            "type": "string",
            "description": "Date of birth of the referenced child. Populated in responses for display purposes.",
            "format": "date-time",
            "nullable": true
          },
          "Comment": {
            "type": "string",
            "description": "Comment or description for the salary deviation request.",
            "nullable": true
          },
          "DayMinutes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WintSalary.Deviations.DayMinutes"
            },
            "description": "List of day and minute entries for the salary deviation request.",
            "nullable": true
          },
          "TravelCompensation": {
            "$ref": "#/components/schemas/WintSalary.Deviations.TravelCompensation"
          },
          "FuelBenefit": {
            "$ref": "#/components/schemas/WintSalary.Deviations.FuelBenefit"
          }
        },
        "additionalProperties": false,
        "description": "Represents a salary deviation with detailed information."
      },
      "WintSalary.Deviations.SalaryDeviationCreateRequest": {
        "type": "object",
        "properties": {
          "DeviationTypeId": {
            "type": "string",
            "description": "Unique identifier for the salary deviation type.",
            "format": "uuid"
          },
          "PersonId": {
            "type": "integer",
            "description": "Person Id the salary deviation.",
            "format": "int32"
          },
          "UseCurrentMonthPlacement": {
            "type": "boolean",
            "description": "Requests that this deviation be placed on the month it occurs in rather than the\r\nfollowing one. Only honoured when the deviation type allows it and the acting user may\r\nmanage salary; both are enforced by the salary service, so setting it on an ineligible\r\ntype is rejected rather than ignored."
          },
          "FromDate": {
            "type": "string",
            "description": "Start date for the salary deviation.",
            "format": "date-time"
          },
          "ToDate": {
            "type": "string",
            "description": "End date for the salary deviation.",
            "format": "date-time"
          },
          "Value": {
            "type": "number",
            "description": "Value of the salary deviation. This will be total number of hours or monetary value depending on the type of deviation.",
            "format": "double",
            "nullable": true
          },
          "AmountDescriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WintSalary.Deviations.AmountDescription"
            },
            "description": "List of amount with description for the salary deviation.",
            "nullable": true
          },
          "ChildName": {
            "type": "string",
            "description": "Name of the child for whom the salary deviation is being requested.",
            "nullable": true
          },
          "ChildId": {
            "type": "string",
            "description": "Unique identifier of the child for whom the salary deviation is being requested.\r\nA parental leave deviation without it is rejected.",
            "format": "uuid",
            "nullable": true
          },
          "ChildDateOfBirth": {
            "type": "string",
            "description": "Date of birth of the referenced child. Populated in responses for display purposes.",
            "format": "date-time",
            "nullable": true
          },
          "Comment": {
            "type": "string",
            "description": "Comment or description for the salary deviation request.",
            "nullable": true
          },
          "DayMinutes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WintSalary.Deviations.DayMinutes"
            },
            "description": "List of day and minute entries for the salary deviation request.",
            "nullable": true
          },
          "TravelCompensation": {
            "$ref": "#/components/schemas/WintSalary.Deviations.TravelCompensation"
          },
          "FuelBenefit": {
            "$ref": "#/components/schemas/WintSalary.Deviations.FuelBenefit"
          }
        },
        "additionalProperties": false,
        "description": "Represents a request to create a salary deviation."
      },
      "WintSalary.Deviations.SalaryDeviationInformationType": {
        "enum": [
          "DateRange",
          "DayMinutes",
          "DecimalValue",
          "Milage",
          "TravelCompensationDomestic",
          "TravelCompensationInternational",
          "FuelBenefit",
          "Commission"
        ],
        "type": "string",
        "description": "Available salary deviation information types<br />0 - DateRange, 1 - DayMinutes, 2 - DecimalValue, 3 - Milage, 4 - TravelCompensationDomestic, 5 - TravelCompensationInternational, 6 - FuelBenefit, 7 - Commission"
      },
      "WintSalary.Deviations.SalaryDeviationInformationTypeUnit": {
        "enum": [
          "Amount",
          "Hours",
          "Kilometer"
        ],
        "type": "string",
        "description": "Available salary deviation information type units<br />0 - Amount, 1 - Hours, 2 - Kilometer"
      },
      "WintSalary.Deviations.SalaryDeviationState": {
        "enum": [
          "Unhandled",
          "SoftApproved",
          "Approved",
          "Rejected"
        ],
        "type": "string",
        "description": "Available salary deviation states<br />0 - Unhandled, 1 - SoftApproved, 2 - Approved, 3 - Rejected"
      },
      "WintSalary.Deviations.SalaryDeviationType": {
        "required": [
          "Category",
          "InformationType"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Unique identifier for the salary deviation type.",
            "format": "uuid"
          },
          "Name": {
            "type": "string",
            "description": "Name of the salary deviation type.",
            "nullable": true
          },
          "Category": {
            "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviationTypeCategory"
          },
          "InformationType": {
            "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviationInformationType"
          },
          "InformationTypeUnit": {
            "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviationInformationTypeUnit"
          },
          "LocalizedInformationTypeUnit": {
            "$ref": "#/components/schemas/LocalizedEnum"
          },
          "Hidden": {
            "type": "boolean",
            "description": "Indicates whether this salary deviation type is hidden from display."
          },
          "Classification": {
            "$ref": "#/components/schemas/WintSalary.Deviations.SalaryDeviationTypeClassification"
          },
          "CurrentMonthPlacement": {
            "$ref": "#/components/schemas/WintSalary.Deviations.CurrentMonthPlacement"
          }
        },
        "additionalProperties": false,
        "description": "Represents a salary deviation type."
      },
      "WintSalary.Deviations.SalaryDeviationTypeCategory": {
        "enum": [
          "Absence",
          "WorkedHours",
          "Compensations",
          "TimeBalances"
        ],
        "type": "string",
        "description": "Available salary deviation type categories<br />0 - Absence, 1 - WorkedHours, 2 - Compensations, 3 - TimeBalances"
      },
      "WintSalary.Deviations.SalaryDeviationTypeClassification": {
        "enum": [
          "None",
          "SickLeave",
          "ParentalLeave",
          "TravelCompensation",
          "Vab",
          "OccupationalInjury",
          "Vacation",
          "InfectionRisk",
          "CareOfCloseRelative",
          "UnionEducation",
          "TotalDefenceService",
          "SfiEducation",
          "CompTime",
          "SavedSalaryAndVacationPayWithdrawal",
          "SavedSalaryWithdrawal",
          "SalaryVacationPayWithdrawal"
        ],
        "type": "string",
        "description": "Classification of a salary deviation type, used to determine type-specific behavior\r\nsuch as requiring a child reference for parental leave deviations.\r\n\r\nThe integer values mirror Wint.Salary's `SalaryDeviationTypeClassification` exactly:\r\n`DeviationMapper` maps by raw `(int)` cast, so every value defined in the salary\r\nservice enum must be defined here with the same number. Add new values in lockstep with the\r\nservice enum.<br />0 - None, 1 - SickLeave, 2 - ParentalLeave, 3 - TravelCompensation, 4 - Vab, 5 - OccupationalInjury, 6 - Vacation, 7 - InfectionRisk, 8 - CareOfCloseRelative, 9 - UnionEducation, 10 - TotalDefenceService, 11 - SfiEducation, 12 - CompTime, 13 - SavedSalaryAndVacationPayWithdrawal, 14 - SavedSalaryWithdrawal, 15 - SalaryVacationPayWithdrawal"
      },
      "WintSalary.Deviations.SalaryDeviationUpdateRequest": {
        "type": "object",
        "properties": {
          "YearMonth": {
            "type": "integer",
            "description": "Which deviation period(s) to update, by the calendar month (YYYYMM) their dates fall in - not the salary\r\nmonth they are paid in. The new dates must lie within a single selected month, or overlap a selected range.\r\nIf null, the complete deviation is updated.\r\nIf set without Wint.Superkoll.API.Model.WintSalary.Deviations.SalaryDeviationUpdateRequest.YearMonthTo, only that single period is updated (e.g. 202502).\r\nIf set with Wint.Superkoll.API.Model.WintSalary.Deviations.SalaryDeviationUpdateRequest.YearMonthTo, all periods in the inclusive range are updated.",
            "format": "int32",
            "nullable": true
          },
          "YearMonthTo": {
            "type": "integer",
            "description": "End of period range for multi-period updates.\r\nWhen both YearMonth and YearMonthTo are set, all periods in the inclusive range are updated.\r\nWhen only YearMonth is set, single-period edit (backward compatible).",
            "format": "int32",
            "nullable": true
          },
          "FromDate": {
            "type": "string",
            "description": "Start date for the salary deviation.",
            "format": "date-time"
          },
          "ToDate": {
            "type": "string",
            "description": "End date for the salary deviation.",
            "format": "date-time"
          },
          "Value": {
            "type": "number",
            "description": "Value of the salary deviation. This will be total number of hours or monetary value depending on the type of deviation.",
            "format": "double",
            "nullable": true
          },
          "AmountDescriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WintSalary.Deviations.AmountDescription"
            },
            "description": "List of amount with description for the salary deviation.",
            "nullable": true
          },
          "ChildName": {
            "type": "string",
            "description": "Name of the child for whom the salary deviation is being requested.",
            "nullable": true
          },
          "ChildId": {
            "type": "string",
            "description": "Unique identifier of the child for whom the salary deviation is being requested.\r\nA parental leave deviation without it is rejected.",
            "format": "uuid",
            "nullable": true
          },
          "ChildDateOfBirth": {
            "type": "string",
            "description": "Date of birth of the referenced child. Populated in responses for display purposes.",
            "format": "date-time",
            "nullable": true
          },
          "Comment": {
            "type": "string",
            "description": "Comment or description for the salary deviation request.",
            "nullable": true
          },
          "DayMinutes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WintSalary.Deviations.DayMinutes"
            },
            "description": "List of day and minute entries for the salary deviation request.",
            "nullable": true
          },
          "TravelCompensation": {
            "$ref": "#/components/schemas/WintSalary.Deviations.TravelCompensation"
          },
          "FuelBenefit": {
            "$ref": "#/components/schemas/WintSalary.Deviations.FuelBenefit"
          }
        },
        "additionalProperties": false,
        "description": "Represents a request to update a salary deviation."
      },
      "WintSalary.Deviations.TravelCompensation": {
        "type": "object",
        "properties": {
          "CountryCode": {
            "type": "string",
            "description": "Country code (e.g., \"SE\" for Sweden).",
            "nullable": true
          },
          "StartTime": {
            "type": "string",
            "description": "Start time of the travel period.",
            "format": "time",
            "nullable": true
          },
          "EndTime": {
            "type": "string",
            "description": "End time of the travel period.",
            "format": "time",
            "nullable": true
          },
          "Days": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WintSalary.Deviations.TravelCompensationDay"
            },
            "description": "List of days with meal payment information.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents travel compensation information for a salary deviation."
      },
      "WintSalary.Deviations.TravelCompensationDay": {
        "type": "object",
        "properties": {
          "Date": {
            "type": "string",
            "description": "Date for which the meal payment information applies.",
            "format": "date-time"
          },
          "BreakfastPaid": {
            "type": "boolean",
            "description": "Indicates whether breakfast was paid for this day."
          },
          "LunchPaid": {
            "type": "boolean",
            "description": "Indicates whether lunch was paid for this day."
          },
          "DinnerPaid": {
            "type": "boolean",
            "description": "Indicates whether dinner was paid for this day."
          },
          "NightlyAllowancePaid": {
            "type": "boolean",
            "description": "Whether nightly allowance was paid by the company"
          }
        },
        "additionalProperties": false,
        "description": "Represents a day entry in travel compensation with meal payment information."
      },
      "WintSalary.ReApprovalInfo": {
        "type": "object",
        "properties": {
          "PersonId": {
            "type": "integer",
            "format": "int32"
          },
          "YearMonth": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "WintSalary.SalaryMonthMutationResultBase": {
        "type": "object",
        "properties": {
          "ReApprovalInfo": {
            "$ref": "#/components/schemas/WintSalary.ReApprovalInfo"
          },
          "UseCurrentMonthPlacement": {
            "type": "boolean",
            "description": "The placement the salary service actually stored, which is not always the one submitted: a sick\r\ndeviation continuing an existing period takes that period's placement so one illness pays on one\r\nmonth. Returned so a caller can tell the user its choice was overridden — otherwise the override\r\nis indistinguishable from success.\r\n\r\nReports the stored flag, not the resolved salary month: locked-month redirection moves a period\r\nvia `OverrideSalaryYearMonth` without touching this, so an opted-in deviation can still pay\r\non a later month than the flag implies. Only the inheritance override is reportable from here.\r\nSet only by the inheritance step, which runs before the merge — the merge predicate requires\r\nplacement equality, so a merge can never flip it. On a merge the returned id is the surviving\r\npre-existing deviation's, so a caller must not treat it as a newly created row to navigate to.\r\nPopulated on deviation creates only; null for the other five mutations sharing this base, which\r\nis why it is nullable and assigned after construction. Move it to a create-specific result\r\nrather than adding a second operation-specific field here — two makes this a bag of nulls.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WintSalary.SalaryMonthMutationResultOf_System.Guid": {
        "type": "object",
        "properties": {
          "Result": {
            "type": "string",
            "format": "uuid"
          },
          "ReApprovalInfo": {
            "$ref": "#/components/schemas/WintSalary.ReApprovalInfo"
          },
          "UseCurrentMonthPlacement": {
            "type": "boolean",
            "description": "The placement the salary service actually stored, which is not always the one submitted: a sick\r\ndeviation continuing an existing period takes that period's placement so one illness pays on one\r\nmonth. Returned so a caller can tell the user its choice was overridden — otherwise the override\r\nis indistinguishable from success.\r\n\r\nReports the stored flag, not the resolved salary month: locked-month redirection moves a period\r\nvia `OverrideSalaryYearMonth` without touching this, so an opted-in deviation can still pay\r\non a later month than the flag implies. Only the inheritance override is reportable from here.\r\nSet only by the inheritance step, which runs before the merge — the merge predicate requires\r\nplacement equality, so a merge can never flip it. On a merge the returned id is the surviving\r\npre-existing deviation's, so a caller must not treat it as a newly created row to navigate to.\r\nPopulated on deviation creates only; null for the other five mutations sharing this base, which\r\nis why it is nullable and assigned after construction. Move it to a create-specific result\r\nrather than adding a second operation-specific field here — two makes this a bag of nulls.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WintSalary.ScheduleWeek": {
        "required": [
          "Friday",
          "Monday",
          "Saturday",
          "Sunday",
          "Thursday",
          "Tuesday",
          "Wednesday",
          "Week"
        ],
        "type": "object",
        "properties": {
          "Week": {
            "maximum": 51,
            "minimum": 0,
            "type": "integer",
            "description": "Used to keep track of sort order",
            "format": "int32"
          },
          "Monday": {
            "maximum": 1440,
            "minimum": 0,
            "type": "integer",
            "description": "Expected minutes of work for Monday",
            "format": "int32"
          },
          "Tuesday": {
            "maximum": 1440,
            "minimum": 0,
            "type": "integer",
            "description": "Expected minutes of work for Tuesday",
            "format": "int32"
          },
          "Wednesday": {
            "maximum": 1440,
            "minimum": 0,
            "type": "integer",
            "description": "Expected minutes of work for Wednesday",
            "format": "int32"
          },
          "Thursday": {
            "maximum": 1440,
            "minimum": 0,
            "type": "integer",
            "description": "Expected minutes of work for Thursday",
            "format": "int32"
          },
          "Friday": {
            "maximum": 1440,
            "minimum": 0,
            "type": "integer",
            "description": "Expected minutes of work for Friday",
            "format": "int32"
          },
          "Saturday": {
            "maximum": 1440,
            "minimum": 0,
            "type": "integer",
            "description": "Expected minutes of work for Saturday",
            "format": "int32"
          },
          "Sunday": {
            "maximum": 1440,
            "minimum": 0,
            "type": "integer",
            "description": "Expected minutes of work for Sunday",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "A schedule week"
      },
      "WintSalary.WeekByWeekSchedule": {
        "required": [
          "ScheduleWeeks",
          "StandardWorkTime",
          "ValidFrom",
          "WorkRate"
        ],
        "type": "object",
        "properties": {
          "ValidFrom": {
            "type": "string",
            "description": "Defines from which date the schedule is valid",
            "format": "date"
          },
          "WorkRate": {
            "type": "number",
            "description": "Work rate for the schedule (e.g., 1 for full-time, 0.5 for half-time)",
            "format": "double"
          },
          "StandardWorkTime": {
            "type": "integer",
            "description": "Standard work time in minutes per week",
            "format": "int32"
          },
          "ScheduleWeeks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WintSalary.ScheduleWeek"
            },
            "description": "List of schedule weeks defining daily work minutes for each week",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a week by week"
      },
      "WintSalary.WintSalaryCompanySettings": {
        "type": "object",
        "properties": {
          "GrossSalaryChangeEnabled": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether gross salary changes are enabled for the company."
          }
        },
        "additionalProperties": false,
        "description": "Represents company-specific settings for salary management functionality."
      },
      "WintSalary.WintSalaryOptionallyRequiredFields": {
        "enum": [
          "VacationDays",
          "VacationCompensation",
          "Schedule",
          "MonthlyGrossSalary",
          "HourlyGrossSalary"
        ],
        "type": "string",
        "description": "Optionally required fields in Wint Salary system<br />1 - VacationDays, 2 - VacationCompensation, 4 - Schedule, 8 - MonthlyGrossSalary, 16 - HourlyGrossSalary"
      },
      "WintSalary.WintSalarySpecificSettings": {
        "required": [
          "SelectedSalaryType"
        ],
        "type": "object",
        "properties": {
          "AvailableSalaryTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WintSalary.WintSalaryType"
            },
            "description": "Available salary types",
            "nullable": true
          },
          "SelectedSalaryType": {
            "$ref": "#/components/schemas/WintSalary.WintSalaryType"
          },
          "VacationCompensation": {
            "maximum": 0.15,
            "minimum": 0.0043,
            "type": "number",
            "description": "Vacation compensation\r\nFor monthly salaries, this is typically between 0.0043 and 0.01 (0.43-1%).\r\nFor hourly employed, this is typically between 0.12 and 0.14 (12-14%).",
            "format": "double",
            "nullable": true
          },
          "HourlySalary": {
            "type": "number",
            "description": "Hourly gross salary. Null means the employee has no hourly rate.\r\nOnly present when the salary type uses hourly gross salary in event calculations.",
            "format": "double",
            "nullable": true
          },
          "Schedule": {
            "$ref": "#/components/schemas/WintSalary.WorkSchedule"
          },
          "TaxPercentage": {
            "type": "number",
            "description": "Percentage tax for the employee. If set it overrides the tax table.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Settings specific to Wint Salary system"
      },
      "WintSalary.WintSalaryType": {
        "required": [
          "Name",
          "OptionallyRequiredFields"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Name of salary type",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "Description of salary type",
            "nullable": true
          },
          "OptionallyRequiredFields": {
            "$ref": "#/components/schemas/WintSalary.WintSalaryOptionallyRequiredFields"
          }
        },
        "additionalProperties": false,
        "description": "Salary type (template group) in WintSalary"
      },
      "WintSalary.WorkSchedule": {
        "required": [
          "CurrentSchedule"
        ],
        "type": "object",
        "properties": {
          "FirstPossibleScheduleChangeDate": {
            "type": "string",
            "description": "The first date when a schedule change can take effect\r\nThis will be set to the 1:st of the current month, or the date when the last schedule started if that was later.",
            "format": "date",
            "nullable": true
          },
          "CurrentSchedule": {
            "$ref": "#/components/schemas/WintSalary.WeekByWeekSchedule"
          },
          "FutureSchedule": {
            "$ref": "#/components/schemas/WintSalary.WeekByWeekSchedule"
          }
        },
        "additionalProperties": false,
        "description": "Represents a work schedule with validity period, weekly schedules and the first possible date for a schedule change"
      },
      "YearAndMonth": {
        "type": "object",
        "properties": {
          "Year": {
            "maximum": 9998,
            "minimum": 1900,
            "type": "integer",
            "format": "int32",
            "example": 2026
          },
          "Month": {
            "maximum": 12,
            "minimum": 1,
            "type": "integer",
            "format": "int32",
            "example": 1
          }
        },
        "additionalProperties": false
      }
    }
  }
}