{
  "openapi" : "3.1.0",
  "info" : {
    "title" : "Procountor API",
    "description" : "Procountor API documentation",
    "version" : "26.07"
  },
  "externalDocs" : {
    "description" : "OpenAPI JSON",
    "url" : "https://pts-api.procountor.com/api/openapi.json"
  },
  "servers" : [ {
    "url" : "https://pts-api.procountor.com/api"
  } ],
  "security" : [ {
    "bearerAuth" : [ ]
  } ],
  "paths" : {
    "/webhooks/{uuid}" : {
      "put" : {
        "tags" : [ "Webhooks" ],
        "summary" : "Update a webhook.",
        "description" : "Allows to update webhook properties and subscriptions",
        "operationId" : "updateWebhook",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "Webhook UUID",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "description" : "Webhook data",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Webhook"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Webhook was successfully updated",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Webhook not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Webhooks" ],
        "summary" : "Delete a webhook.",
        "description" : "Removing the hook is equivalent to canceling all its subscriptions",
        "operationId" : "deleteWebhook",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "Webhook UUID",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Webhook was successfully deleted"
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Webhooks not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/users" : {
      "get" : {
        "tags" : [ "Users" ],
        "summary" : "Get the current user.",
        "description" : "Returns details of the currently logged in user based on the Access token. Use this endpoint for obtaining the companyId of the current environment.",
        "operationId" : "getCurrentUser",
        "responses" : {
          "200" : {
            "description" : "The user was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/User"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Users" ],
        "summary" : "Update user data.",
        "description" : "Endpoint for updating user information.",
        "operationId" : "updateUserInfo",
        "requestBody" : {
          "description" : "User data to update",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/User"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "202" : {
            "description" : "Request for confirmation updating user data sent successfully.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TransactionIdentifier"
                }
              }
            }
          },
          "400" : {
            "description" : "User information contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/users/{transactionIdentifier}/confirm" : {
      "put" : {
        "tags" : [ "Users" ],
        "summary" : "Confirmation of action with the given identifier.",
        "description" : "Confirm to make an action related to the given identifier.\n\nDEPRECATED: As this endpoint is not updating anything but it is used for getting 2-factor authentication action results,\nthen it is replaced by <b>GET /mfatransactionresult/{transactionIdentifier}</b>. This endpoint will be removed in\nProcountor release version 111.0 (API version 26.03) in March.\n",
        "operationId" : "confirm",
        "parameters" : [ {
          "name" : "transactionIdentifier",
          "in" : "path",
          "description" : "Transaction identifier to be verified before action performed",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Action performed successfully.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "202" : {
            "description" : "Transaction not confirmed yet.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "403" : {
            "description" : "Transaction not belong to the user or insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Element not found or request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "406" : {
            "description" : "Transaction rejected.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "408" : {
            "description" : "Transaction expired.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "409" : {
            "description" : "Transaction already processed.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        },
        "deprecated" : true
      }
    },
    "/referencepayments/{referencePaymentId}/metadata" : {
      "put" : {
        "tags" : [ "Reference payments" ],
        "summary" : "Allocate metadata to a reference payment",
        "operationId" : "allocateAllocationMetadata",
        "parameters" : [ {
          "name" : "referencePaymentId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AllocationMetadata"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Metadata allocated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "404" : {
            "description" : "Reference payment not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "400" : {
            "description" : "Metadata contains invalid data",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Reference payments" ],
        "summary" : "Delete the metadata for a reference payment",
        "operationId" : "deleteAllocationMetadata",
        "parameters" : [ {
          "name" : "referencePaymentId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Metadata deleted successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DataModel"
                }
              }
            }
          },
          "404" : {
            "description" : "Reference payment not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/products/{productId}" : {
      "get" : {
        "tags" : [ "Products" ],
        "summary" : "Get a product.",
        "description" : "Returns the requested product by its id. Also accepts multiple comma-separated ids. Max 200 ids per request.",
        "operationId" : "getProduct",
        "parameters" : [ {
          "name" : "includeLocalizations",
          "in" : "query",
          "description" : "Include localized product names.",
          "schema" : {
            "type" : "boolean",
            "default" : false
          },
          "example" : true
        }, {
          "name" : "productId",
          "in" : "path",
          "description" : "Id of the product",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "multi"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The product was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Product"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Product not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Products" ],
        "summary" : "Update a product.",
        "description" : "Updates a product and returns it.",
        "operationId" : "updateProduct",
        "parameters" : [ {
          "name" : "productId",
          "in" : "path",
          "description" : "Id of the product",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Product data",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Product"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "The product was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Product"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Product not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Products" ],
        "summary" : "Remove a product.",
        "description" : "Remove a product by given id and returns status code 204.",
        "operationId" : "removeProductById",
        "parameters" : [ {
          "name" : "productId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "The product was successfully removed.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          },
          "400" : {
            "description" : "The product with product type TRAVEL cannot be removed.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Product not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/products/{productId}/defaults/dimensions/{dimensionId}" : {
      "get" : {
        "tags" : [ "Products" ],
        "summary" : "Get default dimension of the product.",
        "description" : "Returns default dimension for a product with the given product and dimension ID.",
        "operationId" : "getDefaultDimension",
        "parameters" : [ {
          "name" : "productId",
          "in" : "path",
          "description" : "ID of the product",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "dimensionId",
          "in" : "path",
          "description" : "ID of the default dimension",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The product default dimension was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultDimension"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "No dimension found for given product and dimension id.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Products" ],
        "summary" : "Update default dimension of the product.",
        "description" : "Updates default dimension of the product with the given product and dimension ID.",
        "operationId" : "updateDefaultDimension",
        "parameters" : [ {
          "name" : "productId",
          "in" : "path",
          "description" : "ID of the product",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "dimensionId",
          "in" : "path",
          "description" : "ID of the default dimension",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Default dimension data to update",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DefaultDimension"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "The product default dimension was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultDimension"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "No dimension found for given product and dimension id.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/products/groups/{groupId}" : {
      "get" : {
        "tags" : [ "Products" ],
        "summary" : "Getting product group.",
        "description" : "Returns the requested product group by its id.",
        "operationId" : "getProductGroupByGroupId",
        "parameters" : [ {
          "name" : "groupId",
          "in" : "path",
          "description" : "Product group id",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The product group was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProductGroup"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Product group not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Products" ],
        "summary" : "Update a product group name.",
        "description" : "Updates a product group name and returns it.",
        "operationId" : "updateProductGroupName",
        "parameters" : [ {
          "name" : "groupId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Product group name to update",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ProductGroup"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "The product group name was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProductGroup"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Product group not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Products" ],
        "summary" : "Remove a product group.",
        "description" : "Remove a product group (except product group with TRAVEL type) by given id and returns status code 204.",
        "operationId" : "removeProductGroupById",
        "parameters" : [ {
          "name" : "groupId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "The product group was successfully removed.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          },
          "400" : {
            "description" : "The product group with product type TRAVEL cannot be removed.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Product group not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "409" : {
            "description" : "The product group cannot be removed, because it contains related products. Error message alsowill return list of product identifiers that are linked to product group.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/persons/{id}" : {
      "get" : {
        "tags" : [ "Persons" ],
        "summary" : "Get person data",
        "description" : "Returns requested person's data",
        "operationId" : "getPersonById",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Id of the person",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The person was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Person"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Person was not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Persons" ],
        "summary" : "Update a person.",
        "description" : "Updates a person and returns it.",
        "operationId" : "updatePerson",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Id of the person",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Person data to update",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Person"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Person was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Person"
                }
              }
            }
          },
          "400" : {
            "description" : "Person contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "No person found for given id.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/persons/{id}/defaults/dimensions/{dimensionId}" : {
      "get" : {
        "tags" : [ "Persons" ],
        "summary" : "Get a default dimension of a person.",
        "description" : "Returns default dimension for the given person and dimension ids.",
        "operationId" : "getPersonDefaultDimensionById",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Id of the person",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "dimensionId",
          "in" : "path",
          "description" : "Id of the default dimension",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The person default dimension was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultDimension"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "No person found for given person id or no dimension found for given person and dimension id.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Persons" ],
        "summary" : "Update default dimension of a person.",
        "description" : "Updates default dimension for a person with the given person and dimension ids.",
        "operationId" : "updateDefaultDimension_1",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Id of the person",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "dimensionId",
          "in" : "path",
          "description" : "Id of the default dimension",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Default dimension data to update",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DefaultDimension"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "The person default dimension was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultDimension"
                }
              }
            }
          },
          "400" : {
            "description" : "Default dimension contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "No person found for given person id or no dimension found for given person and dimension id.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/salaryslips/{id}" : {
      "get" : {
        "tags" : [ "Payrolls" ],
        "summary" : "Get a salary slip.",
        "description" : "Returns salary slip for given salary slip ID. Also accepts multiple comma-separated IDs. Max 200 IDs per request.",
        "operationId" : "getSalarySlipById",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the salary slip",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The salary slip was successfully returned (single object for one ID, array for multiple IDs).",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SalarySlip"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Salary slip not found. For batch requests, returned only if none of the requested IDs are found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Payrolls" ],
        "summary" : "Update salary slip.",
        "description" : "Updates salary slip and returns it. Only salary slips in state CREATED are supported in this endpoint.",
        "operationId" : "updateSalarySlip",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the salary slip",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "description" : "Salary slip data to update",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SalarySlip"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Salary slip was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SalarySlip"
                }
              }
            }
          },
          "400" : {
            "description" : "Salary slip contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "One of the resource: Salary slip, Pension contract, Accident insurance policy, Employment not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "409" : {
            "description" : "Salary slip data were modified by other client in meantime resulting in a conflict.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/salaryslips/{id}/cancelapproval" : {
      "put" : {
        "tags" : [ "Payrolls" ],
        "summary" : "Cancel salary slip approval.",
        "description" : "Cancels approval of salary slip by id and returns confirmation message. Salary slip approval can be canceled only if it is in APPROVED status.",
        "operationId" : "cancelSlipApproval",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the salary slip",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Salary slip approval was successfully canceled.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid salary slip.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Salary slip was not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/salaryslips/{id}/approve" : {
      "put" : {
        "tags" : [ "Payrolls" ],
        "summary" : "Approve salary slip.",
        "description" : "Approves salary slip by id and returns confirmation message. Salary slip can be approved only if it is in CREATED or IN_CORRECTION status.",
        "operationId" : "approveSlip",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the salary slip",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Salary slip was successfully approved.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid salary slip.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Salary slip was not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/salaryslips/{id}/accounting" : {
      "get" : {
        "tags" : [ "Payrolls" ],
        "summary" : "Get salary slip accounting.",
        "description" : "Returns salary slip accounting for given salary slip ID. Salary slip accounting is available only for at least APPROVED salary slips.",
        "operationId" : "getSalarySlipAccountingBySalarySlipId",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the salary slip",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The salary slip accounting was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SalarySlipAccounting"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Salary slip accounting not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Payrolls" ],
        "summary" : "Update salary slip accounting.",
        "description" : "Updates salary slip accounting and returns it. Use \"createReconciliation=true\" parameter to generate reconciliation row automatically.",
        "operationId" : "updateSalarySlipAccounting",
        "parameters" : [ {
          "name" : "createReconciliation",
          "in" : "query",
          "description" : "Enable automatic generation of reconciliation row",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        }, {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the salary slip",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "description" : "Salary slip accounting data to update",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SalarySlipAccounting"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Salary slip accounting was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SalarySlipAccounting"
                }
              }
            }
          },
          "400" : {
            "description" : "Salary slip accounting contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Salary slip accounting not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/employees/{id}/salaryinfo" : {
      "get" : {
        "tags" : [ "Employees" ],
        "summary" : "Get employee salary info.",
        "description" : "Returns employee salary info for given employee ID.",
        "operationId" : "getSalaryInfoByEmployeeId",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the employee",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The employee salary info was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SalaryInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Employee not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Employees" ],
        "summary" : "Update employee salary info.",
        "description" : "Updates an employee salary info and returns it. Automatically updates salary base for employee based on salary info data.",
        "operationId" : "updateSalaryInfo",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the employee",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "description" : "Salary info data to update",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SalaryInfo"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Employee salary info was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SalaryInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "Salary info contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "One of the resource: Employee, Pension contract, Accident insurance policy not found for given ID.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "409" : {
            "description" : "Salary info data were modified by other client in meantime resulting in a conflict.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/employees/{id}/salaryinfo/taxcards/{taxCardId}" : {
      "get" : {
        "tags" : [ "Employees" ],
        "summary" : "Get employee tax card.",
        "description" : "Returns employee tax cards for given employee ID and tax card ID.",
        "operationId" : "getTaxCardByIdAndEmployeeId",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the employee",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "taxCardId",
          "in" : "path",
          "description" : "ID of the tax card",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Tax card was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TaxCard"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Tax card not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Employees" ],
        "summary" : "Update an employee tax card.",
        "description" : "Updates an employee tax card and returns it. Automatically recreates salary base for employee.",
        "operationId" : "updateTaxCard",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Id of the employee",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "taxCardId",
          "in" : "path",
          "description" : "Id of the tax card",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "description" : "Tax card data to update",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/TaxCard"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Tax card was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TaxCard"
                }
              }
            }
          },
          "400" : {
            "description" : "Tax card contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Tax card not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "409" : {
            "description" : "Tax card data were modified by other client in meantime resulting in a conflict.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Employees" ],
        "summary" : "Delete an employee tax card.",
        "description" : "Deletes an employee tax card. Automatically recreates salary base for employee.",
        "operationId" : "deleteTaxCard",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Id of the employee",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "taxCardId",
          "in" : "path",
          "description" : "Id of the tax card",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Tax card was successfully deleted."
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Tax card not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/employees/{id}/salaryinfo/laborunionmemberships/{laborUnionMembershipId}" : {
      "get" : {
        "tags" : [ "Employees" ],
        "summary" : "Get employee labor union membership.",
        "description" : "Returns employee labor union membership for given labor union membership ID and employee ID.",
        "operationId" : "getLaborUnionMembershipById",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the employee",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "laborUnionMembershipId",
          "in" : "path",
          "description" : "ID of the labor union membership",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Labor union membership was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LaborUnionMembership"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Labor union membership not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Employees" ],
        "summary" : "Update employee labor union membership.",
        "description" : "Updates an employee labor union membership and returns it. Automatically recreates salary base for employee.",
        "operationId" : "updateLaborUnionMembership",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the employee",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "laborUnionMembershipId",
          "in" : "path",
          "description" : "ID of the labor union membership",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "description" : "Labor union membership data to update",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/LaborUnionMembership"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Labor union membership was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LaborUnionMembership"
                }
              }
            }
          },
          "400" : {
            "description" : "Labor union membership contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Labor union membership or labor union setting not found for given ID.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "409" : {
            "description" : "Labor union membership data were modified by other client in the meantime resulting in a conflict.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Employees" ],
        "summary" : "Delete an employee labor union membership.",
        "description" : "Deletes an employee labor union membership. Automatically recreates salary base for employee.",
        "operationId" : "deleteLaborUnionMembership",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the employee",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "laborUnionMembershipId",
          "in" : "path",
          "description" : "ID of the labor union membership",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Labor union membership was successfully deleted."
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Labor union membership not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/employees/{id}/salaryinfo/employments/{employmentId}" : {
      "get" : {
        "tags" : [ "Employees" ],
        "summary" : "Get employee employment.",
        "description" : "Returns employee employment for given employment ID and employee ID.",
        "operationId" : "getEmploymentByIdAndEmployeeId",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the employee",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "employmentId",
          "in" : "path",
          "description" : "ID of the employment",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Employment was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Employment"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Employment not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Employees" ],
        "summary" : "Update an employee employment.",
        "description" : "Updates an employee employment and returns it.",
        "operationId" : "updateEmployment",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the employee",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "employmentId",
          "in" : "path",
          "description" : "ID of the employment",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "description" : "Employment data to update",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Employment"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Employment was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Employment"
                }
              }
            }
          },
          "400" : {
            "description" : "Employment contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Employment not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "409" : {
            "description" : "Employment data were modified by other client in meantime resulting in a conflict.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Employees" ],
        "summary" : "Delete an employee employment.",
        "description" : "Deletes an employee employment.",
        "operationId" : "deleteEmployment",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the employee",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "employmentId",
          "in" : "path",
          "description" : "ID of the employment",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Employment was successfully deleted."
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Employment not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/employees/{id}/salarybase" : {
      "get" : {
        "tags" : [ "Employees" ],
        "summary" : "Get employee salary base.",
        "description" : "Returns employee salary base for given employee ID.",
        "operationId" : "getSalaryBaseByEmployeeId",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the employee",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The employee salary base was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SalaryBase"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Employee salary base not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Employees" ],
        "summary" : "Update employee salary base.",
        "description" : "Updates employee salary base for given employee ID.",
        "operationId" : "updateSalaryBaseByEmployeeId",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the employee",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "description" : "Salary base data to update",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SalaryBase"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "The employee salary base was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SalaryBase"
                }
              }
            }
          },
          "400" : {
            "description" : "Salary base contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Employee salary base not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "409" : {
            "description" : "Salary base data were modified by other client in meantime resulting in a conflict.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payments/{transactionIdentifier}/confirm" : {
      "put" : {
        "tags" : [ "Payments" ],
        "summary" : "Confirmation of action with the given identifier.",
        "description" : "Confirm to make an action related to the given identifier.\n\nDEPRECATED: As this endpoint is not updating anything but it is used for getting 2-factor authentication action results,\nthen it is replaced by <b>GET /mfatransactionresult/{transactionIdentifier}</b>\n",
        "operationId" : "confirm_1",
        "parameters" : [ {
          "name" : "transactionIdentifier",
          "in" : "path",
          "description" : "2-factor transaction identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Action performed successfully.<br> The response model depends on the transaction type that was requested to confirm: <br><b>1. For creating direct bank transfers</b> (POST /payments/directbanktransfers):   <b>PaymentSummaries</b> <br><b>2. For paying invoices</b> (POST /payments):   <b>InvoicePaymentSummaries</b> <br><b>3. For canceling a payment</b> (PUT /payments/{paymentId}/cancel):   <b>InfoMessage</b> <br><b>4. For deleting a payment</b> (DELETE /payments/{paymentId}):   <b>InfoMessage</b>",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaymentsConfirmationResponseModels"
                },
                "examples" : {
                  "Example response for creating direct bank transfers" : {
                    "description" : "Example response for creating direct bank transfers",
                    "value" : {
                      "transactions" : [ {
                        "paymentId" : 8,
                        "customId" : "test123"
                      }, {
                        "paymentId" : 9,
                        "customId" : null
                      } ]
                    }
                  },
                  "Example response for paying invoices" : {
                    "description" : "Example response for paying invoices",
                    "value" : {
                      "transactions" : [ {
                        "paymentId" : 8,
                        "invoiceId " : "123"
                      } ]
                    }
                  },
                  "Example response for cancelling or removing payment" : {
                    "description" : "Example response for cancelling or removing payment",
                    "value" : {
                      "message " : "Action success"
                    }
                  }
                }
              }
            }
          },
          "202" : {
            "description" : "Transaction not confirmed yet and transaction identifier returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "403" : {
            "description" : "Transaction not belong to the user, insufficient payment user rights or payment in a wrong status.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Element not found or request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "406" : {
            "description" : "Transaction rejected. End user rejected the transaction.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "408" : {
            "description" : "Transaction expired. Expiration time: 5 minutes.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "409" : {
            "description" : "Transaction already processed.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        },
        "deprecated" : true
      }
    },
    "/payments/{paymentId}/cancel" : {
      "put" : {
        "tags" : [ "Payments" ],
        "summary" : "Cancel a payment.",
        "description" : "Cancel a payment which is ready to be paid but not paid yet. Salary payment method is not supported.",
        "operationId" : "cancelPayment",
        "parameters" : [ {
          "name" : "paymentId",
          "in" : "path",
          "description" : "Payment identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "202" : {
            "description" : "Request for confirmation of cancel payment sent successfully and transaction identifier returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TransactionIdentifier"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights or payment in a wrong status.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Payment not found or request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payments/directsalarypayments/{transactionIdentifier}/confirm" : {
      "put" : {
        "tags" : [ "Payments" ],
        "summary" : "Confirmation of action with the given identifier. Supports only Finnish environments.",
        "description" : "Confirm to make an action related to the given identifier.\n\nDEPRECATED: As this endpoint is not updating anything but it is used for getting 2-factor authentication action results,\nthen it is replaced by <b>GET /mfatransactionresult/{transactionIdentifier}</b>\n",
        "operationId" : "confirm_2",
        "parameters" : [ {
          "name" : "transactionIdentifier",
          "in" : "path",
          "description" : "2-factor transaction identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Action performed successfully.<br> The response model depends on the transaction type that was requested to confirm: <br><b>1. For creating direct salary payments</b> (POST /payments/directsalarypayments): <b>PaymentGroup</b> <br><b>2. For canceling a payment</b> (PUT /payments/directsalarypayments/{paymentlistId}/cancel): <b>InfoMessage</b>",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DirectSalaryPaymentsConfirmationResponseModels"
                },
                "examples" : {
                  "Example response for creating direct salary payments" : {
                    "description" : "Example response for creating direct salary payments",
                    "value" : {
                      "id" : 7,
                      "listName" : "string",
                      "created" : "2019-09-06T08:10:03.6800681",
                      "status" : "PAYMENT_QUEUED",
                      "paymentMethod" : "FINNISH_SALARY_TRANSFER",
                      "paymentDate" : "2024-09-07T01:00:00",
                      "payerBankAccount" : "FI0000000000000001",
                      "totalSum" : 10,
                      "customId" : "string",
                      "payments" : [ {
                        "paymentId" : 14,
                        "customId" : "string"
                      } ]
                    }
                  },
                  "Example response for cancelling payments" : {
                    "description" : "Example response for cancelling payments",
                    "value" : {
                      "message " : "Payments were successfully canceled"
                    }
                  }
                }
              }
            }
          },
          "202" : {
            "description" : "Transaction not confirmed yet and transaction identifier returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "403" : {
            "description" : "Transaction not belong to the user, insufficient payment user rights or payment in a wrong status.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Element not found or request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "406" : {
            "description" : "Transaction rejected.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "408" : {
            "description" : "Transaction expired.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "409" : {
            "description" : "Transaction already processed.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        },
        "deprecated" : true
      }
    },
    "/payments/directsalarypayments/{paymentListId}/cancel" : {
      "put" : {
        "tags" : [ "Payments" ],
        "summary" : "Cancel direct salary payments. Supports only Finnish environments.",
        "description" : "Canceling direct salary payments are possible only if all payments can be canceled.",
        "operationId" : "cancelDirectSalaryPayments",
        "parameters" : [ {
          "name" : "paymentListId",
          "in" : "path",
          "description" : "ID of the payment list",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 1234
        } ],
        "responses" : {
          "202" : {
            "description" : "Request for canceling direct salary payments sent successfully and transaction identifier returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TransactionIdentifier"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights or payments are already being processed.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Payment list with given id not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/ledgerreceipts/{receiptId}" : {
      "get" : {
        "tags" : [ "Ledger receipts" ],
        "summary" : "Get a ledger receipt.",
        "description" : "Returns the requested ledger receipt. Also accepts multiple comma-separated ids. Max 200 ids per request.Supported ledger receipt types are journals, sales invoice ledger receipts, travel invoice ledger receipts, expense invoice ledger receipts, purchase ledger invoice receipts, VAT form ledger receipts, salary ledger receipts, employer contribution ledger receipts, purchase order ledger receipts, sales order ledger receipts, bank statement as a receipt ledger receipts, receipt for opening the accounts ledger receipts, reference payment ledger receipts, tracking period opening receipt ledger receipts, self-assessed tax ledger receipts and VAT summary ledger receipts.",
        "operationId" : "getLedgerReceipt",
        "parameters" : [ {
          "name" : "receiptId",
          "in" : "path",
          "description" : "Ledger receipt identifier",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "multi"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Ledger receipt was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LedgerReceipt"
                }
              }
            }
          },
          "404" : {
            "description" : "Ledger receipt not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Ledger receipts" ],
        "summary" : "Update a ledger receipt.",
        "description" : "Supported ledger receipt types are journals, sales invoice ledger receipts, travel invoice ledger receipts, expense invoice ledger receipts and purchase ledger invoice receipts. For defining the ledger accounts, dimensions, VAT status or other accounting information for an invoice, use this endpoint.Use \"createReconciliation=true\" parameter to generate reconciliation row automatically. See Transaction model for more details",
        "operationId" : "updateLedgerReceipt",
        "parameters" : [ {
          "name" : "createReconciliation",
          "in" : "query",
          "description" : "Enable automatic generation of reconciliation row",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        }, {
          "name" : "receiptId",
          "in" : "path",
          "description" : "Ledger receipt identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Ledger receipt data to update",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/LedgerReceipt"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Ledger receipt was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LedgerReceipt"
                }
              }
            }
          },
          "400" : {
            "description" : "Ledger receipt contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Ledger receipt could not be updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/ledgerreceipts/{receiptId}/unfinished" : {
      "put" : {
        "tags" : [ "Ledger receipts" ],
        "summary" : "Set specified receipt to unfinished state.",
        "description" : "Receipt can be set as unfinished only if it's fiscal year and it's accounting period are open. Supported receipt types: JOURNAL.",
        "operationId" : "markLedgerReceiptAsUnfinished",
        "parameters" : [ {
          "name" : "receiptId",
          "in" : "path",
          "description" : "Ledger receipt identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The receipt was successfully marked as unfinished.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights or receipt in closed fiscal year.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Receipt not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/ledgerreceipts/{receiptId}/transactions/{transactionId}/dimensions" : {
      "put" : {
        "tags" : [ "Ledger receipts" ],
        "summary" : "Update a ledger receipt's single transaction dimensions.",
        "description" : "Supported ledger receipt types are journals, sales invoice ledger receipts, travel invoice ledger receipts, expense invoice ledger receipts and purchase ledger invoice receipts. Existing dimensions will be replaces with the requested. If empty list provided then dimensions will be removed from transaction. Transactions with dimensions data can be replaced by calling PUT /ledgerreceipts endpoint",
        "operationId" : "updateLedgerReceiptTransactionDimensions",
        "parameters" : [ {
          "name" : "receiptId",
          "in" : "path",
          "description" : "Ledger receipt identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "transactionId",
          "in" : "path",
          "description" : "Transaction identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Dimension items values to set for the given transaction",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DimensionItemValueList"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Dimensions were successfully updated for the transaction.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LedgerReceipt"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "No access to dimensions.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Ledger receipt could not be updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/ledgerreceipts/{receiptId}/invalidate" : {
      "put" : {
        "tags" : [ "Ledger receipts" ],
        "summary" : "Invalidate specified receipt",
        "description" : "Receipt can be invalidated only if it's fiscal year and it's accounting period are open. Supported receipt types: JOURNAL.",
        "operationId" : "markLedgerReceiptAsInvalidated",
        "parameters" : [ {
          "name" : "receiptId",
          "in" : "path",
          "description" : "Ledger receipt identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The receipt was successfully invalidated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights or receipt in closed fiscal year.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Receipt not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/ledgerreceipts/{receiptId}/approve" : {
      "put" : {
        "tags" : [ "Ledger receipts" ],
        "summary" : "Approve a ledger receipt.",
        "description" : "Receipt can be set as approved only if it's status is UNFINISHED. Supported receipt types: JOURNAL.",
        "operationId" : "approveInvoice",
        "parameters" : [ {
          "name" : "receiptId",
          "in" : "path",
          "description" : "Ledger receipt identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The receipt was successfully marked as approved.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights or invalid receipt status.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Receipt not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/{transactionIdentifier}/confirm" : {
      "put" : {
        "tags" : [ "Invoices" ],
        "summary" : "Confirmation of action with the given identifier.",
        "description" : "Confirm to make an action related to the given identifier.\n\nDEPRECATED: As this endpoint is not updating anything but it is used for getting 2-factor authentication action results,\nthen it is replaced by <b>GET /mfatransactionresult/{transactionIdentifier}</b>\n",
        "operationId" : "confirm_3",
        "parameters" : [ {
          "name" : "transactionIdentifier",
          "in" : "path",
          "description" : "Transaction identifier to be verified before action performed",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Action performed successfully.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "202" : {
            "description" : "Transaction not confirmed yet.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "403" : {
            "description" : "Transaction not belong to the user, insufficient payment user rights or payment in a wrong status.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Element not found or request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "406" : {
            "description" : "Transaction rejected.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "408" : {
            "description" : "Transaction expired.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "409" : {
            "description" : "Transaction already processed.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        },
        "deprecated" : true
      }
    },
    "/invoices/{invoiceId}" : {
      "get" : {
        "tags" : [ "Invoices" ],
        "summary" : "Get an invoice.",
        "description" : "Returns the requested invoice. Also accepts multiple comma-separated ids. Max 200 ids per request.Supports expense (bill of charges), purchase, purchase order, sales, sales order, self-assessed tax and travel invoices.",
        "operationId" : "getInvoice",
        "parameters" : [ {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "ID of the invoice",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "multi"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The invoice was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Invoice"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Invoices" ],
        "summary" : "Update an invoice.",
        "description" : "Supports sales and sales order invoices in unfinished state, and expense claim, purchase, purchase order and travel invoices in unfinished and received states. Note that modifying invoice tax, discount, currency, accounting or row information can cause the adjoined ledger receipt to be recreated with a new ID. <br/><br/> The `version` field is also required for this endpoint.",
        "operationId" : "updateInvoice",
        "parameters" : [ {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "Invoice identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Invoice data",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Invoice"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "The invoice was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Invoice"
                }
              }
            }
          },
          "400" : {
            "description" : "Invoice contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice to update not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/{invoiceId}/verify" : {
      "put" : {
        "tags" : [ "Invoices" ],
        "summary" : "Verify an invoice.",
        "description" : "Supports purchase, travel and expense invoices. Configure invoice circulation settings in the Procountor environment before using this.",
        "operationId" : "verifyInvoice",
        "parameters" : [ {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "ID of the invoice",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Checking event data",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CheckingEvent"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The invoice was successfully verified.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights or invalid invoice status.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/{invoiceId}/unfinished" : {
      "put" : {
        "tags" : [ "Invoices" ],
        "summary" : "Set specified invoice to unfinished state.",
        "description" : "Invoice can be set as unfinished only if it's fiscal year and it's accounting period are open. Supported invoice types: BILL_OF_CHARGES, PURCHASE_INVOICE, SALES_INVOICE, TRAVEL_INVOICE.",
        "operationId" : "markInvoiceAsUnfinished",
        "parameters" : [ {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "ID of the invoice",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The invoice was successfully marked as unfinished.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights or invoice in closed fiscal year.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/{invoiceId}/send" : {
      "put" : {
        "tags" : [ "Invoices" ],
        "summary" : "Send a sales invoice to customer.",
        "description" : "Supports sales invoices. Only invoices with status as 'NOT_SENT' and 'SENT' can be send.",
        "operationId" : "send",
        "parameters" : [ {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "ID of the invoice",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Request to send the invoice processed correctly.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights, invalid invoice status or not supported invoice type.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/{invoiceId}/sendToCirculation" : {
      "put" : {
        "tags" : [ "Invoices" ],
        "summary" : "Send an invoice to circulation.",
        "description" : "Supports travel, expense and purchase invoices. Invoice circulation needs to be configured and enabled in Procountor settings. For travel and expanse invoices it marks invoice status as 'RECEIVED' when it is in 'UNFINISHED' status.",
        "operationId" : "sendToCirculation",
        "parameters" : [ {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "ID of the invoice",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The invoice was successfully send to circulation.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights, invalid invoice status or empty list of approvers when invoice circulation is enabled.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice not found or the user has no rights to view invoices.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/{invoiceId}/reject" : {
      "put" : {
        "tags" : [ "Invoices" ],
        "summary" : "Set specified invoice to rejected state / payment denied.",
        "description" : "Invoice can be set as rejected only if it's fiscal year and it's accounting period are open. Supports purchase, sales, travel and expense (bill of charges) invoices.",
        "operationId" : "rejectInvoice",
        "parameters" : [ {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "ID of the invoice",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Optional comment",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CheckingEvent"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The invoice was successfully rejected.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "403" : {
            "description" : "Invoice status cannot be changed.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice not found or insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/{invoiceId}/paymentevents/markpaid" : {
      "put" : {
        "tags" : [ "Invoices" ],
        "summary" : "Mark as paid.",
        "description" : "Mark payment events as paid. Supported invoice types: SALES_INVOICE, PURCHASE_INVOICE, TRAVEL_INVOICE, SALARY, PERIODIC_TAX_RETURN, BILL_OF_CHARGES. Payment event should always be requested with an invoice currency. In case if currency on the invoice and in the environment are different, amount is converted to environment currency using currency rate from the invoice.",
        "operationId" : "markInvoiceAsPaid",
        "parameters" : [ {
          "name" : "addPenalExpense",
          "in" : "query",
          "description" : "Supported only for SALES_INVOICE type. Default is false. When marking the overdue sales invoice as paid, if you want to automatically include a penal expense in the business partner's next sales invoice, then call the endpoint with addPenalExpense=true. Automatic handling of collection and penal costs setting must be enabled prior to this and penal expense product must be already defined.",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "Invoice identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Mark invoice as paid data",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/MarkInvoiceAsPaid"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Request to mark invoice as paid processed correctly.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaymentEvent"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights or invoice in wrong status.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/{invoiceId}/notes" : {
      "put" : {
        "tags" : [ "Invoices" ],
        "summary" : "Update notes for the specified invoice.",
        "description" : "The notes of an invoice can be modified regardless of the invoice status. Supported invoice types: BILL_OF_CHARGES, PURCHASE_INVOICE, SALES_INVOICE, TRAVEL_INVOICE.",
        "operationId" : "addNotesToInvoice",
        "parameters" : [ {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "ID of the invoice",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Invoice notes data",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/InvoiceNotes"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "The invoice notes were successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data or invoice type not supported.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice not found or insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/{invoiceId}/invalidate" : {
      "put" : {
        "tags" : [ "Invoices" ],
        "summary" : "Set specified invoice to invalidated state.",
        "description" : "Invoice can be set as invalidated only if it's fiscal year and it's accounting period are open. Supported invoice types: BILL_OF_CHARGES, PURCHASE_INVOICE, SALES_INVOICE, TRAVEL_INVOICE.",
        "operationId" : "markInvoiceAsInvalidated",
        "parameters" : [ {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "ID of the invoice",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The invoice was successfully marked as invalidated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights or invoice in closed fiscal year.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/{invoiceId}/comments/{commentId}/read" : {
      "put" : {
        "tags" : [ "Invoices" ],
        "summary" : "Marks comment as read.",
        "description" : "Sets the invoice comment as read by current user. Supported invoice types are TRAVEL_INVOICE, BILL_OF_CHARGES and PURCHASE_INVOICE.",
        "operationId" : "setCommentReadByUser",
        "parameters" : [ {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "ID of the invoice",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "commentId",
          "in" : "path",
          "description" : "ID of the comment",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Comment marked as read.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "400" : {
            "description" : "Only tagged user can mark comment as read.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "No access rights to invoice discussion.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Comment not found for invoice.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/{invoiceId}/approve" : {
      "put" : {
        "tags" : [ "Invoices" ],
        "summary" : "Approve an invoice.",
        "description" : "Supports purchase, travel, expense and sales invoices. Configure invoice circulation settings in the Procountor environment before using this. Note that for sales invoice comment will be ignored.",
        "operationId" : "approveInvoice_1",
        "parameters" : [ {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "ID of the invoice",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "updateInventory",
          "in" : "query",
          "description" : "Enable inventory management update",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        } ],
        "requestBody" : {
          "description" : "Checking event data",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CheckingEvent"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The invoice was successfully approved.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights or invalid invoice status.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/integrations/{requestId}" : {
      "get" : {
        "tags" : [ "Integrations" ],
        "summary" : "Returns API integration request information.",
        "description" : "Returns information on companies wanting to activate the integration. User sending the request must belong to the company that contains API Integrator tool. requestId must be valid. If it has expired, 410 error is returned. It's possible to activate integration for multiple companies using the same requestId.  Information returned in extraInfo depends on the fields marked as required for user consent in the integration specification.",
        "operationId" : "getIntegrationRequest",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "description" : "Id of the API integration request",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The API integration request data was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiIntegrationRequestData"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "API integration request not found or request was made from different environment than specification was made.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "410" : {
            "description" : "Integration request has expired.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Integrations" ],
        "summary" : "Approves or rejects api integration requests.",
        "description" : "To approve and/or reject integration activation request. User sending the request must belong to the company that contains API Integrator tool.\n\nRequest parameter requestId must be valid. If it has expired, 410 error is returned.\n\nThe number of companyId in request body in approve and reject combined must match the number of companyId returned in\nGET /integrations/{requestId} response in companiesToIntegrate. Otherwise, 400 is returned.\n\nIf the request is successful, a technical user with the 'API technical user' role is added to all the approved companies,\nand an API key for the technical user is generated and returned. If the technical user already belonged to the approved environment\n(i.e. it was added manually via the 'old' way), its existing API key is returned.\n",
        "operationId" : "updateIntegrationRequest",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "description" : "Id of the API integration request",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ApiIntegrationApproveRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "The API integration request was successfully approved/rejected.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiIntegrationApproveResult"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data, for example companies IDs doesn't match to the API integration request definition.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "API integration request not found or request was made from different environment than specification was made.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "410" : {
            "description" : "Integration request has expired.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/fiscalyears/{fiscalYearId}/trackingPeriods/{trackingPeriodId}" : {
      "put" : {
        "tags" : [ "Fiscal years" ],
        "summary" : "Update fiscal years.",
        "description" : "Currently, the only allowed operation is to change tracking period status from open to pending.",
        "operationId" : "updateFiscalYear",
        "parameters" : [ {
          "name" : "fiscalYearId",
          "in" : "path",
          "description" : "Fiscal year Id",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "trackingPeriodId",
          "in" : "path",
          "description" : "Tracking period Id",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Fiscal year tracking period data",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/TrackingPeriod"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Fiscal period was successfully marked as pending.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Fiscal period not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "409" : {
            "description" : "The request could not be completed due to a conflict with the current state of the resource.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/dimensions/{dimensionId}" : {
      "get" : {
        "tags" : [ "Dimensions" ],
        "summary" : "Get a dimension with dimension items.",
        "description" : "Returns a specified dimension with its dimension items.",
        "operationId" : "getDimension",
        "parameters" : [ {
          "name" : "dimensionId",
          "in" : "path",
          "description" : "Dimension identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Dimensions were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Dimension"
                }
              }
            }
          },
          "403" : {
            "description" : "No access right to dimensions.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Dimension not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Dimensions" ],
        "summary" : "Update dimension.",
        "description" : "This endpoint allows to update a dimension name",
        "operationId" : "updateDimension",
        "parameters" : [ {
          "name" : "dimensionId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DimensionName"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "The dimension was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DimensionName"
                }
              }
            }
          },
          "400" : {
            "description" : "The dimension contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Dimension could not be found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/dimensions/{dimensionId}/items" : {
      "put" : {
        "tags" : [ "Dimensions" ],
        "summary" : "Update item in dimension.",
        "description" : "This endpoint modifies an item for dimension identified by id.",
        "operationId" : "updateDimensionItem",
        "parameters" : [ {
          "name" : "dimensionId",
          "in" : "path",
          "description" : "Dimension identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Dimension item data",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DimensionItem"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "The dimension was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DimensionItem"
                }
              }
            }
          },
          "400" : {
            "description" : "The dimension item contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Dimension or dimension item could not be found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Dimensions" ],
        "summary" : "Create a new item for dimension.",
        "description" : "This endpoint creates a new item for dimension identified by id.",
        "operationId" : "addDimensionItem",
        "parameters" : [ {
          "name" : "dimensionId",
          "in" : "path",
          "description" : "Dimension identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Dimension item data",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DimensionItem"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "The dimension was successfully created.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DimensionItem"
                }
              }
            }
          },
          "400" : {
            "description" : "The dimension item contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Dimension item could not be found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/company" : {
      "get" : {
        "tags" : [ "Company" ],
        "summary" : "Get current company info.",
        "description" : "Returns basic information of the currently logged in company.",
        "operationId" : "getCompanyInfo",
        "responses" : {
          "200" : {
            "description" : "Company info was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Company"
                }
              }
            }
          },
          "403" : {
            "description" : "No access right to company information.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Company info is not available.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Company" ],
        "summary" : "Update a company info.",
        "description" : "Updates basic information of the current company.",
        "operationId" : "updateCompanyInfo",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Company"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Company info was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "400" : {
            "description" : "Company info contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Company info is not available.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/businesspartners/{id}" : {
      "get" : {
        "tags" : [ "Business partners" ],
        "summary" : "Get a business partner.",
        "description" : "Endpoint returns BusinessPartner for given id with all details. Also accepts multiple comma-separated ids. Max 200 ids per request.",
        "operationId" : "getBusinessPartner",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the business partner",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "multi"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The partner was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BusinessPartner"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Partner not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Business partners" ],
        "summary" : "Update a business partner.",
        "description" : "PUT /businesspartners/<id> replaces all the details of an existing business partner. Use PATCH /businesspartners/<id> if you need the previous functionality to update values of specific fields only.",
        "operationId" : "putBusinessPartner",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Business partner identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Business partner data to update",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BusinessPartner"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Business partner was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BusinessPartner"
                }
              }
            }
          },
          "400" : {
            "description" : "Business partner contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "No partner found for given id.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "patch" : {
        "tags" : [ "Business partners" ],
        "summary" : "Update a business partner.",
        "description" : "Supported customer and supplier business partners. The fields that are supported are: id, name, type (CUSTOMER and SUPPLIER only), address (but NOT billing address nor delivery address), invoicing info and payment info. To update a partner, it's required to provide version, which is the last modification time. It can be provided as query param or in request body.",
        "operationId" : "updateBusinessPartner",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Business partner identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "version",
          "in" : "query",
          "description" : "Business partner last modification time. It is required if not filled in the request body.",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "Business partner data to update",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BusinessPartner"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Business partner was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          },
          "400" : {
            "description" : "Business partner contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "No partner found for given id.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/businesspartners/{id}/defaults/dimensions/{dimensionId}" : {
      "get" : {
        "tags" : [ "Business partners" ],
        "summary" : "Get default dimension of business partner.",
        "description" : "Returns default dimension for a business partner with the given partner and dimension ID.",
        "operationId" : "getDefaultDimension_1",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the business partner",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "dimensionId",
          "in" : "path",
          "description" : "ID of the default dimension",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The partner default dimension was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultDimension"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "No dimension found for given partner and dimension id.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Business partners" ],
        "summary" : "Update default dimension of business partner.",
        "description" : "Updates default dimension for a business partner with the given partner and dimension ID.",
        "operationId" : "updateDefaultDimension_2",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the business partner",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "dimensionId",
          "in" : "path",
          "description" : "ID of the default dimension",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Default dimension data to update",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DefaultDimension"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "The partner default dimension was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultDimension"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "No dimension found for given partner and dimension id.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/businesspartners/groups/{id}" : {
      "get" : {
        "tags" : [ "Business partners" ],
        "summary" : "Get business partners group.",
        "description" : "Returns business partner group with requested group ID.",
        "operationId" : "getPartnerGroup",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the partner group",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Business partner group were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BusinessPartnerGroup"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Partner group not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Business partners" ],
        "summary" : "Update a business partner group.",
        "description" : "Update a business partner group data.",
        "operationId" : "updateBusinessPartnerGroup",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Business partner group identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Business partner group data to update",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BusinessPartnerGroup"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Business partner group was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BusinessPartnerGroup"
                }
              }
            }
          },
          "400" : {
            "description" : "Business partner group contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "No business partner group found for given id.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/bankstatements/{statementId}/events/{eventId}/products" : {
      "put" : {
        "tags" : [ "Bank statements" ],
        "summary" : "Allocate a product to a bank statement event.",
        "description" : "Using this endpoint you can update already assigned product to the bank statement event by sending bank statement identifier, event identifier and new product identifier.",
        "operationId" : "allocateProductToEvent",
        "parameters" : [ {
          "name" : "statementId",
          "in" : "path",
          "description" : "ID of the statement",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "eventId",
          "in" : "path",
          "description" : "ID of the event",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "integer",
                "format" : "int32",
                "description" : "ID of the product"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Product allocated to an event successfully.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "400" : {
            "description" : "Bank statement event doesn't belong to the given statement or request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Product, event or statement not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Bank statements" ],
        "summary" : "Delete allocation of a product from a bank statement event.",
        "description" : "This endpoint can be used to remove already allocated product from the event by sending bank statement identifier and event identifier.",
        "operationId" : "deleteProductAllocationFromEvent",
        "parameters" : [ {
          "name" : "statementId",
          "in" : "path",
          "description" : "ID of the statement",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "eventId",
          "in" : "path",
          "description" : "ID of the event",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Product unallocated successfully."
          },
          "400" : {
            "description" : "Bank statement event doesn't belong to the given statement",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Event or statement not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/bankstatements/{statementId}/events/{eventId}/metadata" : {
      "put" : {
        "tags" : [ "Bank statements" ],
        "summary" : "Allocate metadata to a bank statement event.",
        "operationId" : "allocateAllocationMetadata_1",
        "parameters" : [ {
          "name" : "statementId",
          "in" : "path",
          "description" : "ID of the statement",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "eventId",
          "in" : "path",
          "description" : "ID of the event",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AllocationMetadata"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Metadata allocated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "404" : {
            "description" : "Bank statement not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "400" : {
            "description" : "Bank statement event doesn't belong to the given statement or metadata contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Bank statements" ],
        "summary" : "Delete the metadata for a bank statement event.",
        "operationId" : "deleteAllocationMetadata_1",
        "parameters" : [ {
          "name" : "statementId",
          "in" : "path",
          "description" : "ID of the statement",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "eventId",
          "in" : "path",
          "description" : "ID of the event",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Metadata deleted successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DataModel"
                }
              }
            }
          },
          "400" : {
            "description" : "Bank statement event doesn't belong to the given statement",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Bank statement event payment not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/bankstatements/{statementId}/events/{eventId}/invoices" : {
      "put" : {
        "tags" : [ "Bank statements" ],
        "summary" : "Allocate an invoice to a bank statement event.",
        "description" : "Using this endpoint you can update already assigned invoice to the bank statement event by sending bank statement identifier, event identifier and new invoice identifier. Supported invoice types: SALES_INVOICE, PURCHASE_INVOICE, TRAVEL_INVOICE, BILL_OF_CHARGES, PERIODIC_TAX_RETURN.",
        "operationId" : "allocateInvoiceToEvent",
        "parameters" : [ {
          "name" : "addPenalExpense",
          "in" : "query",
          "description" : "Supported only for SALES_INVOICE type. Default is false. When allocation the overdue sales invoice to bank statement, if you want to automatically include a penal expense in the business partner's next sales invoice, then call the endpoint with addPenalExpense=true. Automatic handling of collection and penal costs setting must be enabled prior to this and penal expense product must be already defined.",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "statementId",
          "in" : "path",
          "description" : "ID of the statement",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "eventId",
          "in" : "path",
          "description" : "ID of the event",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "integer",
                "format" : "int32",
                "description" : "ID of the invoice"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Invoice allocated to an event successfully.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "400" : {
            "description" : "Bank statement event doesn't belong to the given statement or request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice, event or statement not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Bank statements" ],
        "summary" : "Delete allocation of a invoice from a bank statement event.",
        "description" : "This endpoint can be used to remove already allocated invoice from the event by sending bank statement identifier and event identifier. Note that removing the allocation will not remove the payment event from the invoice. The payment transaction needs to be removed manually",
        "operationId" : "deleteInvoiceAllocationFromEvent",
        "parameters" : [ {
          "name" : "statementId",
          "in" : "path",
          "description" : "ID of the statement",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "eventId",
          "in" : "path",
          "description" : "ID of the event",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Invoice unallocated from bank statement event successfully."
          },
          "400" : {
            "description" : "Bank statement event doesn't belong to the given statement or event is not allocated to any invoice.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Event or statement not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/bankaccounts/{id}" : {
      "get" : {
        "tags" : [ "Bank accounts" ],
        "summary" : "Get the bank account information.",
        "description" : "This endpoint returns detailed information about the bank account with given id.",
        "operationId" : "getBankAccount",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the bank account",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The bank account was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CompanyBankAccount"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Bank account not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Bank accounts" ],
        "summary" : "Update company bank account.",
        "description" : "Endpoint for updating company bank account. Returns updated bank information.",
        "operationId" : "updateBankAccount",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Bank account identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Account information to save",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CompanyBankAccount"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "The bank account was successfully updated.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CompanyBankAccount"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Bank account not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "409" : {
            "description" : "Bank account already in use.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/webhooks" : {
      "get" : {
        "tags" : [ "Webhooks" ],
        "summary" : "Search for webhooks.",
        "description" : "Return a pageable list containing webhooks and subscriptions",
        "operationId" : "getWebhooks",
        "parameters" : [ {
          "name" : "url",
          "in" : "query",
          "description" : "Webhook url",
          "schema" : {
            "type" : "string",
            "format" : "url"
          },
          "example" : "https://www.procountor.com/webhooks"
        }, {
          "name" : "eventType",
          "in" : "query",
          "description" : "Webhook subscription type",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "multi",
              "enum" : [ "INVOICE_PAYMENT_CREATED", "DIRECTBANKDATATRANSFER_PAYMENT_CREATED", "INVOICE_PAYMENTEVENTS_DELETED", "PAYMENT_UPDATED", "PAYMENT_DELETED", "USER_UPDATED", "DIRECT_SALARY_PAYMENTS_CREATED", "DIRECT_SALARY_PAYMENTS_CANCELED" ]
            }
          },
          "example" : "INVOICE_PAYMENT_CREATED"
        }, {
          "name" : "orderByCreatedDate",
          "in" : "query",
          "description" : "Order the results by webhook creation date",
          "schema" : {
            "type" : "string",
            "default" : "DESC",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200
          },
          "example" : 20
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for the results",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 2
        } ],
        "responses" : {
          "200" : {
            "description" : "Webhooks successfully returned",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WebhookSearchResult"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Webhooks" ],
        "summary" : "Add new webhook.",
        "description" : "Webhooks allows to subscribe to chosen resource and getting information about this resource state change",
        "operationId" : "addWebhook",
        "requestBody" : {
          "description" : "Webhook data",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Webhook"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Webhook was successfully created",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CreatedWebhookResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/se/factoringcontracts" : {
      "get" : {
        "tags" : [ "Factoring contracts" ],
        "summary" : "Get factoring contract. Support agreements for Swedish environments.",
        "description" : "Allows to get all factoring contracts for the current company.",
        "operationId" : "getBasicFactoringContracts",
        "responses" : {
          "200" : {
            "description" : "Factoring contract was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BasicFactoringContract"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights or external financing has not been enabled for your company.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Factoring contracts" ],
        "summary" : "Add new factoring contract. Supports only Swedish environments.",
        "description" : "Allows to add new factoring contract and use it on sales invoices.",
        "operationId" : "addFactoringContract",
        "requestBody" : {
          "description" : "Factoring contract data",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BasicFactoringContract"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Factoring contract was successfully created.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BasicFactoringContract"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/reports/ledgeraccounts" : {
      "post" : {
        "tags" : [ "Reports" ],
        "summary" : "Get ledger accounts report.",
        "description" : "Returns a report generated on the basis of the given parameters.",
        "operationId" : "getLedgerAccountsReport",
        "requestBody" : {
          "description" : "Request data for report",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/LedgerAccountsReportRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Report successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LedgerAccountsReportResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/reports/generalledger/{id}" : {
      "post" : {
        "tags" : [ "Reports" ],
        "summary" : "Get general ledger report.",
        "description" : "Returns a report generated on the basis of the given parameters.",
        "operationId" : "getGeneralLedgerReport",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Ledger account code identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Request data for report",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/GeneralLedgerReportRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Report successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/GeneralLedgerReportResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/reports/accounting" : {
      "post" : {
        "tags" : [ "Reports" ],
        "summary" : "Get accounting reports.",
        "description" : "Returns a report generated on the basis of the given parameters.",
        "operationId" : "getAccountingReport",
        "requestBody" : {
          "description" : "Request data for report",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AccountingReportRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Report successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AccountingReportResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/products" : {
      "get" : {
        "tags" : [ "Products" ],
        "summary" : "Get all products",
        "description" : "Returns a paginated list of products in the current environment, starting from \"previousId\" limited by \"size\". with a metadata about the pagination.",
        "operationId" : "getProducts",
        "parameters" : [ {
          "name" : "name",
          "in" : "query",
          "description" : "Name of product matched by substring.",
          "schema" : {
            "type" : "string"
          },
          "example" : "product"
        }, {
          "name" : "previousId",
          "in" : "query",
          "description" : "Previous Id for pagination",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 123456
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200
          },
          "example" : 20
        }, {
          "name" : "orderById",
          "in" : "query",
          "description" : "Order the results by product ID",
          "schema" : {
            "type" : "string",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "orderByVersion",
          "in" : "query",
          "description" : "Order the results by product version",
          "schema" : {
            "type" : "string",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "group",
          "in" : "query",
          "description" : "Id of product group.",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "integer",
              "format" : "multi"
            }
          },
          "example" : 1
        }, {
          "name" : "type",
          "in" : "query",
          "description" : "Register type of product. If not given, then SALES and PURCHASE returned as default",
          "schema" : {
            "type" : "string",
            "enum" : [ "SALES", "PURCHASE", "TRAVEL" ]
          },
          "example" : "TRAVEL"
        }, {
          "name" : "code",
          "in" : "query",
          "description" : "Custom code assigned by the owner of the product. Matched by substring.",
          "schema" : {
            "type" : "string",
            "maxLength" : 40
          },
          "example" : 123
        }, {
          "name" : "startDate",
          "in" : "query",
          "description" : "Start date of activity period. Used by TRAVEL type only. Used to search all travel product which are in active state after that date (expiration date is after that date).",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-08-31"
        }, {
          "name" : "endDate",
          "in" : "query",
          "description" : "End date of activity period. Used by TRAVEL type only. Used to search all travel product which were activated before that date (start date is before that date).",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-08-31"
        }, {
          "name" : "includeLocalizations",
          "in" : "query",
          "description" : "Include localized product names",
          "schema" : {
            "type" : "boolean",
            "default" : false
          },
          "example" : true
        }, {
          "name" : "active",
          "in" : "query",
          "description" : "Status of product",
          "schema" : {
            "type" : "boolean"
          },
          "example" : true
        }, {
          "name" : "versionStartDate",
          "in" : "query",
          "description" : "Start date of the search (product updated date)",
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          },
          "example" : "2018-08-13T00:00:00"
        }, {
          "name" : "versionEndDate",
          "in" : "query",
          "description" : "End date of the search (product updated date)",
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          },
          "example" : "2018-08-13T00:00:00"
        } ],
        "responses" : {
          "200" : {
            "description" : "The products were successfully returned",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProductSearchResult"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Products" ],
        "summary" : "Add a new product.",
        "description" : "Create a new product and returns it.",
        "operationId" : "addProduct",
        "requestBody" : {
          "description" : "Product data",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Product"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "The product was successfully created.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Product"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/products/groups" : {
      "get" : {
        "tags" : [ "Products" ],
        "summary" : "Get product groups by product type.",
        "description" : "Endpoint for getting groups whose meet search criteria.",
        "operationId" : "getProductGroups",
        "parameters" : [ {
          "name" : "type",
          "in" : "query",
          "description" : "Product type. Endpoint will return product groups for types: SALES and PURCHASE when user will not specify type.",
          "schema" : {
            "type" : "string",
            "enum" : [ "SALES", "PURCHASE", "TRAVEL" ]
          },
          "example" : "SALES"
        } ],
        "responses" : {
          "200" : {
            "description" : "Product groups were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProductGroups"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Products" ],
        "summary" : "Add a product group name.",
        "description" : "Adds a product group name and returns it.",
        "operationId" : "addProductGroupName",
        "requestBody" : {
          "description" : "Product group data to add",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ProductGroup"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "The product group name was successfully added.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProductGroup"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/persons" : {
      "get" : {
        "tags" : [ "Persons" ],
        "summary" : "Get the list of persons matching search criteria.",
        "description" : "Returns the list of persons with basic information: id, lastname, firstname, address, identifier, identifierType and personNumber.",
        "operationId" : "getPersons",
        "parameters" : [ {
          "name" : "name",
          "in" : "header",
          "description" : "Name of person (combined as lastname, firstname) matched by substring",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : "Name"
        }, {
          "name" : "identifier",
          "in" : "header",
          "description" : "Identifier of the person (SSN) or business identifier\n\nAlso partial - search matches returned.\n",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : "181175-5962"
        }, {
          "name" : "personNumber",
          "in" : "query",
          "description" : "Person number\n\nAlso partial - search matches returned.\n",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : 100015
        }, {
          "name" : "mainPersonGroup",
          "in" : "query",
          "description" : "Main group name of type PERSON\n\nOnly exact - search match returned.\n",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : "Main Group"
        }, {
          "name" : "personGroupId",
          "in" : "query",
          "description" : "Unique identifier of Business Partner Group of type PERSON",
          "required" : false,
          "schema" : {
            "type" : "integer"
          },
          "example" : 123456
        }, {
          "name" : "includeInactive",
          "in" : "query",
          "description" : "Include inactive persons",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200,
            "minimum" : 1
          },
          "example" : 20
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for the results",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0,
            "minimum" : 0
          },
          "example" : 2
        }, {
          "name" : "orderById",
          "in" : "query",
          "description" : "Order the results by Person ID",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "DESC",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        } ],
        "responses" : {
          "200" : {
            "description" : "List of persons was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PersonSearchResult"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Persons" ],
        "summary" : "Create a new person.",
        "description" : "Creates a new person and returns it.",
        "operationId" : "insertPerson",
        "requestBody" : {
          "description" : "Person data to insert",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Person"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Person was successfully created.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Person"
                }
              }
            }
          },
          "400" : {
            "description" : "Person contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/salarylists" : {
      "get" : {
        "tags" : [ "Payrolls" ],
        "summary" : "Get salary lists matching search criteria.",
        "description" : "Returns salary lists.",
        "operationId" : "getSalaryLists",
        "parameters" : [ {
          "name" : "paymentPeriodStart",
          "in" : "query",
          "description" : "Payment period start date",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2020-01-01"
        }, {
          "name" : "paymentPeriodEnd",
          "in" : "query",
          "description" : "Payment period end date",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2020-12-31"
        }, {
          "name" : "name",
          "in" : "query",
          "description" : "Name of the salary list matched by substring",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : 2020
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200,
            "minimum" : 1
          },
          "example" : 20
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for the results",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0,
            "minimum" : 0
          },
          "example" : 2
        }, {
          "name" : "orderById",
          "in" : "query",
          "description" : "Order the results by salary list ID",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "DESC",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        } ],
        "responses" : {
          "200" : {
            "description" : "Salary lists were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SalaryListSearchResult"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Payrolls" ],
        "summary" : "Creates a new salary list.",
        "description" : "Creates a new salary list with salary slips and returns it.",
        "operationId" : "insertSalaryList",
        "requestBody" : {
          "description" : "Salary list data to insert",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/NewSalaryList"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Salary list was successfully created.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SalaryList"
                }
              }
            }
          },
          "400" : {
            "description" : "Salary list contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Employee not found for given id. No yearly figures found for payday's year.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/employees/{id}/salaryinfo/taxcards" : {
      "get" : {
        "tags" : [ "Employees" ],
        "summary" : "Find list of employee tax cards.",
        "description" : "Returns all employee tax cards for given employee ID.",
        "operationId" : "getTaxCardsForEmployee",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the employee",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Tax cards were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/TaxCard"
                  }
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Employee not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Employees" ],
        "summary" : "Create a new employee tax card.",
        "description" : "Creates a new employee tax card and returns it. Automatically recreates salary base for employee.",
        "operationId" : "insertTaxCard",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Id of the employee",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "description" : "Tax card data to insert",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/TaxCard"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Tax card was successfully created.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TaxCard"
                }
              }
            }
          },
          "400" : {
            "description" : "Tax card contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Employee not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/employees/{id}/salaryinfo/laborunionmemberships" : {
      "get" : {
        "tags" : [ "Employees" ],
        "summary" : "Get employee labor union memberships.",
        "description" : "Returns employee labor union memberships for given employee ID.",
        "operationId" : "getLaborUnionMemberShipByEmployeeId",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the employee",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Employee labor union memberships were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/LaborUnionMembership"
                  }
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Employee not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Employees" ],
        "summary" : "Create a new labor union membership.",
        "description" : "Creates a new labor union membership and returns it. Automatically recreates salary base for employee.",
        "operationId" : "insertLaborUnionMembership",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the employee",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "description" : "Labor union membership data to insert",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/LaborUnionMembership"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Labor union membership was successfully created.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LaborUnionMembership"
                }
              }
            }
          },
          "400" : {
            "description" : "Labor union membership contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Employee or labor union setting not found for given ID.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/employees/{id}/salaryinfo/employments" : {
      "get" : {
        "tags" : [ "Employees" ],
        "summary" : "Get employee employments.",
        "description" : "Returns employee employments for given employee ID.",
        "operationId" : "getEmploymentsByEmployeeId",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the employee",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Employments were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Employment"
                  }
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Employee not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Employees" ],
        "summary" : "Create a new employment for employee.",
        "description" : "Creates a new employment for employee and returns it.",
        "operationId" : "insertEmployment",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the employee",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "description" : "Employment data to insert",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Employment"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Employment was successfully created.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Employment"
                }
              }
            }
          },
          "400" : {
            "description" : "Employment contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Employee not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/employees/salaryinfo" : {
      "post" : {
        "tags" : [ "Employees" ],
        "summary" : "Create a new employee salary info.",
        "description" : "Creates a new employee salary info and returns it. Automatically creates salary base for employee based on salary info data.",
        "operationId" : "insertSalaryInfo",
        "requestBody" : {
          "description" : "Salary info data to insert",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SalaryInfo"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Employee salary info was successfully created.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SalaryInfo"
                }
              }
            }
          },
          "400" : {
            "description" : "Salary info contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "One of the resource: Person, Pension contract, Accident insurance policy not found for given ID.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payments" : {
      "get" : {
        "tags" : [ "Payments" ],
        "summary" : "Get payment transactions.",
        "description" : "Returns all payment transactions that match the request criteria.",
        "operationId" : "getPaymentRows",
        "parameters" : [ {
          "name" : "startDate",
          "in" : "query",
          "description" : "Start date of the search (value date).",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-08-31"
        }, {
          "name" : "endDate",
          "in" : "query",
          "description" : "End date of the search (value date).",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-08-31"
        }, {
          "name" : "invoiceId",
          "in" : "query",
          "description" : "Unique invoice identifier(s).",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "integer",
              "format" : "multi"
            }
          },
          "example" : 123456
        }, {
          "name" : "previousId",
          "in" : "query",
          "description" : "Previous payment ID for pagination.",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 123456
        }, {
          "name" : "orderById",
          "in" : "query",
          "description" : "Order the results by payment ID.",
          "schema" : {
            "type" : "string",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200
          },
          "example" : 20
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for the results",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 2
        } ],
        "responses" : {
          "200" : {
            "description" : "The payment transactions were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaymentSearchResult"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Payments" ],
        "summary" : "Pay invoices.",
        "description" : "All of the invoices have to be valid in order to pay. If paying one of the invoices fails, none of the invoices will be paid.The payer bank account has to be predefined in the environment to be able to use the payment.",
        "externalDocs" : {
          "description" : "Information about adding bank accounts in Procountor.",
          "url" : "https://help.procountor.fi/en/articles/531687-bank-account-information"
        },
        "operationId" : "payInvoices",
        "requestBody" : {
          "description" : "Contains a list of invoices to be paid and additional information connected with payment, like payment method, recipient bank account etc.",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/InvoicePaymentList"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "202" : {
            "description" : "Request for pay invoices sent successfully and transaction identifier returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TransactionIdentifier"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Some of invoices not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payments/directsalarypayments" : {
      "get" : {
        "tags" : [ "Payments" ],
        "summary" : "Get salary payment transactions. Supports only Finnish environments.",
        "description" : "Returns all salary payment transactions that match the request criteria.",
        "operationId" : "searchSalaryPaymentGroups",
        "parameters" : [ {
          "name" : "startDate",
          "in" : "query",
          "description" : "Start date of the search (create date).",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-08-31"
        }, {
          "name" : "endDate",
          "in" : "query",
          "description" : "End date of the search (create date).",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-08-31"
        }, {
          "name" : "name",
          "in" : "query",
          "description" : "The list name to use when searching for salary payments groups",
          "schema" : {
            "type" : "string"
          },
          "example" : "abc"
        }, {
          "name" : "previousId",
          "in" : "query",
          "description" : "Previous payment ID for pagination.",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 123456
        }, {
          "name" : "customId",
          "in" : "query",
          "description" : "custom ID of the payment list",
          "schema" : {
            "type" : "string"
          },
          "example" : "123abc"
        }, {
          "name" : "orderById",
          "in" : "query",
          "description" : "Order the results by payment ID.",
          "schema" : {
            "type" : "string",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200
          },
          "example" : 20
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for the results",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 2
        } ],
        "responses" : {
          "200" : {
            "description" : "The salary payment transactions were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DirectSalaryPaymentGroupBaseInfoSearchResult"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Payments" ],
        "summary" : "Create direct salary payments. Supports only Finnish environments.",
        "description" : "Creates direct salary payments with given data.",
        "operationId" : "createDirectSalaryPayments",
        "requestBody" : {
          "description" : "Contains data for direct salary payments to be created",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DirectSalaryPayments"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "202" : {
            "description" : "Request for creating direct salary payments sent successfully and transaction identifier returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TransactionIdentifier"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Some of required data not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payments/directbanktransfers" : {
      "post" : {
        "tags" : [ "Payments" ],
        "summary" : "Create direct bank transfers.",
        "description" : "Creates direct bank transfers with given data.",
        "operationId" : "createDirectBankTransfers",
        "requestBody" : {
          "description" : "Contains a list of direct bank transfer to be created",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DirectBankTransferList"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "202" : {
            "description" : "Request for creating direct bank transfers sent successfully and transaction identifier returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TransactionIdentifier"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Some of required data not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/ledgerreceipts" : {
      "get" : {
        "tags" : [ "Ledger receipts" ],
        "summary" : "Search ledger receipts.",
        "description" : "Search ledger receipts. Returns a list containing basic information for the receipts. The receiptID in each result entry can be used to fetch complete receipt details with the GET /ledgerereceipts/{receiptId} endpoint. Supported ledger receipt types are journals, sales invoice ledger receipts, travel invoice ledger receipts, expense invoice ledger receipts, purchase ledger invoice receipts, VAT form ledger receipts, salary ledger receipts, employer contribution ledger receipts, purchase order ledger receipts, sales order ledger receipts, bank statement as a receipt ledger receipts, receipt for opening the accounts ledger receipts, reference payment ledger receipts, tracking period opening receipt ledger receipts, self-assessed tax ledger receipts and VAT summary ledger receipts.",
        "operationId" : "searchLedgerReceipt",
        "parameters" : [ {
          "name" : "startDate",
          "in" : "query",
          "description" : "Start date of the search (ledger receipt date)",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-08-31"
        }, {
          "name" : "endDate",
          "in" : "query",
          "description" : "End date of the search (ledger receipt date)",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-08-31"
        }, {
          "name" : "createdStartDate",
          "in" : "query",
          "description" : "Start date of the search (ledger created date)",
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          },
          "example" : "2016-08-31T00:00:00"
        }, {
          "name" : "createdEndDate",
          "in" : "query",
          "description" : "End date of the search (ledger created date)",
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          },
          "example" : "2016-12-31T00:00:00"
        }, {
          "name" : "versionStartDate",
          "in" : "query",
          "description" : "Start date of the search (ledger updated date)",
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          },
          "example" : "2016-08-31T00:00:00"
        }, {
          "name" : "versionEndDate",
          "in" : "query",
          "description" : "End date of the search (ledger updated date)",
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          },
          "example" : "2016-12-31T00:00:00"
        }, {
          "name" : "types",
          "in" : "query",
          "description" : "Ledger receipt types",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "multi",
              "enum" : [ "JOURNAL", "PURCHASE_INVOICE", "SALES_INVOICE", "PERIODIC_TAX_RETURN", "TRAVEL_INVOICE", "BILL_OF_CHARGES", "VAT_FORM", "SALARY", "EMPLOYER_CONTRIBUTION", "PURCHASE_ORDER", "SALES_ORDER", "BANK_STATEMENT_AS_RECEIPT", "RECEIPT_FOR_OPENING_ACCOUNTS", "REFERENCE_PAYMENT", "TRACKING_PERIOD_OPENING_RECEIPT" ]
            }
          },
          "example" : "JOURNAL"
        }, {
          "name" : "previousId",
          "in" : "query",
          "description" : "Previous Id for pagination",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 123456
        }, {
          "name" : "orderById",
          "in" : "query",
          "description" : "Order the results by ledger receipt ID",
          "schema" : {
            "type" : "string",
            "default" : "DESC",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "orderByDate",
          "in" : "query",
          "description" : "Order the results by date",
          "schema" : {
            "type" : "string",
            "default" : "DESC",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "orderByCreated",
          "in" : "query",
          "description" : "Order the results by created date",
          "schema" : {
            "type" : "string",
            "default" : "DESC",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "orderByVersion",
          "in" : "query",
          "description" : "Order the results by version (updated date)",
          "schema" : {
            "type" : "string",
            "default" : "DESC",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200
          },
          "example" : 20
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for the results",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 2
        }, {
          "name" : "status",
          "in" : "query",
          "description" : "Ledger receipt status",
          "schema" : {
            "type" : "string"
          },
          "example" : "UNFINISHED"
        } ],
        "responses" : {
          "200" : {
            "description" : "Ledger receipts were successfully found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LedgerReceiptSearchResult"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Ledger receipts" ],
        "summary" : "Create a new ledger receipt.",
        "description" : "Endpoint to create a new ledger receipt. Supports journal type ledger receipts. Use \"createReconciliation=true\" parameter to generate reconciliation row automatically. See Transaction model for more details",
        "operationId" : "saveLedgerReceipt",
        "parameters" : [ {
          "name" : "createReconciliation",
          "in" : "query",
          "description" : "Enable automatic generation of reconciliation row",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        } ],
        "requestBody" : {
          "description" : "Ledger receipt data to save",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/LedgerReceipt"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Ledger receipt was successfully saved.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LedgerReceipt"
                }
              }
            }
          },
          "400" : {
            "description" : "Ledger receipt contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Ledger receipt could not be saved.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices" : {
      "get" : {
        "tags" : [ "Invoices" ],
        "summary" : "Search invoices.",
        "description" : "Search invoices. Returns a list containing basic information for the invoices. The ID in each result entry can be used to fetch complete invoice details with the GET /invoices/{invoiceId} endpoint. Supports purchase, purchase order, sales, sales order, self-assessed tax, travel and expense (bill of charges) invoices.",
        "operationId" : "searchInvoice",
        "parameters" : [ {
          "name" : "status",
          "in" : "query",
          "description" : "Invoice status",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "multi",
              "enum" : [ "EMPTY", "UNFINISHED", "NOT_SENT", "SENT", "RECEIVED", "PAID", "PAYMENT_DENIED", "VERIFIED", "APPROVED", "INVALIDATED", "PAYMENT_QUEUED", "PARTLY_PAID", "PAYMENT_SENT_TO_BANK", "MARKED_PAID", "STARTED", "INVOICED", "OVERRIDDEN", "DELETED", "UNSAVED", "PAYMENT_TRANSACTION_REMOVED" ]
            }
          },
          "example" : "UNFINISHED"
        }, {
          "name" : "startDate",
          "in" : "query",
          "description" : "Start date of the search (invoice billing date)",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-08-31"
        }, {
          "name" : "endDate",
          "in" : "query",
          "description" : "End date of the search (invoice billing date)",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-08-31"
        }, {
          "name" : "createdStartDate",
          "in" : "query",
          "description" : "Start date of the search (invoice created date)",
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          },
          "example" : "2016-08-31T00:00:00"
        }, {
          "name" : "createdEndDate",
          "in" : "query",
          "description" : "End date of the search (invoice created date)",
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          },
          "example" : "2016-12-31T00:00:00"
        }, {
          "name" : "versionStartDate",
          "in" : "query",
          "description" : "Start date of the search (invoice updated date)",
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          },
          "example" : "2016-08-31T00:00:00"
        }, {
          "name" : "versionEndDate",
          "in" : "query",
          "description" : "End date of the search (invoice updated date)",
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          },
          "example" : "2016-12-31T00:00:00"
        }, {
          "name" : "dueStartDate",
          "in" : "query",
          "description" : "Start date of the search (invoice due date)",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-08-31"
        }, {
          "name" : "dueEndDate",
          "in" : "query",
          "description" : "End date of the search (invoice due date)",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-12-31"
        }, {
          "name" : "types",
          "in" : "query",
          "description" : "Invoice types. Supports more than one invoice status, separated by comma",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "multi",
              "enum" : [ "PERIODIC_TAX_RETURN", "PURCHASE_INVOICE", "PURCHASE_ORDER", "SALES_INVOICE", "SALES_ORDER", "TRAVEL_INVOICE", "BILL_OF_CHARGES" ]
            }
          },
          "example" : "SALES_INVOICE"
        }, {
          "name" : "businessPartnerId",
          "in" : "query",
          "description" : "Search invoices with given business partner ID",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 123456
        }, {
          "name" : "factoringContractId",
          "in" : "query",
          "description" : "Search invoices with given factoring contract Id",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 123456
        }, {
          "name" : "originalInvoiceNumber",
          "in" : "query",
          "description" : "Search invoices with given original invoice number",
          "schema" : {
            "type" : "string"
          },
          "example" : 123456
        }, {
          "name" : "invoiceNumber",
          "in" : "query",
          "description" : "Search invoices with given invoice number",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 123456
        }, {
          "name" : "productId",
          "in" : "query",
          "description" : "Search invoices containing a row with the given product ID. Supports multiple values separated by comma. Maximum 200 values.",
          "explode" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "integer",
              "format" : "int32"
            }
          },
          "example" : 123456
        }, {
          "name" : "searchTerm",
          "in" : "query",
          "description" : "Search invoices by searchTerm. Allows searching by counterpartyAddress.name, invoiceNumber and additionalInformation.",
          "schema" : {
            "type" : "string"
          },
          "example" : "Name1"
        }, {
          "name" : "isOffer",
          "in" : "query",
          "description" : "Search invoices with given isOffer value. Supported only for SALES_ORDER type.",
          "schema" : {
            "type" : "boolean",
            "default" : false
          },
          "example" : true
        }, {
          "name" : "previousId",
          "in" : "query",
          "description" : "Previous invoice ID for pagination",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 123456
        }, {
          "name" : "orderById",
          "in" : "query",
          "description" : "Order the results by invoice ID",
          "schema" : {
            "type" : "string",
            "default" : "DESC",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "orderByDate",
          "in" : "query",
          "description" : "Order the results by date",
          "schema" : {
            "type" : "string",
            "default" : "DESC",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "orderByCreated",
          "in" : "query",
          "description" : "Order the results by created date",
          "schema" : {
            "type" : "string",
            "default" : "DESC",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "orderByVersion",
          "in" : "query",
          "description" : "Order the results by version (updated date)",
          "schema" : {
            "type" : "string",
            "default" : "DESC",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200
          },
          "example" : 20
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for the results",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 2
        }, {
          "name" : "invoiceChannel",
          "in" : "query",
          "description" : "Invoice channel",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "multi",
              "enum" : [ "EMAIL", "MAIL", "ELECTRONIC_INVOICE", "EDIFACT", "PAPER_INVOICE", "NO_SENDING" ]
            }
          },
          "example" : "EMAIL"
        } ],
        "responses" : {
          "200" : {
            "description" : "Invoices were successfully found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InvoiceSearchResult"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Invoices" ],
        "summary" : "Create a new invoice.",
        "description" : "Supports expense claim, purchase, sales, sales order, purchase order and travel invoices.",
        "operationId" : "saveInvoice",
        "parameters" : [ {
          "name" : "addCollectionPenalCosts",
          "in" : "query",
          "description" : "Supported only for SALES_INVOICE type. Default is false. If true, automatically adds the collection cost(s), if payment reminders were sent earlier to the business partner and/or penal cost, if the business partner had paid the earlier invoice late. These costs are added only if Automatic handling of collection and penal costs setting is enabled, and collection costs product and penal expense product have been defined.",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "requestBody" : {
          "description" : "Invoice data",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Invoice"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "The invoice was successfully saved.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Invoice"
                }
              }
            }
          },
          "400" : {
            "description" : "Invoice contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice could not be saved.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/{invoiceId}/comments" : {
      "get" : {
        "tags" : [ "Invoices" ],
        "summary" : "Get invoice comments.",
        "description" : "Returns comments for the given invoice. Supported invoice types: TRAVEL_INVOICE, BILL_OF_CHARGES and PURCHASE_INVOICE.",
        "operationId" : "getInvoiceComments",
        "parameters" : [ {
          "name" : "readByAllTaggedUsers",
          "in" : "query",
          "description" : "If true, only those comments that have tagged users and comments have been read by all tagged users are returned. Comments without tagged users aren't returned. If false, only those comments that have tagged users but comments have not been read by all tagged users are returned. Comments without tagged users aren't returned.",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "ID of the invoice",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The invoice was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Comments"
                }
              }
            }
          },
          "403" : {
            "description" : "No access rights to invoice discussion.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice could not be found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Invoices" ],
        "summary" : "Adds comment to invoice.",
        "description" : "Add comment to an invoice identified by id. Supported invoice types: TRAVEL_INVOICE, BILL_OF_CHARGES and PURCHASE_INVOICE",
        "operationId" : "saveInvoiceComment",
        "parameters" : [ {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "ID of the invoice",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "description" : "Comment data",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Comment"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Invoice was successfully commented.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Comment"
                }
              }
            }
          },
          "400" : {
            "description" : "Comment was not posted in a valid format.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "No access rights to invoice discussion.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice could not be found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/factoringcontracts" : {
      "get" : {
        "tags" : [ "Factoring contracts" ],
        "summary" : "Get factoring contract. Supports only Finnish environments.",
        "description" : "Allows to get all new factoring contract for company.",
        "operationId" : "getFactoringContracts",
        "parameters" : [ {
          "name" : "financingCompanyId",
          "in" : "query",
          "description" : "The factoring company code to use when searching for factoring contracts.",
          "schema" : {
            "type" : "string"
          },
          "example" : "AK"
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200
          },
          "example" : 20
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for the results",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 2
        } ],
        "responses" : {
          "200" : {
            "description" : "Factoring contract was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FactoringContractSearchResult"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights or external financing has not been enabled for your company.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Factoring contracts" ],
        "summary" : "Add new factoring contract. Supports only Finnish environments.",
        "description" : "Allows to add new factoring contract and use it on sales invoices.",
        "operationId" : "addFactoringContract_1",
        "requestBody" : {
          "description" : "Factoring contract data",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/FactoringContract"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Factoring contract was successfully created.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FactoringContract"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/businesspartners" : {
      "get" : {
        "tags" : [ "Business partners" ],
        "summary" : "Finds business partners matching search criteria.",
        "description" : "Returns basic information: register id, name, billing address, id, customer no, partner type, active/inactive.\n\nThis endpoint supports name and identifier parameters in HTTP header.",
        "operationId" : "searchBusinessPartners",
        "parameters" : [ {
          "name" : "identifierType",
          "in" : "query",
          "description" : "Business identifier type of the partner",
          "schema" : {
            "type" : "string"
          },
          "example" : "FN"
        }, {
          "name" : "customerNumber",
          "in" : "query",
          "description" : "Customer number",
          "schema" : {
            "type" : "string"
          },
          "example" : 100015
        }, {
          "name" : "mainGroup",
          "in" : "query",
          "description" : "Main group",
          "schema" : {
            "type" : "string"
          },
          "example" : "Main"
        }, {
          "name" : "partnerGroup",
          "in" : "query",
          "description" : "Business Partner Group",
          "schema" : {
            "type" : "string"
          },
          "example" : "Export/Import"
        }, {
          "name" : "type",
          "in" : "query",
          "description" : "Type of business partner",
          "schema" : {
            "type" : "string",
            "enum" : [ "CUSTOMER", "SUPPLIER", "PERSON" ]
          },
          "example" : "CUSTOMER"
        }, {
          "name" : "orderById",
          "in" : "query",
          "description" : "Order the results by invoice ID",
          "schema" : {
            "type" : "string",
            "default" : "DESC",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "previousId",
          "in" : "query",
          "description" : "Previous invoice ID for pagination",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 123456
        }, {
          "name" : "active",
          "in" : "query",
          "description" : "Status of business partner",
          "schema" : {
            "type" : "boolean",
            "default" : true
          }
        }, {
          "name" : "versionStartDate",
          "in" : "query",
          "description" : "Start date of the search (business partner updated date)",
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          },
          "example" : "2016-08-31T00:00"
        }, {
          "name" : "versionEndDate",
          "in" : "query",
          "description" : "End date of the search (business partner updated date)",
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          },
          "example" : "2016-12-31T00:00"
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200
          },
          "example" : 20
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for the results",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 2
        }, {
          "name" : "name",
          "in" : "header",
          "description" : "Name of business partner matched by substring.",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : "Pr Oy"
        }, {
          "name" : "identifier",
          "in" : "header",
          "description" : "Business identifier of the partner.",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : "0836922-4"
        } ],
        "responses" : {
          "200" : {
            "description" : "Invoices were successfully found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BusinessPartnerSearchResult"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Business partners" ],
        "summary" : "Add a business partner.",
        "description" : "Supports customer and supplier business partners.",
        "operationId" : "insertBusinessPartner",
        "requestBody" : {
          "description" : "Business partner data to insert",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BusinessPartner"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Business partner was successfully added.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BusinessPartner"
                }
              }
            }
          },
          "400" : {
            "description" : "Business partner contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/businesspartners/groups" : {
      "get" : {
        "tags" : [ "Business partners" ],
        "summary" : "Finds business partners groups matching search criteria.",
        "description" : "Returns business partner groups ordered by group ID.",
        "operationId" : "getPartnerGroups",
        "parameters" : [ {
          "name" : "name",
          "in" : "query",
          "description" : "Business partner group name. Uses substring matching.",
          "schema" : {
            "type" : "string"
          },
          "example" : "Test group"
        }, {
          "name" : "type",
          "in" : "query",
          "description" : "Business partner group type.",
          "schema" : {
            "type" : "string",
            "enum" : [ "CUSTOMER", "SUPPLIER", "PERSON" ]
          },
          "example" : "CUSTOMER"
        }, {
          "name" : "active",
          "in" : "query",
          "description" : "Status of business partner group.",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200
          },
          "example" : 20
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for the results",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 2
        } ],
        "responses" : {
          "200" : {
            "description" : "Business partner groups were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BusinessPartnerGroupSearchResult"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Business partners" ],
        "summary" : "Create a new business partner group.",
        "description" : "Create a new business partner group with given data.",
        "operationId" : "createBusinessPartnerGroup",
        "requestBody" : {
          "description" : "Business partner group data to add",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BusinessPartnerGroup"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Business partner group was successfully created.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BusinessPartnerGroup"
                }
              }
            }
          },
          "400" : {
            "description" : "Business partner group contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/bankaccounts" : {
      "get" : {
        "tags" : [ "Bank accounts" ],
        "summary" : "Get the bank accounts.",
        "description" : "Returns the list of bank accounts for the current environment. This endpoint can be used for getting the data based on certain search criteria.",
        "operationId" : "getBankAccounts",
        "parameters" : [ {
          "name" : "previousId",
          "in" : "query",
          "description" : "Previous bank account ID for pagination. If this field is set and results are ordered by order number, value has to an identifier of existing bank account in the given company.",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 123456
        }, {
          "name" : "orderById",
          "in" : "query",
          "description" : "Order the results by bank account ID",
          "schema" : {
            "type" : "string",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "orderByOrderNo",
          "in" : "query",
          "description" : "Order the results by bank account order number",
          "schema" : {
            "type" : "string",
            "default" : "ASC",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200
          },
          "example" : 20
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for the results",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 2
        } ],
        "responses" : {
          "200" : {
            "description" : "The bank accounts was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CompanyBankAccountSearchResult"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "The given previousId is not identifier of existing bank account.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Bank accounts" ],
        "summary" : "Create new company bank account.",
        "description" : "Endpoint for creating new company bank account. Returns created bank information.",
        "operationId" : "createBankAccount",
        "requestBody" : {
          "description" : "Account information to save",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CompanyBankAccount"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "The bank account was successfully created.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CompanyBankAccount"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "409" : {
            "description" : "Bank account already in use.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/attachments" : {
      "get" : {
        "tags" : [ "Attachments" ],
        "summary" : "Search attachments.",
        "description" : "Returns a list containing basic information for the attachments. The ID in each result entry can be used to fetch complete attachment details with the GET /attachments/{attachmentId} endpoint. The document management need to be active in order to use this endpoint, it can be set on to an environment from Management -> Company info -> Usage settings -> Documents -> Activate Documents in environment. There is a fee associated with having 'Document management' on for non Solo environments!\n\nThis endpoint supports username parameter in HTTP header.",
        "operationId" : "getAttachments",
        "parameters" : [ {
          "name" : "createdStartDate",
          "in" : "query",
          "description" : "Start date of the search (Attached date)",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-08-31"
        }, {
          "name" : "createdEndDate",
          "in" : "query",
          "description" : "End date of the search (Attached date)",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-08-31"
        }, {
          "name" : "minSize",
          "in" : "query",
          "description" : "Minimum size of attachment in bytes",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 64
        }, {
          "name" : "maxSize",
          "in" : "query",
          "description" : "Maximum size of attachment in bytes",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 64
        }, {
          "name" : "name",
          "in" : "query",
          "description" : "Name of the attachment file",
          "schema" : {
            "type" : "string"
          },
          "example" : "attachment.txt"
        }, {
          "name" : "type",
          "in" : "query",
          "description" : "Attachment type",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "multi",
              "enum" : [ "SALES_INVOICE", "SALES_ORDER", "OFFER", "PURCHASE_INVOICE", "PURCHASE_ORDER", "TRAVEL_INVOICE", "BILL_OF_CHARGES", "JOURNAL", "SALARY", "PERIODIC_TAX_RETURN", "REFERENCE_PAYMENT", "BANK_STATEMENT_AS_RECEIPT", "VAT_SUMMARY", "BANK_STATEMENT_EVENT", "SALES_PRODUCT_REGISTER", "PURCHASE_PRODUCT_REGISTER", "CUSTOMER_BUSINESS_PARTNER_REGISTER", "SUPPLIER_BUSINESS_PARTNER_REGISTER", "PERSON_BUSINESS_PARTNER_REGISTER", "EMPLOYEE_INFO", "ENVIRONMENT", "NETS_COLLECTION", "COST_RECEIPT", "REFERENCE_PAYMENT_EVENT" ]
            }
          },
          "example" : "SALES_INVOICE"
        }, {
          "name" : "referenceId",
          "in" : "query",
          "description" : "Attachment reference ID",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 567829
        }, {
          "name" : "orderById",
          "in" : "query",
          "description" : "Order the results by attachment ID",
          "schema" : {
            "type" : "string",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "orderByCreatedDate",
          "in" : "query",
          "description" : "Order the results by attachment date",
          "schema" : {
            "type" : "string",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "orderByName",
          "in" : "query",
          "description" : "Order the results by attachment name",
          "schema" : {
            "type" : "string",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "orderBySize",
          "in" : "query",
          "description" : "Order the results by attachment size",
          "schema" : {
            "type" : "string",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200
          },
          "example" : 20
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for the results",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 2
        }, {
          "name" : "previousId",
          "in" : "query",
          "description" : "Previous attachment ID for pagination",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 123
        }, {
          "name" : "username",
          "in" : "header",
          "description" : "Name of the user.",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : "Procountor"
        } ],
        "responses" : {
          "200" : {
            "description" : "Attachments successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AttachmentSearchResult"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Attachments" ],
        "summary" : "Add a new attachment.",
        "description" : "Using this endpoint you can add an attachment. The attachment can be of any type but limited to max 10000000 bytes. Content-type for the request is multipart/form-data. Type for the meta data is application/json, see Attachment model.",
        "operationId" : "saveAttachment",
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "meta" : {
                    "$ref" : "#/components/schemas/Attachment"
                  },
                  "file" : {
                    "type" : "string",
                    "format" : "binary"
                  }
                },
                "required" : [ "file", "meta" ]
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "Attachment was successfully added.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Attachment"
                }
              }
            }
          },
          "400" : {
            "description" : "File size too big.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/attachments/{attachmentId}" : {
      "get" : {
        "tags" : [ "Attachments" ],
        "summary" : "Get an attachment.",
        "description" : "Returns an attachment based on given attachment ID. Both attachment metadata (application/json) and the file itself will be returned. Content-type for the response is multipart/mixed.",
        "operationId" : "getAttachment",
        "parameters" : [ {
          "name" : "attachmentId",
          "in" : "path",
          "description" : "Id of the attachment",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Attachment was successfully found.",
            "content" : {
              "multipart/mixed" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Attachment"
                }
              },
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Attachment"
                }
              }
            }
          },
          "404" : {
            "description" : "Attachment not found.",
            "content" : {
              "multipart/mixed" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              },
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Attachments" ],
        "summary" : "Delete an attachment.",
        "description" : "Deletes an attachment based on a given attachment ID.",
        "operationId" : "deleteAttachment",
        "parameters" : [ {
          "name" : "attachmentId",
          "in" : "path",
          "description" : "ID of the attachment",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Attachment was successfully deleted.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights or this attachment is not editable.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Attachment not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "patch" : {
        "tags" : [ "Attachments" ],
        "summary" : "Renames an attachment.",
        "description" : "Renames an attachment based on the given attachment ID. The file extension can't be changed. Other properties than the filename can't be changed.",
        "operationId" : "renameAttachment",
        "parameters" : [ {
          "name" : "name",
          "in" : "query",
          "description" : "Name of the attachment file",
          "schema" : {
            "type" : "string"
          },
          "example" : "example-pdf2.pdf"
        }, {
          "name" : "attachmentId",
          "in" : "path",
          "description" : "ID of the attachment",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AttachmentRename"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Attachment was successfully renamed.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Attachment"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Attachment for given id has not been found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/vats/settings" : {
      "get" : {
        "tags" : [ "VATs" ],
        "summary" : "Get VAT settings for the current company.",
        "description" : "Returns VAT settings for the current company.",
        "operationId" : "getVatSettings",
        "responses" : {
          "200" : {
            "description" : "The VATs were successfully returned",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/VatSettings"
                }
              }
            }
          }
        }
      }
    },
    "/vats/default" : {
      "get" : {
        "tags" : [ "VATs" ],
        "summary" : "Get VAT percentages and vat statuses for the current company.",
        "description" : "Returns VAT percentages and vat statuses for the current company.",
        "operationId" : "getVatStatusesForCompany",
        "responses" : {
          "200" : {
            "description" : "The VATs were successfully returned",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/VatInformation"
                }
              }
            }
          }
        }
      }
    },
    "/vats/country" : {
      "get" : {
        "tags" : [ "VATs" ],
        "summary" : "Get VAT percentages for a country.",
        "description" : "Returns VAT percentages available for the given country.",
        "operationId" : "getVatStatusesForCountry",
        "parameters" : [ {
          "name" : "countryCode",
          "in" : "query",
          "description" : "Country code in ISO 3166-1 alpha-2 format.",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "DK"
        } ],
        "responses" : {
          "200" : {
            "description" : "The VATs for selected country were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/VatPercentages"
                }
              }
            }
          },
          "400" : {
            "description" : "The country code is invalid.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/users/rights" : {
      "get" : {
        "tags" : [ "Users" ],
        "summary" : "Get the current user rights.",
        "description" : "Returns details of user rights for the currently logged in user.",
        "operationId" : "getCurrentUserRights",
        "responses" : {
          "200" : {
            "description" : "The user rights was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserPrivileges"
                }
              }
            }
          }
        }
      }
    },
    "/users/profiles/{userId}" : {
      "get" : {
        "tags" : [ "Users" ],
        "summary" : "Get a user profile.",
        "description" : "Returns a user profile based on the given user ID. Same company users only.",
        "operationId" : "getUserProfile",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "description" : "ID of the user",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The user was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserProfile"
                }
              }
            }
          },
          "404" : {
            "description" : "User with given id not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/status" : {
      "get" : {
        "tags" : [ "Health Status" ],
        "summary" : "Get information about API health status.",
        "description" : "Returns basic information about the current API status.",
        "operationId" : "getStatus",
        "responses" : {
          "200" : {
            "description" : "API status was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Status"
                }
              }
            }
          }
        }
      }
    },
    "/sie/file" : {
      "get" : {
        "tags" : [ "SIE file" ],
        "summary" : "Get SIE file.",
        "description" : "Returns a SIE file for given accounting period start date and export end date.",
        "operationId" : "getSieFile",
        "parameters" : [ {
          "name" : "accountingPeriodStart",
          "in" : "query",
          "description" : "Start date of accounting period",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2022-01-31"
        }, {
          "name" : "exportEndDate",
          "in" : "query",
          "description" : "End date of the export",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2022-01-31"
        } ],
        "responses" : {
          "200" : {
            "description" : "SIE file successfully returned.",
            "content" : {
              "application/octet-stream" : {
                "schema" : {
                  "type" : "string",
                  "format" : "binary"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/sie/availability" : {
      "get" : {
        "tags" : [ "SIE file" ],
        "summary" : "Get information about SIE export availability.",
        "description" : "Returns details about SIE export availability.",
        "operationId" : "getSieAvailability",
        "responses" : {
          "200" : {
            "description" : "SIE export availability information was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SieAvailabilityResponse"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/sessioninfo" : {
      "get" : {
        "tags" : [ "Session Information" ],
        "summary" : "Get information about current session.",
        "description" : "Returns basic information about the current session.",
        "operationId" : "getSessionInfo",
        "responses" : {
          "200" : {
            "description" : "Session info was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SessionInfo"
                }
              }
            }
          }
        }
      }
    },
    "/referencepayments" : {
      "get" : {
        "tags" : [ "Reference payments" ],
        "summary" : "Get reference payments.",
        "description" : "Returns all reference payments that match the request criteria.\n\nThis endpoint supports accountNumber parameter in HTTP header.",
        "operationId" : "getReferencePayments",
        "parameters" : [ {
          "name" : "startDate",
          "in" : "query",
          "description" : "Start date of the search (value date)",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-08-31"
        }, {
          "name" : "endDate",
          "in" : "query",
          "description" : "End date of the search (value date)",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-12-31"
        }, {
          "name" : "previousId",
          "in" : "query",
          "description" : "Previous id for pagination",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 123456
        }, {
          "name" : "orderById",
          "in" : "query",
          "description" : "Order the results by ID",
          "schema" : {
            "type" : "string",
            "default" : "DESC",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200
          },
          "example" : 20
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for the results",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 2
        }, {
          "name" : "accountNumber",
          "in" : "query",
          "description" : "The bank account number to use when searching for related reference payments.",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : "FI1234567890123456"
        } ],
        "responses" : {
          "200" : {
            "description" : "The reference payments were successfully returned",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ReferencePaymentsSearchResult"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/products/{productId}/defaults/dimensions" : {
      "get" : {
        "tags" : [ "Products" ],
        "summary" : "Get default dimensions of the product.",
        "description" : "Returns default dimensions for the product with the given ID.",
        "operationId" : "getDefaultDimensions",
        "parameters" : [ {
          "name" : "productId",
          "in" : "path",
          "description" : "ID of the product",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The product default dimensions was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/DefaultDimensionBasicData"
                  }
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/persons/{id}/defaults/products" : {
      "get" : {
        "tags" : [ "Persons" ],
        "summary" : "Get a default products of a person.",
        "description" : "Returns default products for the given person id.",
        "operationId" : "getPersonDefaultProducts",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Id of the person",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The person default products were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/DefaultProduct"
                  }
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "No person found for given person id.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/persons/{id}/defaults/dimensions" : {
      "get" : {
        "tags" : [ "Persons" ],
        "summary" : "Get a default dimensions of a person",
        "description" : "Returns default dimensions for the given person id",
        "operationId" : "getPersonDefaultDimensionsByPersonId",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Id of the person",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The person default dimensions were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/DefaultDimensionBasicData"
                  }
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "No person found for given person id.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/salarytypes" : {
      "get" : {
        "tags" : [ "Payrolls" ],
        "summary" : "Get the list of salary types matching search criteria.",
        "description" : "Return the Salary Types list.",
        "operationId" : "getSalaryTypes",
        "parameters" : [ {
          "name" : "name",
          "in" : "query",
          "description" : "Salary Type name\n\nAlso partial - search matches returned.\n",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : "Time-rate pay"
        }, {
          "name" : "code",
          "in" : "query",
          "description" : "Salary type code",
          "required" : false,
          "schema" : {
            "type" : "integer"
          },
          "example" : 1000
        }, {
          "name" : "category",
          "in" : "query",
          "description" : "Salary category",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "SALARY_FOR_TIME_WORKED", "OTHER_TAXABLE_EARNINGS", "FRINGE_BENEFITS", "TAX_FREE_ITEMS", "TAX", "DEDUCTIONS_FROM_NET_PAY", "INFORMATIVE_ITEMS" ]
          },
          "example" : "TAX"
        }, {
          "name" : "incomeType",
          "in" : "query",
          "description" : "Income Type name\n\nAlso partial - search matches returned.\n",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : "Time-rate pay"
        }, {
          "name" : "incomeTypeCode",
          "in" : "query",
          "description" : "Income type code",
          "required" : false,
          "schema" : {
            "type" : "integer"
          },
          "example" : 201
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200,
            "minimum" : 1
          },
          "example" : 20
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for the results",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0,
            "minimum" : 0
          },
          "example" : 2
        }, {
          "name" : "orderByCode",
          "in" : "query",
          "description" : "Order the results by salary type code",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "ASC",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        } ],
        "responses" : {
          "200" : {
            "description" : "List of salary types was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SalaryTypeSearchResult"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/salaryslips" : {
      "get" : {
        "tags" : [ "Payrolls" ],
        "summary" : "Get salary slips matching search criteria.",
        "description" : "Returns salary slips.",
        "operationId" : "getSalarySlips",
        "parameters" : [ {
          "name" : "paydayStartDate",
          "in" : "query",
          "description" : "Start date of the search (salary slip's payday)",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2025-01-10"
        }, {
          "name" : "paydayEndDate",
          "in" : "query",
          "description" : "End date of the search (salary slip's payday)",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2025-02-10"
        }, {
          "name" : "employeeName",
          "in" : "query",
          "description" : "Employee name.\n\nAlso partial - search matches returned.\nCase insensitive.\n",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : "teemu"
        }, {
          "name" : "slipNumber",
          "in" : "query",
          "description" : "Salary slip numbers. Supports more than one salary slip number",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "multi"
            }
          },
          "example" : 3
        }, {
          "name" : "status",
          "in" : "query",
          "description" : "Salary slip statuses. Supports more than one salary slip status.",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "multi",
              "enum" : [ "UNFINISHED", "APPROVED", "CORRECTION", "INVALIDATED", "PAYMENT_QUEUED", "PAYMENT_SENT_TO_BANK", "PAID", "PARTLY_PAID", "MARKED_PAID", "EARNINGS_REPORTED" ]
            }
          },
          "example" : "UNFINISHED"
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200,
            "minimum" : 1
          },
          "example" : 20
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for the results",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0,
            "minimum" : 0
          },
          "example" : 2
        }, {
          "name" : "orderById",
          "in" : "query",
          "description" : "Order the results by salary slip ID",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "DESC",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        } ],
        "responses" : {
          "200" : {
            "description" : "Salary slips were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SalarySlipSearchResult"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/salaryperiods" : {
      "get" : {
        "tags" : [ "Payrolls" ],
        "summary" : "Get basic information about salary period lists (id, name) for a given holiday credit year.",
        "description" : "Returns a list of basic information about salary period lists for a given holiday credit year.",
        "operationId" : "getSalaryPeriodLists",
        "parameters" : [ {
          "name" : "holidayCreditYear",
          "in" : "query",
          "description" : "Holiday credit year",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 2025
        } ],
        "responses" : {
          "200" : {
            "description" : "Basic information about salary period lists has been successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/SalaryPeriodListBasicInfo"
                  }
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "No salary period lists found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/salaryperiods/{id}" : {
      "get" : {
        "tags" : [ "Payrolls" ],
        "summary" : "Get salary periods for a salary period list ID.",
        "description" : "Returns a list of salary periods for a given salary period list ID.",
        "operationId" : "getSalaryPeriods",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the salary period list",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Salary periods has been successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/SalaryPeriod"
                  }
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "No salary periods found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/salarylists/{id}" : {
      "get" : {
        "tags" : [ "Payrolls" ],
        "summary" : "Get salary list.",
        "description" : "Returns salary list for given salary list id.",
        "operationId" : "getSalaryListById",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Id of the salary list",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Salary list was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SalaryList"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Salary list was not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/salariesbasicinfo" : {
      "get" : {
        "tags" : [ "Payrolls" ],
        "summary" : "Get salaries basic info.",
        "description" : "Returns salaries basic info.",
        "operationId" : "getSalariesBasicInfo",
        "parameters" : [ {
          "name" : "year",
          "in" : "query",
          "description" : "Year from which yearly figures will be returned. If not set returns yearly figures from current year.",
          "required" : false,
          "schema" : {
            "type" : "integer"
          },
          "example" : 2023
        } ],
        "responses" : {
          "200" : {
            "description" : "The salaries basic info was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SalariesBasicInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Salaries basic info yearly figures not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/laborunionsettings" : {
      "get" : {
        "tags" : [ "Payrolls" ],
        "summary" : "Find list of labor union settings basic data.",
        "description" : "Returns basic data of all labor union settings.",
        "operationId" : "getLaborUnionSettingsBasicData",
        "responses" : {
          "200" : {
            "description" : "Labor union settings were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/LaborUnionSettingsBasicData"
                  }
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/employees" : {
      "get" : {
        "tags" : [ "Employees" ],
        "summary" : "Get the list of employees matching search criteria.",
        "description" : "Returns the list of employees with information: id, lastname, firstname, ssn, address, personNumber, salaryChannel, automatedTaxCard and active.",
        "operationId" : "getEmployee",
        "parameters" : [ {
          "name" : "name",
          "in" : "header",
          "description" : "Name of person (combined as lastname, firstname) matched by substring",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : "Jan"
        }, {
          "name" : "ssn",
          "in" : "header",
          "description" : "Identifier of the person (SSN) or business identifier\n\nAlso partial - search matches returned.\n",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : 130750
        }, {
          "name" : "personNumber",
          "in" : "query",
          "description" : "Person number\n\nAlso partial - search matches returned.\n",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : "CUST12367Z"
        }, {
          "name" : "personGroupId",
          "in" : "query",
          "description" : "Unique identifier of Business Partner Group of type PERSON",
          "required" : false,
          "schema" : {
            "type" : "integer"
          },
          "example" : 123456
        }, {
          "name" : "includeInactive",
          "in" : "query",
          "description" : "Include inactive persons",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        }, {
          "name" : "salaryChannel",
          "in" : "query",
          "description" : "Salary channel",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "NO_SENDING", "MAIL", "EMAIL", "PAPER", "MOBILE", "ESALARY" ]
          },
          "example" : "EMAIL"
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200,
            "minimum" : 1
          },
          "example" : 20
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for the results",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0,
            "minimum" : 0
          },
          "example" : 2
        }, {
          "name" : "orderById",
          "in" : "query",
          "description" : "Order the results by Employee ID",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "DESC",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        } ],
        "responses" : {
          "200" : {
            "description" : "Employees were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EmployeeSearchResult"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/employees/{id}/workinghourreduction" : {
      "get" : {
        "tags" : [ "Employees" ],
        "summary" : "Get employee working hour reduction.",
        "description" : "Returns employee working hour reduction for given employee ID.",
        "operationId" : "getEmployeeWorkingHourReduction",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The employee working hour reduction was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WorkingHourReduction"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights or working hour reduction is disabled for the company.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Working hour reduction or employee not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payrolls/employees/{id}/holidaypay" : {
      "get" : {
        "tags" : [ "Employees" ],
        "summary" : "Get employee holiday pay information.",
        "description" : "Returns information related to employee holiday pay including per-year breakdown.\n\n**Total values returned:**\n- totalRemainingHolidayDays - Total remaining holiday days across all years\n- totalRemainingHolidayPay - Total remaining holiday pay across all years\n- totalRemainingHolidayBonusDays - Total remaining holiday bonus days across all years\n- totalRemainingAdditionalLeaveDays - Total remaining additional leave days across all years\n\n**Yearly breakdown (yearlyRemainings):**\nReturns holiday saldos per holiday credit year, with the latest year first. A holiday credit year runs from 1.4 to 31.3.\nEach entry contains: holidayCreditYear, remainingHolidayDays, remainingHolidayPay, remainingHolidayBonusDays, remainingAdditionalLeaveDays.\n",
        "operationId" : "getHolidayPayByEmployeeId",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the employee",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Holiday pay information were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/HolidayPay"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights or holiday calculation setting disabled for company.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Employee or holiday calculation settings not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payments/{paymentId}" : {
      "get" : {
        "tags" : [ "Payments" ],
        "summary" : "Get a payment transaction.",
        "description" : "Returns a payment transaction with provided id that matches the request criteria.",
        "operationId" : "getPaymentRowById",
        "parameters" : [ {
          "name" : "paymentId",
          "in" : "path",
          "description" : "ID of the payment",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 1234
        } ],
        "responses" : {
          "200" : {
            "description" : "The payment transaction was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaymentRowInfo"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Payment not found or user has insufficient rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Payments" ],
        "summary" : "Remove a payment.",
        "description" : "Remove a payment which is not queued or paid. Supports only invoice payment.",
        "operationId" : "removePayment",
        "parameters" : [ {
          "name" : "paymentId",
          "in" : "path",
          "description" : "Payment identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "202" : {
            "description" : "Request for confirmation of remove payment sent successfully and transaction identifier returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TransactionIdentifier"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights or payment in a wrong status.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Payment not found or request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payments/paymentevents" : {
      "get" : {
        "tags" : [ "Payments" ],
        "summary" : "Get payment events.",
        "description" : "Returns all payment events that match the request criteria. For payment events of a single invoice, you can also use the endpoint `/invoices/{invoiceId}/paymentevents`.",
        "operationId" : "getPaymentEvents",
        "parameters" : [ {
          "name" : "invoiceId",
          "in" : "query",
          "description" : "Unique comma-separated invoice identifier(s). Max 200 ids per request.",
          "required" : true,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "integer",
              "format" : "multi"
            }
          },
          "example" : 123456
        }, {
          "name" : "previousId",
          "in" : "query",
          "description" : "Previous payment ID for pagination.",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 123456
        }, {
          "name" : "orderById",
          "in" : "query",
          "description" : "Order the results by payment ID.",
          "schema" : {
            "type" : "string",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200
          },
          "example" : 20
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for the results",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 2
        } ],
        "responses" : {
          "200" : {
            "description" : "The payment events were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaymentSearchResult"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payments/errormessages" : {
      "get" : {
        "tags" : [ "Payments" ],
        "summary" : "Get error messages.",
        "description" : "Returns all payment error messages that match the request criteria.",
        "operationId" : "getErrorMessages",
        "parameters" : [ {
          "name" : "createdStartDate",
          "in" : "query",
          "description" : "Start date of the search (value date).",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-08-31"
        }, {
          "name" : "createdEndDate",
          "in" : "query",
          "description" : "End date of the search (value date).",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-08-31"
        }, {
          "name" : "type",
          "in" : "query",
          "description" : "Type of error message.",
          "schema" : {
            "type" : "string",
            "enum" : [ "PAYMENT_ERROR", "NETS_COLLECTION_ERROR" ]
          },
          "example" : "PAYMENT_ERROR"
        }, {
          "name" : "status",
          "in" : "query",
          "description" : "Handling status of error message.",
          "schema" : {
            "type" : "string",
            "enum" : [ "ALL", "UNHANDLED", "HANDLED" ]
          },
          "example" : "UNHANDLED"
        }, {
          "name" : "previousId",
          "in" : "query",
          "description" : "Previous error message ID for pagination.",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 123456
        }, {
          "name" : "orderById",
          "in" : "query",
          "description" : "Order the results by message ID.",
          "schema" : {
            "type" : "string",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200
          },
          "example" : 20
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for the results",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 2
        } ],
        "responses" : {
          "200" : {
            "description" : "The payment error messages were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaymentErrorMessageSearchResult"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/payments/directsalarypayments/{paymentListId}" : {
      "get" : {
        "tags" : [ "Payments" ],
        "summary" : "Get direct salary payments by payment list id. Supports only Finnish environments.",
        "description" : "Getting direct salary payments by given payment list id.",
        "operationId" : "getDirectSalaryPaymentsByPaymentListId",
        "parameters" : [ {
          "name" : "paymentListId",
          "in" : "path",
          "description" : "Payment list Id",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Direct salary payments list with specified payment list id returned successfully.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DirectSalaryPaymentGroup"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Direct salary payments list with given payment list id not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/mfatransactionresult/{transactionIdentifier}" : {
      "get" : {
        "tags" : [ "Multi-Factor Authentication" ],
        "summary" : "Get a result of action which was performed with multi-factor authentication (MFA), with the given identifier. Supports only Finnish environments.",
        "description" : "Get a result of action related to the given MFA identifier.",
        "operationId" : "getMfaTransactionResult",
        "parameters" : [ {
          "name" : "transactionIdentifier",
          "in" : "path",
          "description" : "2-factor transaction identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MfaTransactionResult"
                },
                "examples" : {
                  "Result for POST /payments/directbanktransfers" : {
                    "description" : "Example for creating direct bank transfers",
                    "value" : {
                      "directBankTransfers" : {
                        "transactions" : [ {
                          "paymentId" : 1,
                          "customId" : "123"
                        } ]
                      }
                    }
                  },
                  "Result for POST /payments" : {
                    "description" : "Example for paying invoices",
                    "value" : {
                      "invoicePayments" : {
                        "transactions" : [ {
                          "paymentId" : 2,
                          "invoiceId" : 3
                        } ]
                      }
                    }
                  },
                  "Result for POST /payments/directsalarypayments" : {
                    "description" : "Example for creating direct salary payment",
                    "value" : {
                      "directSalaryPayment" : {
                        "id" : 7,
                        "customId" : "string",
                        "payments" : [ {
                          "paymentId" : 14,
                          "customId" : "string"
                        } ]
                      }
                    }
                  },
                  "Result for PUT /payments/directsalarypayments/{paymentListId}/cancel" : {
                    "description" : "Example for canceling direct salary payment",
                    "value" : {
                      "info" : {
                        "message" : "Action success"
                      }
                    }
                  },
                  "Result for PUT /users" : {
                    "description" : "Example for updating user data",
                    "value" : {
                      "info" : {
                        "message" : "Action success"
                      }
                    }
                  },
                  "Result for PUT /payments/{paymentId}/cancel" : {
                    "description" : "Example for canceling payment",
                    "value" : {
                      "info" : {
                        "message" : "Action success"
                      }
                    }
                  },
                  "Result for DELETE /payments/{paymentId}" : {
                    "description" : "Example for deleting payment",
                    "value" : {
                      "info" : {
                        "message" : "Action success"
                      }
                    }
                  },
                  "Result for DELETE /invoices/{invoiceId}/paymentevents/{paymentEventId}" : {
                    "description" : "Example for deleting invoice event",
                    "value" : {
                      "info" : {
                        "message" : "Action success"
                      }
                    }
                  }
                }
              }
            }
          },
          "202" : {
            "description" : "Transaction not confirmed yet and transaction identifier returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InfoMessage"
                }
              }
            }
          },
          "403" : {
            "description" : "Transaction not belong to the user, insufficient rights or data in wrong status.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Element not found or request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "406" : {
            "description" : "Transaction rejected.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "408" : {
            "description" : "Transaction expired.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "409" : {
            "description" : "Transaction already processed.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/journals" : {
      "get" : {
        "tags" : [ "Journal" ],
        "summary" : "Get journal receipts based on search criteria.",
        "description" : "Get journal receipts based on search criteria. Returns a list containing information about journal receipts.",
        "operationId" : "searchJournalsByStatuses",
        "parameters" : [ {
          "name" : "statuses",
          "in" : "query",
          "description" : "Comma-separated journal receipt statuses",
          "schema" : {
            "type" : "string",
            "enum" : [ "UNFINISHED", "APPROVED", "INVALIDATED" ]
          },
          "example" : "UNFINISHED,INVALIDATED"
        }, {
          "name" : "startDate",
          "in" : "query",
          "description" : "Start date of the search (journal billing date)",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-08-31"
        }, {
          "name" : "endDate",
          "in" : "query",
          "description" : "End date of the search (journal billing date)",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-08-31"
        }, {
          "name" : "createdStartDate",
          "in" : "query",
          "description" : "Start date of the search (journal created date)",
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          },
          "example" : "2016-08-31T00:00:00"
        }, {
          "name" : "createdEndDate",
          "in" : "query",
          "description" : "End date of the search (journal created date)",
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          },
          "example" : "2016-12-31T00:00:00"
        }, {
          "name" : "versionStartDate",
          "in" : "query",
          "description" : "Start date of the search (journal updated date)",
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          },
          "example" : "2016-08-31T00:00:00"
        }, {
          "name" : "versionEndDate",
          "in" : "query",
          "description" : "End date of the search (journal updated date)",
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          },
          "example" : "2016-12-31T00:00:00"
        } ],
        "responses" : {
          "200" : {
            "description" : "Journal receipts were successfully found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Journal"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/{invoiceId}/transactions" : {
      "get" : {
        "tags" : [ "Invoices" ],
        "summary" : "Get an invoice transactions.",
        "description" : "Returns the requested invoice transactions. ",
        "operationId" : "getInvoiceTransactions",
        "parameters" : [ {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "ID of the invoice",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The invoice transactions was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InvoiceTransactions"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice or invoice transactions not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/{invoiceId}/paymentevents" : {
      "get" : {
        "tags" : [ "Invoices" ],
        "summary" : "Get payment events.",
        "description" : "Returns payment events for the requested invoice.",
        "operationId" : "searchPaymentEvents",
        "parameters" : [ {
          "name" : "previousId",
          "in" : "query",
          "description" : "Previous invoice ID for pagination",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 123456
        }, {
          "name" : "orderById",
          "in" : "query",
          "description" : "Order the results by invoice ID",
          "schema" : {
            "type" : "string",
            "default" : "DESC",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200
          },
          "example" : 20
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for the results",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 2
        }, {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "Invoice identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The payment events for the given invoice was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaymentEventSearchResult"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/{invoiceId}/paymentevents/{paymentEventId}" : {
      "get" : {
        "tags" : [ "Invoices" ],
        "summary" : "Get payment event by specified payment event id and invoice id.",
        "description" : "Returns single payment event for given payment event id and invoice id.",
        "operationId" : "getPaymentEventByIdAndInvoiceId",
        "parameters" : [ {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "Invoice identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "paymentEventId",
          "in" : "path",
          "description" : "Payment event identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The single payment event for the given invoice id and payment event id was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaymentEvent"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Payment event or invoice related to payment event not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Invoices" ],
        "summary" : "Remove a payment event.",
        "description" : "Remove a payment event which is not actually related to paying through the software i.e. with the status 'marked paid'. For other payments please use DELETE payments/{paymentId} endpoint.",
        "operationId" : "removePaymentEvent",
        "parameters" : [ {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "Invoice identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "paymentEventId",
          "in" : "path",
          "description" : "Payment identifier",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "202" : {
            "description" : "Request for confirmation of remove payment event sent successfully.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TransactionIdentifier"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights or payment in a wrong status.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Payment not found or request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/{invoiceId}/image" : {
      "get" : {
        "tags" : [ "Invoices" ],
        "summary" : "Get an invoice page image.",
        "description" : "Returns an invoice page image based on given invoice ID and page number.",
        "operationId" : "getInvoiceImage",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "description" : "The invoice page number.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 1
          },
          "example" : 2
        }, {
          "name" : "format",
          "in" : "query",
          "description" : "Invoice image format.",
          "schema" : {
            "type" : "string",
            "default" : "PNG",
            "enum" : [ "PNG", "JPG", "JPEG" ]
          },
          "example" : "PNG"
        }, {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "Id of the invoice.",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The invoice image was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Attachment"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice not found or invoice page image does not exist.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/{invoiceId}/comments/{commentId}" : {
      "get" : {
        "tags" : [ "Invoices" ],
        "summary" : "Get comment for given invoice and comment identifiers.",
        "description" : "Returns the requested invoice comment. Supported invoice types: TRAVEL_INVOICE, BILL_OF_CHARGES and PURCHASE_INVOICE",
        "operationId" : "getCommentById",
        "parameters" : [ {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "ID of the invoice",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "commentId",
          "in" : "path",
          "description" : "ID of the comment",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Comment were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CommentWithTaggedUsers"
                }
              }
            }
          },
          "403" : {
            "description" : "No access rights to invoice discussion.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice or comment could not be found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/{invoiceId}/comments/taggableusers" : {
      "get" : {
        "tags" : [ "Invoices" ],
        "summary" : "Get list of users who can be tagged in given invoice.",
        "description" : "Returns users who can be tagged for the given invoice. Supported invoice types: TRAVEL_INVOICE, BILL_OF_CHARGES and PURCHASE_INVOICE",
        "operationId" : "getTaggeableUsers",
        "parameters" : [ {
          "name" : "invoiceId",
          "in" : "path",
          "description" : "ID of the invoice",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Taggable users were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TaggableUsers"
                }
              }
            }
          },
          "403" : {
            "description" : "No access rights to invoice discussion.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice could not be found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/transactions" : {
      "get" : {
        "tags" : [ "Invoices" ],
        "summary" : "Get invoice transactions for multiple invoices.",
        "description" : "Returns transactions for the requested invoices. Up to 200 invoice IDs can be requested in a single call.",
        "operationId" : "getInvoiceTransactionsBulk",
        "parameters" : [ {
          "name" : "invoiceIds",
          "in" : "query",
          "description" : "List of invoice IDs (max 200) as repeated query parameters, e.g., ?invoiceIds=1&invoiceIds=2.",
          "required" : true,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "integer",
              "format" : "int32"
            }
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The invoice transactions were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InvoiceTransactionsByInvoicesDTO"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Invoice or invoice transactions not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/personalverifications" : {
      "get" : {
        "tags" : [ "Invoices" ],
        "summary" : "Get list of ids of invoices which waiting for verification.",
        "description" : "Returns list of invoice ids that are waiting for currently logged in user's verification (also if they are substitutes).",
        "operationId" : "getInvoicesForPersonalVerifications",
        "parameters" : [ {
          "name" : "types",
          "in" : "query",
          "description" : "Invoice type.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "PURCHASE_INVOICE", "TRAVEL_INVOICE", "BILL_OF_CHARGES" ]
          },
          "example" : "PURCHASE_INVOICE"
        } ],
        "responses" : {
          "200" : {
            "description" : "The invoice image was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InvoiceIds"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/personalapprovals" : {
      "get" : {
        "tags" : [ "Invoices" ],
        "summary" : "Get list of ids of invoices which waiting for approval.",
        "description" : "Returns list of invoice ids that are waiting for currently logged in user's approval (also if they are substitutes).",
        "operationId" : "getInvoicesForPersonalApprovals",
        "parameters" : [ {
          "name" : "types",
          "in" : "query",
          "description" : "Invoice type.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "PURCHASE_INVOICE", "TRAVEL_INVOICE", "BILL_OF_CHARGES" ]
          },
          "example" : "PURCHASE_INVOICE"
        } ],
        "responses" : {
          "200" : {
            "description" : "The invoice image was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InvoiceIds"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/integrations/{integrationId}/customers" : {
      "get" : {
        "tags" : [ "Integrations" ],
        "summary" : "Get list of customers using given integration template for integration owner.",
        "description" : "Returns list of customers who are using the given integration template.\n\nEnvironment has to have API integration tool access, otherwise 403 forbidden is returned.\n\nThe integrationId have to belong to integration for which current environment is an owner, otherwise 403 forbidden is returned.\n",
        "operationId" : "fetchIntegrationOwnerCustomersInfo",
        "parameters" : [ {
          "name" : "integrationId",
          "in" : "path",
          "description" : "Id of the API integration",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The API integration customers were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiIntegrationCustomer"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user or company rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/fiscalyears" : {
      "get" : {
        "tags" : [ "Fiscal years" ],
        "summary" : "List fiscal years.",
        "description" : "Lists fiscal years ordered by their start date, from newest to oldest. Tracking periods, if exist, are in chronological order. Fiscal years can be edited on the Fiscal years page in Procountor.",
        "externalDocs" : {
          "url" : "https://help.procountor.fi/en/articles/531578-financial-years."
        },
        "operationId" : "getFiscalYears",
        "responses" : {
          "200" : {
            "description" : "Fiscal years were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FiscalYears"
                }
              }
            }
          }
        }
      }
    },
    "/dimensions" : {
      "get" : {
        "tags" : [ "Dimensions" ],
        "summary" : "Get all dimensions with dimension items.",
        "description" : "Returns a list of all dimensions and dimension items for the current company. Dimensions can be set on the Dimensions page in Procountor.",
        "externalDocs" : {
          "url" : "https://help.procountor.fi/en/articles/531688-dimensioning"
        },
        "operationId" : "getDimensions",
        "parameters" : [ {
          "name" : "name",
          "in" : "query",
          "description" : "Name of the dimension. Supports partial search.",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "codeName",
          "in" : "query",
          "description" : "Name of the dimension item. Supports partial search.",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Dimensions were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Dimension"
                  }
                }
              }
            }
          },
          "403" : {
            "description" : "No access right to dimensions.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/currencies" : {
      "get" : {
        "tags" : [ "Currencies" ],
        "summary" : "Get all available currencies.",
        "description" : "Returns all available currencies.",
        "operationId" : "getCurrencies",
        "responses" : {
          "200" : {
            "description" : "The currencies were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Currencies"
                }
              }
            }
          }
        }
      }
    },
    "/currencies/latest" : {
      "get" : {
        "tags" : [ "Currencies" ],
        "summary" : "List currency rates for the company base currency.",
        "description" : "This endpoint returns last currency rates for the base company according to the following codes:1 - Procountor Accounting Exchange Rate, 2 - Average Rate, 3 - Buy Rate, 4 - Sell Rate, 5 - Cash Buy Rate, 6 - Cash sale exchange rate",
        "operationId" : "getCompanyLatestRates",
        "parameters" : [ {
          "name" : "rateType",
          "in" : "query",
          "description" : "Rate type. Only the following numbers can be used: 1, 2, 3, 4, 5, 6.",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "default" : 1
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "List of currency rates for base currency.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CurrencyGroupRates"
                }
              }
            }
          },
          "400" : {
            "description" : "When 'rateType' param is not valid. Allowed only: [1,2,3,4,5,6].",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/currencies/exchangerate" : {
      "get" : {
        "tags" : [ "Currencies" ],
        "summary" : "Get a currency exchange rate.",
        "description" : "Returns an exchange rate between base and target currencies provided in parameters. Date of the rate and type of the rate can also be selected",
        "operationId" : "getCurrencyExchangeRate",
        "parameters" : [ {
          "name" : "baseCurrency",
          "in" : "query",
          "description" : "Base currency for conversion.",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "DKK"
        }, {
          "name" : "currency",
          "in" : "query",
          "description" : "Target currency for conversion.",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "EUR"
        }, {
          "name" : "day",
          "in" : "query",
          "description" : "Day for the rate.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2011-10-01"
        }, {
          "name" : "rateType",
          "in" : "query",
          "description" : "Type of the rate.",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "PROCOUNTOR_ACCOUNTING_EXCHANGE_RATE", "ACCOUNT_CURRENCY_AVERAGE_RATE", "ACCOUNT_CURRENCY_BUYING_RATE", "ACCOUNT_CURRENCY_SELLING_RATE", "CASH_BUYING_RATE", "CASH_CURRENCY_SALE_EXCHANGE_RATE" ]
          },
          "example" : "CASH_BUYING_RATE"
        } ],
        "responses" : {
          "200" : {
            "description" : "The currency exchange rate was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CurrencyExchangeRate"
                }
              }
            }
          },
          "400" : {
            "description" : "Exchange query contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Exchange rate was not found for provided currency.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/currencies/company" : {
      "get" : {
        "tags" : [ "Currencies" ],
        "summary" : "Get currency of the current company.",
        "description" : "Returns currency for the current company.",
        "operationId" : "getCurrenciesForCompany",
        "responses" : {
          "200" : {
            "description" : "The currency was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CompanyCurrency"
                }
              }
            }
          }
        }
      }
    },
    "/company/usagesettings" : {
      "get" : {
        "tags" : [ "Company" ],
        "summary" : "Get company's usage settings",
        "description" : "Returns company's usage settings",
        "operationId" : "getUsageSettings",
        "responses" : {
          "200" : {
            "description" : "Company usage settings successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CompanyUsageSettings"
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/company/invoicetemplates" : {
      "get" : {
        "tags" : [ "Company" ],
        "summary" : "Get invoice templates.",
        "description" : "Returns a list of invoice templates allowed in the environment.",
        "operationId" : "getCompanyInvoiceTemplates",
        "responses" : {
          "200" : {
            "description" : "Invoice templates was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InvoiceTemplate"
                }
              }
            }
          },
          "403" : {
            "description" : "No access right to invoice templates.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/company/invoicecirculation/verifierlists" : {
      "get" : {
        "tags" : [ "Company" ],
        "summary" : "Get all verifiers lists.",
        "description" : "Returns all verifiers lists.",
        "operationId" : "getVerifierList",
        "responses" : {
          "200" : {
            "description" : "Verifiers lists was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/VerifierListBasic"
                  }
                }
              }
            }
          },
          "403" : {
            "description" : "No access right to company information.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/company/invoicecirculation/verifierlists/{id}" : {
      "get" : {
        "tags" : [ "Company" ],
        "summary" : "Get list of verifiers.",
        "description" : "Returns list of verifiers.",
        "operationId" : "getVerifierList_1",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of verifier list",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "List of verifiers was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/VerifierList"
                }
              }
            }
          },
          "403" : {
            "description" : "No access right to company information.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "Verifier list not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/company/invoicecirculation/settings" : {
      "get" : {
        "tags" : [ "Company" ],
        "summary" : "Get invoice circulation settings.",
        "description" : "Returns invoice circulation settings.",
        "operationId" : "getCompanyInvoiceCirculationSettings",
        "responses" : {
          "200" : {
            "description" : "Invoice circulation settings was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CirculationSettings"
                }
              }
            }
          },
          "403" : {
            "description" : "No access right to invoice circulation settings.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/company/expenses/collectionpenal/settings" : {
      "get" : {
        "tags" : [ "Company" ],
        "summary" : "Get collection and penal expenses settings.",
        "description" : "Returns company collection and penal expenses settings.",
        "operationId" : "getCompanyCollectionPenalExpensesSettings",
        "responses" : {
          "200" : {
            "description" : "Delivery methods was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CollectionsAndPenalExpenses"
                }
              }
            }
          }
        }
      }
    },
    "/company/einvoiceaddresses" : {
      "get" : {
        "tags" : [ "Company" ],
        "summary" : "Get company's electronic invoice addresses",
        "description" : "Returns company's electronic invoice addresses",
        "operationId" : "getEInvoiceAddresses",
        "responses" : {
          "200" : {
            "description" : "Electronic invoice addresses were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EInvoiceData"
                }
              }
            }
          }
        }
      }
    },
    "/company/deliveryterms" : {
      "get" : {
        "tags" : [ "Company" ],
        "summary" : "Get delivery terms.",
        "description" : "Returns a list of delivery terms allowed in the environment.",
        "operationId" : "getCompanyDeliveryTerms",
        "responses" : {
          "200" : {
            "description" : "Delivery methods was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DeliveryTerms"
                }
              }
            }
          },
          "403" : {
            "description" : "No access right to delivery terms.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/coa" : {
      "get" : {
        "tags" : [ "Chart of accounts" ],
        "summary" : "Get the chart of accounts.",
        "description" : "Returns the chart of accounts for the current environment. It can be modified on the Chart of accounts page in Procountor.",
        "externalDocs" : {
          "url" : "https://help.procountor.fi/en/articles/532542-chart-of-accounts"
        },
        "operationId" : "getChartOfAccount",
        "responses" : {
          "200" : {
            "description" : "The chart of accounts was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LedgerAccounts"
                }
              }
            }
          }
        }
      }
    },
    "/businesspartners/{id}/defaults/products" : {
      "get" : {
        "tags" : [ "Business partners" ],
        "summary" : "Get a business partner default products.",
        "description" : "Endpoint returns default products for given business partner id with all details.",
        "operationId" : "getDefaultProducts",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the business partner",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The partner was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/DefaultProduct"
                  }
                }
              }
            }
          },
          "403" : {
            "description" : "Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "No partner found for given id.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/businesspartners/{id}/defaults/dimensions" : {
      "get" : {
        "tags" : [ "Business partners" ],
        "summary" : "Get default dimensions of business partner.",
        "description" : "Returns default dimensions for a business partner with the given ID.",
        "operationId" : "getDefaultDimensions_1",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the business partner",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The partner default dimensions was successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/DefaultDimensionBasicData"
                  }
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/businesspartners/{id}/defaults/accounts" : {
      "get" : {
        "tags" : [ "Business partners" ],
        "summary" : "Get default accounts of business partner.",
        "description" : "Returns default accounts for a business partner with the given ID with vat information. Default accounts are not available for business partner type 'PERSON'",
        "operationId" : "getDefaultAccounts",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "ID of the business partner",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Default accounts were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BusinessPartnerDefaultAccounts"
                }
              }
            }
          },
          "403" : {
            "description" : "User rights check failed: Insufficient user rights.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          },
          "404" : {
            "description" : "No partner found for given id or partner type is 'PERSON'.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/businesspartners/personaldetails" : {
      "get" : {
        "tags" : [ "Business partners" ],
        "summary" : "Get person details for the current user.",
        "description" : "Returns basic information from the person register for the currently logged in user.\nIncludes eg. name, address, invoicing information and payment information.\n\nFor more information, you can call GET /persons/{id}\n",
        "operationId" : "getPersonalDetails",
        "responses" : {
          "200" : {
            "description" : "Person details were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PersonalDetails"
                }
              }
            }
          },
          "404" : {
            "description" : "Person not found.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    },
    "/bankstatements" : {
      "get" : {
        "tags" : [ "Bank statements" ],
        "summary" : "Get bank statements.",
        "description" : "Returns all bank statements that match the request criteria. Each BankStatementEvent can have a list of child events. In that case, the event model contains an additional \"event\" property with an array of BankStatementEvents as its value.\n\nThis endpoint supports accountNumber parameter in HTTP header.",
        "operationId" : "getBankStatements",
        "parameters" : [ {
          "name" : "startDate",
          "in" : "query",
          "description" : "Start date of the search (invoice billing date)",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-08-31"
        }, {
          "name" : "endDate",
          "in" : "query",
          "description" : "End date of the search (invoice billing date)",
          "schema" : {
            "type" : "string",
            "format" : "date"
          },
          "example" : "2016-08-31"
        }, {
          "name" : "previousId",
          "in" : "query",
          "description" : "Previous invoice ID for pagination",
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          },
          "example" : 123456
        }, {
          "name" : "orderById",
          "in" : "query",
          "description" : "Order the results by invoice ID",
          "schema" : {
            "type" : "string",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "orderByStartDate",
          "in" : "query",
          "description" : "Order the results by start date",
          "schema" : {
            "type" : "string",
            "default" : "DESC",
            "enum" : [ "ASC", "DESC" ]
          },
          "example" : "ASC"
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size for the results. Maximum value: 200.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50,
            "maximum" : 200
          },
          "example" : 20
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for the results",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 2
        }, {
          "name" : "accountNumber",
          "in" : "header",
          "description" : "The bank account number to use when searching bank statements.",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : "FI1234567890123456"
        } ],
        "responses" : {
          "200" : {
            "description" : "The bank statements were successfully returned.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BankStatementsSearchResult"
                }
              }
            }
          },
          "400" : {
            "description" : "Request contains invalid data.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessages"
                }
              }
            }
          }
        }
      }
    }
  },
  "components" : {
    "schemas" : {
      "AccidentInsurance" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of employee accident insurance.",
            "readOnly" : true
          },
          "accidentInsurancePolicyId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Accident insurance policy ID."
          },
          "percent" : {
            "type" : "number",
            "description" : "Accident insurance percentage (category of risk). Scale: 2.",
            "maximum" : 100,
            "minimum" : 0
          },
          "occupationalTitleId" : {
            "type" : "string",
            "description" : "Statistics Finland's classification of occupations (TK10).",
            "maxLength" : 20,
            "minLength" : 0
          },
          "kevaOccupationalTitleId" : {
            "type" : "string",
            "description" : "Keva's titles.",
            "maxLength" : 20,
            "minLength" : 0
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Version. Not allowed in POST. Required in PUT."
          }
        },
        "required" : [ "percent" ]
      },
      "AccidentInsurancePolicy" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of accident insurance policy.",
            "readOnly" : true
          },
          "providerName" : {
            "type" : "string",
            "description" : "Insurance provider name."
          },
          "providerCode" : {
            "type" : "string",
            "description" : "Insurance provider code."
          },
          "number" : {
            "type" : "string",
            "description" : "Policy number."
          },
          "active" : {
            "type" : "boolean",
            "description" : "Is policy active."
          },
          "label" : {
            "type" : "string",
            "description" : "Label."
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Version."
          }
        }
      },
      "AccountingReportData" : {
        "type" : "object",
        "properties" : {
          "periods" : {
            "type" : "array",
            "description" : "List of accounting report periods.",
            "items" : {
              "$ref" : "#/components/schemas/AccountingReportPeriod"
            }
          }
        }
      },
      "AccountingReportPeriod" : {
        "type" : "object",
        "properties" : {
          "startDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Start date of the accounting report period."
          },
          "endDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "End date of the accounting report period."
          },
          "rows" : {
            "type" : "array",
            "description" : "Accounting report period rows.",
            "items" : {
              "$ref" : "#/components/schemas/AccountingReportRow"
            },
            "uniqueItems" : true
          }
        }
      },
      "AccountingReportRequest" : {
        "type" : "object",
        "properties" : {
          "startDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Report start date. Optional, if missing, starting date of the tracking period 'endDate' is in will be used. (financial year if not available)"
          },
          "endDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Report end date."
          },
          "receiptStatus" : {
            "type" : "array",
            "description" : "List of receipt statuses for report. Default value depends on company rights.",
            "items" : {
              "type" : "string",
              "enum" : [ "APPROVED", "SENT", "NOT_SENT", "PAYMENT_SENT_TO_BANK", "PAID", "PARTLY_PAID,", "MARKED_PAID", "PAYMENT_QUEUED", "PAYMENT_DENIED", "UNFINISHED", "VERIFIED", "RECEIVED" ]
            },
            "uniqueItems" : true
          },
          "type" : {
            "type" : "string",
            "description" : "Report type.",
            "enum" : [ "INCOME_STATEMENT, CASH_FLOW, BALANCE_SHEET" ]
          },
          "options" : {
            "$ref" : "#/components/schemas/AccountingReportRequestOptions",
            "description" : "Accounting report request options."
          }
        },
        "required" : [ "endDate", "type" ]
      },
      "AccountingReportRequestOptions" : {
        "type" : "object",
        "properties" : {
          "receiptType" : {
            "type" : "array",
            "description" : "Receipt types that will be included in the report.",
            "items" : {
              "type" : "string",
              "enum" : [ "SALES_INVOICE", "PURCHASE_INVOICE", "TRAVEL_INVOICE", "BILL_OF_CHARGES", "JOURNAL", "SALARY", "VAT_FORM", "EMPLOYER_CONTRIBUTION", "PERIODIC_TAX_RETURN", "VAT_SUMMARY", "SALES_ORDER", "PURCHASE_ORDER", "REFERENCE_PAYMENT", "BANK_STATEMENT_AS_RECEIPT", "RECEIPT_FOR_OPENING_ACCOUNTS" ]
            },
            "uniqueItems" : true
          },
          "receiptCurrency" : {
            "type" : "string",
            "description" : "Currency for the receipt in ISO 4217 format.",
            "enum" : [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "ATS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BEF", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNH", "CNT", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CYP", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GRD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "ITL", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LUF", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MTL", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NIS", "NLG", "NOK", "NPR", "NTD", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PRB", "PTE", "PYG", "QAR", "RMB", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SLS", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWB", "ZWL" ],
            "examples" : [ "EUR" ]
          },
          "receiptName" : {
            "type" : "string",
            "description" : "Receipt name that will be used in the report."
          },
          "entryPeriodStart" : {
            "type" : "string",
            "format" : "date",
            "description" : "Entry period start date that will be used in the report. Date will be rounded down to start of the month."
          },
          "entryPeriodEnd" : {
            "type" : "string",
            "format" : "date",
            "description" : "Entry period end date that will be used in the report. Date will be rounded up to end of the month."
          },
          "transactionValue" : {
            "type" : "string",
            "description" : "Transaction value that will be used in the report."
          },
          "transactionCurrency" : {
            "type" : "string",
            "default" : "EUR",
            "description" : "Transaction currency that will be used in the report. Not considered if transaction value is not given.",
            "enum" : [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "ATS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BEF", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNH", "CNT", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CYP", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GRD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "ITL", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LUF", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MTL", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NIS", "NLG", "NOK", "NPR", "NTD", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PRB", "PTE", "PYG", "QAR", "RMB", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SLS", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWB", "ZWL" ]
          },
          "reportLanguage" : {
            "type" : "string",
            "description" : "Language that will be used in the report."
          },
          "customerCompanyId" : {
            "type" : "string",
            "description" : "Customer company ID that will be used in the accounting report."
          }
        }
      },
      "AccountingReportResponse" : {
        "type" : "object",
        "properties" : {
          "reportParameters" : {
            "$ref" : "#/components/schemas/AccountingReportRequest",
            "description" : "Report parameters that were used to generate the accounting report."
          },
          "reportData" : {
            "$ref" : "#/components/schemas/AccountingReportData",
            "description" : "Generated accounting report data."
          }
        }
      },
      "AccountingReportRow" : {
        "type" : "object",
        "properties" : {
          "rowId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Id of the accounting report row."
          },
          "type" : {
            "type" : "string",
            "description" : "Type of the accounting report row.",
            "enum" : [ "BALANCE", "ROW_FUNCTION" ]
          },
          "name" : {
            "type" : "string",
            "description" : "Name of the accounting row."
          },
          "value" : {
            "type" : "number",
            "description" : "Value of the accounting row."
          },
          "formula" : {
            "type" : "string",
            "description" : "Accounting row function formula.",
            "externalDocs" : {
              "url" : "https://help.procountor.fi/en/articles/532545-report-formulas"
            }
          }
        }
      },
      "AccountingReportTransaction" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Ledger transaction ID."
          },
          "name" : {
            "type" : "string",
            "description" : "Ledger receipt name."
          },
          "receiptNumber" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Ledger receipt number."
          },
          "receiptDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Ledger receipt date."
          },
          "invoiceDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Ledger invoice date."
          },
          "type" : {
            "type" : "string",
            "description" : "Ledger receipt type.",
            "enum" : [ "ACCRUAL", "BANK_STATEMENT_AS_RECEIPT", "BILL_OF_CHARGES", "EMPLOYER_CONTRIBUTION", "JOURNAL", "JOURNAL_BYPASSING_INVOICE_PAGE", "JOURNAL_MOVING_STRAIGHT_TO_ACCOUNTING_PAGE", "OFFER", "PAYMENT_CORRECTION", "PERIODIC_TAX_RETURN", "PURCHASE_INVOICE", "PURCHASE_ORDER", "RECEIPT_FOR_OPENING_ACCOUNTS", "REFERENCE_PAYMENT", "SALARY", "SALES_INVOICE", "SALES_ORDER", "TRACKING_PERIOD_OPENING_RECEIPT", "TRAVEL_INVOICE", "TRAVEL_PLAN", "UNKNOWN_RECEIPT_TYPE_F", "UNKNOWN_RECEIPT_TYPE_G", "VAT_FORM", "VAT_SUMMARY" ]
          },
          "accountingValue" : {
            "type" : "number",
            "description" : "Ledger transaction accounting value."
          },
          "status" : {
            "type" : "string",
            "description" : "Receipt status.",
            "enum" : [ "APPROVED", "DELETED", "EMPTY", "INVALIDATED", "INVOICED", "MARKED_PAID", "NOT_SENT", "OVERRIDDEN", "PAID", "PARTLY_PAID", "PAYMENT_DENIED", "PAYMENT_QUEUED", "PAYMENT_SENT_TO_BANK", "PAYMENT_TRANSACTION_REMOVED", "RECEIVED", "SENT", "STARTED", "UNFINISHED", "UNSAVED", "VERIFIED" ]
          },
          "vatPercent" : {
            "type" : "number",
            "description" : "Vat percent."
          },
          "vatAmount" : {
            "type" : "number",
            "description" : "Vat amount."
          },
          "vatDeductionPercent" : {
            "type" : "number",
            "description" : "Vat deduction percent."
          },
          "vatDeduction" : {
            "type" : "number",
            "description" : "Vat deduction."
          },
          "vatStatus" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Vat status."
          },
          "transactionDescription" : {
            "type" : "string",
            "description" : "Ledger Transaction Description."
          },
          "startDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Start date of the transaction."
          },
          "endDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "End date of the transaction."
          }
        }
      },
      "AccountingRights" : {
        "type" : "object",
        "properties" : {
          "journalReceipts" : {
            "type" : "string",
            "description" : "Access level to journal receipts functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "journalReceiptSearch" : {
            "type" : "string",
            "description" : "Access level to journal receipt search functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "personalJournalReceiptsOnly" : {
            "type" : "boolean",
            "description" : "Is personal journal receipts only limitation enabled."
          },
          "closingOfAccountTools" : {
            "type" : "string",
            "description" : "Access level to closing of account tools functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "preventCreatingEditingInvoices" : {
            "type" : "boolean",
            "description" : "Is prevent creating/editing invoices limitation enabled."
          },
          "preventEditingAccountingPage" : {
            "type" : "boolean",
            "description" : "Is prevent editing accounting page limitation enabled."
          },
          "accountingReports" : {
            "type" : "string",
            "description" : "Access level to accounting reports functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "archive" : {
            "type" : "string",
            "description" : "Access level to archive functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          }
        }
      },
      "AllocationMetadata" : {
        "type" : "object",
        "properties" : {
          "allocationMetadataRows" : {
            "type" : "array",
            "description" : "Metadata allocations for the target resource.",
            "items" : {
              "$ref" : "#/components/schemas/AllocationMetadataRow"
            }
          }
        }
      },
      "AllocationMetadataRow" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the metadata. Generated by Procountor and present in the object returned.",
            "readOnly" : true
          },
          "vatPercentage" : {
            "type" : "number",
            "description" : "The VAT percentage breakdown of the VAT amount payable by VAT rate or exemption. For Reference Payment metadata, this VAT percentage must be allowed for sales. For Bank Statement Event metadata, both purchase and sales percentages are allowed."
          },
          "sum" : {
            "type" : "number",
            "description" : "Sum of the allocation metadata in the currency of the Reference Payment or Bank Statement Event that the metadata is for."
          },
          "comment" : {
            "type" : "string",
            "description" : "Allocation metadata comment.",
            "maxLength" : 512,
            "minLength" : 0
          },
          "vatStatus" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Event VAT status. Use here the numeric parts of VAT status codes listed in \"VAT defaults\" in Procountor. For example, for VAT status code \"vat_12\", use value 12. For Reference Payment metadata, the VAT status must be allowed for use in sales. For Bank Statement Event metadata, both purchase and sales VAT statuses are allowed."
          },
          "ledgerAccountCode" : {
            "type" : "string",
            "description" : "Ledger account code used for the accounting. Must be valid for the current Procountor environment. Use GET /coa to obtain the chart of accounts."
          }
        },
        "required" : [ "sum", "vatPercentage" ]
      },
      "AllocationMetadataWithFullLedgerAccountDataRow" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the metadata. Generated by Procountor and present in the object returned.",
            "readOnly" : true
          },
          "vatPercentage" : {
            "type" : "number",
            "description" : "The VAT percentage breakdown of the VAT amount payable by VAT rate or exemption. For Reference Payment metadata, this VAT percentage must be allowed for sales. For Bank Statement Event metadata, both purchase and sales percentages are allowed."
          },
          "sum" : {
            "type" : "number",
            "description" : "Sum of the allocation metadata in the currency of the Reference Payment or Bank Statement Event that the metadata is for."
          },
          "vatStatus" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Event VAT status. Use here the numeric parts of VAT status codes listed in \"VAT defaults\" in Procountor. For example, for VAT status code \"vat_12\", use value 12. For Reference Payment metadata, the VAT status must be allowed for use in sales. For Bank Statement Event metadata, both purchase and sales VAT statuses are allowed."
          },
          "comment" : {
            "type" : "string",
            "description" : "Allocation metadata comment.",
            "maxLength" : 512,
            "minLength" : 0
          },
          "ledgerAccount" : {
            "$ref" : "#/components/schemas/LedgerAccount",
            "description" : "Ledger account used for the accounting. Must be valid for the current Procountor environment. Use GET /coa to obtain the chart of accounts."
          }
        },
        "required" : [ "sum", "vatPercentage" ]
      },
      "ApiIntegrationApproveRequest" : {
        "type" : "object",
        "properties" : {
          "approve" : {
            "type" : "array",
            "description" : "List of company IDs to approve.",
            "items" : {
              "type" : "integer",
              "format" : "int32"
            }
          },
          "reject" : {
            "type" : "array",
            "description" : "List of company IDs to reject with reason of rejection.",
            "items" : {
              "$ref" : "#/components/schemas/ApiIntegrationRejected"
            }
          }
        }
      },
      "ApiIntegrationApproveResult" : {
        "type" : "object",
        "properties" : {
          "integrationId" : {
            "type" : "string"
          },
          "companiesIntegrated" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ApiIntegrationApprovedDTO"
            }
          }
        }
      },
      "ApiIntegrationApprovedDTO" : {
        "type" : "object",
        "properties" : {
          "companyId" : {
            "type" : "integer",
            "format" : "int32"
          },
          "apiKey" : {
            "type" : "string"
          }
        }
      },
      "ApiIntegrationCompany" : {
        "type" : "object",
        "properties" : {
          "companyId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Id of the company who wants to activate the integration."
          },
          "extraInfo" : {
            "$ref" : "#/components/schemas/ApiIntegrationCompanyExtraInfo",
            "description" : "Additional info of the company who wants to activate the integration."
          }
        }
      },
      "ApiIntegrationCompanyExtraInfo" : {
        "type" : "object",
        "properties" : {
          "companyName" : {
            "type" : "string",
            "description" : "Name of the company. Returned if requested in the integration specification and the user has given their consent to share."
          },
          "country" : {
            "type" : "string",
            "description" : "Country of the company. Returned if requested in the integration specification and the user has given their consent to share.",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_INDIAN_OCEAN_TERRITORY", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORTHERN_MARIANA_ISLANDS", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_MARTIN_FRENCH_PART", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ]
          },
          "accountingOfficeName" : {
            "type" : "string",
            "description" : "Accounting office of the company. Returned if requested in the integration specification and the user has given their consent to share."
          },
          "businessIdentifier" : {
            "$ref" : "#/components/schemas/BusinessIdentifier",
            "description" : "Business identifier of the company"
          }
        }
      },
      "ApiIntegrationCustomer" : {
        "type" : "object",
        "properties" : {
          "companyId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Customer Company ID."
          },
          "integrationVersionStatus" : {
            "type" : "string",
            "description" : "Integration template version status.",
            "enum" : [ "APPROVED", "DELETED", "DEPRECATED", "INVALIDATED", "NEW", "PENDING_APPROVAL", "REJECTED" ]
          }
        }
      },
      "ApiIntegrationInitiator" : {
        "type" : "object",
        "properties" : {
          "email" : {
            "type" : "string",
            "description" : "Email address of the user. Returned if requested in the integration specification and the user has given their consent to share."
          },
          "userFullName" : {
            "type" : "string",
            "description" : "Firstname and lastname of the user. Returned if requested in the integration specification and the user has given their consent to share."
          }
        }
      },
      "ApiIntegrationRejected" : {
        "type" : "object",
        "properties" : {
          "companyId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Company ID for which API integration is rejected."
          },
          "reason" : {
            "type" : "string",
            "description" : "Reason for rejection.",
            "maxLength" : 255,
            "minLength" : 0
          }
        }
      },
      "ApiIntegrationRequestData" : {
        "type" : "object",
        "properties" : {
          "integrationId" : {
            "type" : "string",
            "description" : "ID of the integration."
          },
          "expires" : {
            "type" : "string",
            "description" : "Request expiration date."
          },
          "initiator" : {
            "$ref" : "#/components/schemas/ApiIntegrationInitiator",
            "description" : "Request initiator data."
          },
          "companiesToIntegrate" : {
            "type" : "array",
            "description" : "Companies selected for integration.",
            "items" : {
              "$ref" : "#/components/schemas/ApiIntegrationCompany"
            }
          }
        },
        "required" : [ "integrationId" ]
      },
      "Attachment" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the attachment. Generated by Procountor and present in the object returned.",
            "readOnly" : true
          },
          "name" : {
            "type" : "string",
            "description" : "Attachment name. Include a correct file extension to the value.",
            "examples" : [ "Picture.jpg" ]
          },
          "referenceType" : {
            "type" : "string",
            "description" : "Reference type of the attachment. Indicates what object is the owner of the attachment. Exception: for JOURNAL type ledger receipts, use type INVOICE.",
            "enum" : [ "BANKSTATEMENTEVENT", "COST_RECEIPT", "CUSTOMER_BUSINESS_PARTNER_REGISTER", "EMPLOYEE_INFO", "ENVIRONMENT", "FINANCIAL_STATEMENT", "INVOICE", "INVOICEDRAFT_ITEM", "LEDGERRECEIPT", "NETS_COLLECTION", "PERSON_BUSINESS_PARTNER_REGISTER", "PURCHASE_PRODUCT_REGISTER", "REFERENCE_PAYMENT", "SALES_PRODUCT_REGISTER", "SUPPLIER_BUSINESS_PARTNER_REGISTER" ]
          },
          "referenceId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the referenced object. Exception: for JOURNAL type ledger receipts, use the value of invoiceId referring to the associated invoice."
          },
          "mimeType" : {
            "type" : "string",
            "description" : "Mime type of the attachment. Determined from the file extension.",
            "externalDocs" : {
              "url" : "http://www.freeformatter.com/mime-types-list.html"
            }
          },
          "sendWithInvoice" : {
            "type" : "boolean",
            "description" : "Indicator if attachment has to be send with the invoice. 'sendWithInvoice' can be set only for receipt types: SALES_INVOICE, SALES_ORDER, PURCHASE_ORDER"
          }
        },
        "required" : [ "name", "referenceId", "referenceType", "sendWithInvoice" ]
      },
      "AttachmentRename" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Attachment name. Include a correct file extension to the value.",
            "examples" : [ "Picture.jpg" ]
          }
        },
        "required" : [ "name" ]
      },
      "AttachmentSearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "Search results.",
            "items" : {
              "$ref" : "#/components/schemas/Document"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/SearchResultMetaData",
            "description" : "Search result metadata."
          }
        }
      },
      "AverageDailyActualWorkdays" : {
        "type" : "object",
        "properties" : {
          "actualWorkdaysInFirstYear" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Actual workdays in first year."
          },
          "actualWorkdaysInSecondYear" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Actual workdays in second year. Only if salary slip payment period covers two years."
          }
        },
        "required" : [ "actualWorkdaysInFirstYear" ]
      },
      "BankAccount" : {
        "type" : "object",
        "properties" : {
          "accountNumber" : {
            "type" : "string",
            "description" : "Bank account IBAN. If using a financing agreement, the account number must match the account of the specified financing agreement. The account number must be valid for the specified country, include country code and exclude any spaces.",
            "externalDocs" : {
              "description" : "Information about adding bank accounts in Procountor.",
              "url" : "https://help.procountor.fi/en/articles/531687-bank-account-information"
            }
          },
          "bic" : {
            "type" : "string",
            "description" : "Bank account BIC/SWIFT. Not supported for SALES_INVOICE and SALES_ORDER."
          }
        }
      },
      "BankAccountAlias" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string",
            "description" : "Type of associated account number.",
            "enum" : [ "BANKGIRO", "KREDITOR", "PLUSGIRO" ]
          },
          "accountNumber" : {
            "type" : "string",
            "description" : "Associated account number."
          }
        },
        "required" : [ "accountNumber", "type" ]
      },
      "BankStatement" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of the bank statement."
          },
          "accountNumber" : {
            "type" : "string",
            "description" : "Account number for which the statement is generated."
          },
          "startDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Start date of the bank statement."
          },
          "endDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "End date of the bank statement."
          },
          "currency" : {
            "type" : "string",
            "description" : "Currency of the bank statement in ISO 4217 format.",
            "enum" : [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "ATS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BEF", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNH", "CNT", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CYP", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GRD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "ITL", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LUF", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MTL", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NIS", "NLG", "NOK", "NPR", "NTD", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PRB", "PTE", "PYG", "QAR", "RMB", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SLS", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWB", "ZWL" ],
            "examples" : [ "EUR" ]
          },
          "numberOfDeposits" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of deposits during the bank statement period."
          },
          "depositSum" : {
            "type" : "number",
            "description" : "Sum of the deposits."
          },
          "numberOfWithdrawals" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of withdrawals during the bank statement period."
          },
          "withdrawalSum" : {
            "type" : "number",
            "description" : "Sum of the withdrawals."
          },
          "startBalance" : {
            "type" : "number",
            "description" : "Start balance of the account before this bank statement."
          },
          "endBalance" : {
            "type" : "number",
            "description" : "End balance of the account after this bank statement."
          },
          "statementNumber" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of bank statement."
          },
          "events" : {
            "type" : "array",
            "description" : "List of bank statement events. Events can be nested.",
            "items" : {
              "$ref" : "#/components/schemas/BankStatementEvent"
            }
          }
        }
      },
      "BankStatementEvent" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the bank statement event."
          },
          "payDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Date when the payment was paid by the payer in his/her own bank."
          },
          "valueDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Date when the event was registered in the counterpart bank."
          },
          "sum" : {
            "type" : "number",
            "description" : "Sum of the bank statement event in the currency of the bank statement this event belongs to."
          },
          "accountNumber" : {
            "type" : "string",
            "description" : "Account number of the counterparty."
          },
          "name" : {
            "type" : "string",
            "description" : "Name of the counterparty."
          },
          "explanationCode" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Explanation code of the event. Explanation code describes the type of the event.",
            "externalDocs" : {
              "description" : "Information about the explanation codes in Finland. Pages 39-40",
              "url" : "https://www.finanssiala.fi/wp-content/uploads/2021/03/ISO-20022-Account-Statement-Guide-2020.pdf"
            }
          },
          "archiveCode" : {
            "type" : "string",
            "description" : "Archive code of the event. Archive codes are unique in one bank but two events from different banks can share the same archive code."
          },
          "message" : {
            "type" : "string",
            "description" : "Message of the event."
          },
          "reference" : {
            "type" : "string",
            "description" : "Reference of the event."
          },
          "allocated" : {
            "type" : "boolean",
            "description" : "Is the event allocated to an invoice. If it is, the event must also have an invoice ID."
          },
          "invoiceId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the invoice linked to the event."
          },
          "productId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "ID of the product allocated to the bank statement event."
          },
          "endToEndId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the payment."
          },
          "attachments" : {
            "type" : "array",
            "description" : "List of attachments added to the event.",
            "items" : {
              "$ref" : "#/components/schemas/Attachment"
            }
          },
          "allocationMetadataRows" : {
            "type" : "array",
            "description" : "Metadata allocations for the bank statement event.",
            "items" : {
              "$ref" : "#/components/schemas/AllocationMetadataWithFullLedgerAccountDataRow"
            }
          }
        }
      },
      "BankStatementsSearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "Search results.",
            "items" : {
              "$ref" : "#/components/schemas/BankStatement"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/SearchResultMetaData",
            "description" : "Search result metadata."
          }
        }
      },
      "BasicFactoringContract" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Factoring contract identifier.",
            "readOnly" : true
          },
          "financingCompanyName" : {
            "type" : "string",
            "description" : "Financing company name.",
            "minLength" : 1
          },
          "financingCompanyBankAccount" : {
            "type" : "string",
            "description" : "Financing company bank account.",
            "minLength" : 1
          },
          "contractNumber" : {
            "type" : "string",
            "description" : "Agreement number.",
            "maxLength" : 80,
            "minLength" : 1
          },
          "transferNotification" : {
            "type" : "array",
            "description" : "Transfer notifications.",
            "items" : {
              "$ref" : "#/components/schemas/TransferNotification"
            }
          },
          "status" : {
            "type" : "string",
            "default" : "ACTIVE",
            "description" : "Contract status.",
            "enum" : [ "ACTIVE", "INACTIVE" ]
          }
        },
        "required" : [ "contractNumber", "financingCompanyBankAccount", "financingCompanyName" ]
      },
      "BasicInvoicingInfo" : {
        "type" : "object",
        "properties" : {
          "customerNumber" : {
            "type" : "string",
            "description" : "Customer number of the partner."
          },
          "identifier" : {
            "type" : "string",
            "description" : "Identifier of the partner."
          },
          "identifierType" : {
            "type" : "string",
            "description" : "Identifier type of the partner."
          }
        }
      },
      "BasicPaymentTransactionData" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique payment identifier."
          },
          "invoiceId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique invoice identifier."
          },
          "paymentDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Date specifying when the payment transaction has to be performed."
          },
          "amount" : {
            "type" : "number",
            "description" : "The amount of the payment in the given currency. Currency is defined within the invoice."
          },
          "receiverName" : {
            "type" : "string",
            "description" : "Recipient name."
          },
          "status" : {
            "type" : "string",
            "description" : "Payment status.",
            "enum" : [ "APPROVED", "DELETED", "EMPTY", "INVALIDATED", "INVOICED", "MARKED_PAID", "NOT_SENT", "OVERRIDDEN", "PAID", "PARTLY_PAID", "PAYMENT_DENIED", "PAYMENT_QUEUED", "PAYMENT_SENT_TO_BANK", "PAYMENT_TRANSACTION_REMOVED", "RECEIVED", "SENT", "STARTED", "UNFINISHED", "UNSAVED", "VERIFIED" ]
          },
          "serviceCharge" : {
            "type" : "string",
            "description" : "If not provided, for Finnish foreign payment it will be automatically set to BOTH_PAY_OWN_FEES.",
            "enum" : [ "BOTH_PAY_OWN_FEES", "PAYER_PAY_BOTH_FEES" ]
          },
          "paidAmount" : {
            "type" : "number",
            "description" : "Payment amount in paid currency."
          },
          "paidCurrency" : {
            "type" : "string",
            "description" : "Currency of the payment in paid currency in ISO 4217 format.",
            "enum" : [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "ATS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BEF", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNH", "CNT", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CYP", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GRD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "ITL", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LUF", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MTL", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NIS", "NLG", "NOK", "NPR", "NTD", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PRB", "PTE", "PYG", "QAR", "RMB", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SLS", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWB", "ZWL" ],
            "examples" : [ "SEK" ]
          }
        }
      },
      "BasicRegistryInfo" : {
        "type" : "object",
        "properties" : {
          "active" : {
            "type" : "boolean",
            "description" : "Status of the partner."
          }
        }
      },
      "BusinessIdentifier" : {
        "type" : "object",
        "properties" : {
          "brnType" : {
            "type" : "string",
            "description" : "Business Registration Number (BRN) type of current company identifier. (example values: HETU, SSN, FI, NO,...)",
            "enum" : [ "ASSN", "DK", "FI", "HETU", "NO", "PN", "SE", "SSN", "YHD" ],
            "examples" : [ "HETU" ]
          },
          "code" : {
            "type" : "string",
            "description" : "Business Registration Number (BRN) code (Example value: '1234567-8', basically BRN without type prefix).",
            "examples" : [ "1234567-8" ],
            "maxLength" : 25,
            "minLength" : 0
          }
        }
      },
      "BusinessPartner" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the partner.",
            "readOnly" : true
          },
          "name" : {
            "type" : "string",
            "description" : "Name of the partner.",
            "maxLength" : 80,
            "minLength" : 1
          },
          "type" : {
            "type" : "string",
            "description" : "Type of the partner.",
            "enum" : [ "CUSTOMER", "SUPPLIER", "PERSON" ]
          },
          "address" : {
            "$ref" : "#/components/schemas/BusinessPartnerAddress",
            "description" : "Address of the partner. Required for customer"
          },
          "billingAddress" : {
            "$ref" : "#/components/schemas/BusinessPartnerBillingAddress",
            "description" : "Billing address of the partner."
          },
          "deliveryAddress" : {
            "$ref" : "#/components/schemas/BusinessPartnerDeliveryAddress",
            "description" : "Delivery address of the partner."
          },
          "invoicingInfo" : {
            "$ref" : "#/components/schemas/InvoicingInfo",
            "description" : "Invoicing info data of the partner."
          },
          "attachments" : {
            "type" : "array",
            "description" : "List of attachments added to the business partner.",
            "items" : {
              "$ref" : "#/components/schemas/Attachment"
            },
            "readOnly" : true
          },
          "contactPersons" : {
            "type" : "array",
            "description" : "Contact persons of the partner.",
            "items" : {
              "$ref" : "#/components/schemas/BusinessPartnerContactPerson"
            }
          },
          "additionalInfo" : {
            "$ref" : "#/components/schemas/BusinessPartnerAdditionalInfo",
            "description" : "Additional info of the partner."
          },
          "paymentInfo" : {
            "$ref" : "#/components/schemas/BusinessPartnerPaymentInfo",
            "description" : "Payment info of the partner."
          },
          "registryInfo" : {
            "$ref" : "#/components/schemas/RegistryInfo",
            "description" : "Registry info data of the partner."
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Business partner version timestamp. Automatically generated by Procountor and updated every time the partner is modified. When using PATCH /businesspartners, it is required to include the latest version timestamp of the partner to the request. This prevents conflicts if the partner is being modified from several sources.It is not required for POST and will be omitted"
          }
        },
        "required" : [ "name", "paymentInfo", "type" ]
      },
      "BusinessPartnerAccount" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "string",
            "description" : "Code of the account."
          },
          "name" : {
            "type" : "string",
            "description" : "Name of the account."
          }
        }
      },
      "BusinessPartnerAccountsInfo" : {
        "type" : "object",
        "properties" : {
          "debitAccount" : {
            "$ref" : "#/components/schemas/BusinessPartnerAccount",
            "description" : "Default account of the given type."
          },
          "creditAccount" : {
            "$ref" : "#/components/schemas/BusinessPartnerAccount",
            "description" : "Default account of the given type."
          },
          "reconciliationAccount" : {
            "$ref" : "#/components/schemas/BusinessPartnerAccount",
            "description" : "Default account of the given type."
          }
        }
      },
      "BusinessPartnerAdditionalInfo" : {
        "type" : "object",
        "properties" : {
          "defaultAdditionalInformation" : {
            "type" : "string",
            "description" : "Default additional information of the partner.",
            "maxLength" : 500,
            "minLength" : 0
          },
          "defaultReference" : {
            "type" : "string",
            "description" : "Default reference of the partner."
          },
          "group" : {
            "type" : "string",
            "description" : "Group.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "parentCompanyIdType" : {
            "type" : "string",
            "description" : "Company ID of the partner. If provided partnerCompanyId will be validated according to the type.",
            "enum" : [ "", "HETU", "YHD", "PN", "NO", "AT", "BE", "BG", "CY", "HR", "CZ", "DK", "EE", "FI", "FR", "DE", "GB", "EL", "HU", "IE", "IT", "LV", "LT", "LU", "MT", "NL", "PL", "PT", "RO", "SK", "SI", "ES", "SE" ]
          },
          "parentCompanyId" : {
            "type" : "string",
            "description" : "Parent company ID of the partner.",
            "maxLength" : 20,
            "minLength" : 0
          },
          "auxiliaryCompanyName" : {
            "type" : "string",
            "description" : "Auxiliary company name.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "formerCompanyName" : {
            "type" : "string",
            "description" : "Former company name of the partner.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "sector" : {
            "type" : "string",
            "description" : "Sector of the partner.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "webAddress" : {
            "type" : "string",
            "description" : "Web address of the partner.",
            "maxLength" : 100,
            "minLength" : 0
          },
          "comments1" : {
            "type" : "string",
            "description" : "First comment",
            "maxLength" : 100,
            "minLength" : 0
          },
          "comments2" : {
            "type" : "string",
            "description" : "Second comment",
            "maxLength" : 100,
            "minLength" : 0
          },
          "invoicePeriod" : {
            "type" : "string",
            "description" : "Invoice period of the partner.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "withholdingRegisterMarking" : {
            "type" : "string",
            "description" : "Withholding register marking of the partner.",
            "maxLength" : 20,
            "minLength" : 0
          },
          "invoiceLedger" : {
            "type" : "string",
            "default" : "INVOICE_LEDGER",
            "description" : "Invoice ledger of the partner. If not provided, it will be automatically set to INVOICE_LEDGER.",
            "enum" : [ "CLEARING", "INVOICE_LEDGER" ]
          }
        }
      },
      "BusinessPartnerAddress" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Name (\"first line\") in the address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "specifier" : {
            "type" : "string",
            "description" : "Specifier, such as c/o address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "street" : {
            "type" : "string",
            "description" : "Street.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "zip" : {
            "type" : "string",
            "description" : "Zip code.",
            "maxLength" : 20,
            "minLength" : 0
          },
          "city" : {
            "type" : "string",
            "description" : "City.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "country" : {
            "type" : "string",
            "description" : "Country.",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_INDIAN_OCEAN_TERRITORY", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORTHERN_MARIANA_ISLANDS", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_MARTIN_FRENCH_PART", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ],
            "examples" : [ "SWEDEN" ]
          },
          "subdivision" : {
            "type" : "string",
            "description" : "Subdivision of the city",
            "maxLength" : 35,
            "minLength" : 0
          }
        }
      },
      "BusinessPartnerBasicInfo" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier for the partner."
          },
          "name" : {
            "type" : "string",
            "description" : "Name of the partner"
          },
          "billingAddress" : {
            "$ref" : "#/components/schemas/BusinessPartnerBillingAddress",
            "description" : "Billing address of the partner."
          },
          "invoicingInfo" : {
            "$ref" : "#/components/schemas/BasicInvoicingInfo",
            "description" : "Invoicing info data of the partner."
          },
          "registryInfo" : {
            "$ref" : "#/components/schemas/BasicRegistryInfo",
            "description" : "Registry info data of the partner.",
            "readOnly" : true
          },
          "type" : {
            "type" : "string",
            "description" : "Type of the partner.",
            "enum" : [ "CUSTOMER", "SUPPLIER", "PERSON" ]
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Business partner version timestamp. Automatically generated by Procountor and updated every time the partner is modified. When using PATCH /businesspartners, it is required to include the latest version timestamp of the partner to the request. This prevents conflicts if the partner is being modified from several sources.It is not required for POST and will be omitted"
          }
        }
      },
      "BusinessPartnerBillingAddress" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Name (\"first line\") in the address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "specifier" : {
            "type" : "string",
            "description" : "Specifier, such as c/o address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "street" : {
            "type" : "string",
            "description" : "Street.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "zip" : {
            "type" : "string",
            "description" : "Zip code.",
            "maxLength" : 20,
            "minLength" : 0
          },
          "city" : {
            "type" : "string",
            "description" : "City.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "country" : {
            "type" : "string",
            "description" : "Country.",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_INDIAN_OCEAN_TERRITORY", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORTHERN_MARIANA_ISLANDS", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_MARTIN_FRENCH_PART", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ],
            "examples" : [ "SWEDEN" ]
          },
          "subdivision" : {
            "type" : "string",
            "description" : "Subdivision of the city",
            "maxLength" : 35,
            "minLength" : 0
          }
        }
      },
      "BusinessPartnerContactPerson" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Contact person ID.",
            "readOnly" : true
          },
          "name" : {
            "type" : "string",
            "description" : "Name of contact person.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "email" : {
            "type" : "string",
            "format" : "email",
            "description" : "Email of contact person.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "phone" : {
            "type" : "string",
            "description" : "Phone of contact person.",
            "maxLength" : 40,
            "minLength" : 0
          }
        }
      },
      "BusinessPartnerDefaultAccounts" : {
        "type" : "object",
        "properties" : {
          "vatPercent" : {
            "type" : "number",
            "description" : "Default VAT %."
          },
          "vatDeduction" : {
            "type" : "number",
            "description" : "Default VAT deduction %."
          },
          "vatStatus" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "VAT status."
          },
          "vatProcessing" : {
            "type" : "string",
            "description" : "VAT processing."
          },
          "combineInvoiceRows" : {
            "type" : "boolean",
            "description" : "Incoming invoice parsing. If true always combine the invoice rows of an incoming invoice into one summary row using product 'Invoicing according to attachment'."
          },
          "salesInvoiceAccounts" : {
            "$ref" : "#/components/schemas/BusinessPartnerAccountsInfo",
            "description" : "Default accounts for the given invoice type."
          },
          "purchaseInvoiceAccounts" : {
            "$ref" : "#/components/schemas/BusinessPartnerAccountsInfo",
            "description" : "Default accounts for the given invoice type."
          },
          "travelInvoiceAccounts" : {
            "$ref" : "#/components/schemas/BusinessPartnerAccountsInfo",
            "description" : "Default accounts for the given invoice type."
          },
          "expenseClaimAccounts" : {
            "$ref" : "#/components/schemas/BusinessPartnerAccountsInfo",
            "description" : "Default accounts for the given invoice type."
          },
          "journalAccounts" : {
            "$ref" : "#/components/schemas/BusinessPartnerAccountsInfo",
            "description" : "Default accounts for the given invoice type."
          }
        }
      },
      "BusinessPartnerDeliveryAddress" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Name (\"first line\") in the address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "specifier" : {
            "type" : "string",
            "description" : "Specifier, such as c/o address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "street" : {
            "type" : "string",
            "description" : "Street.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "zip" : {
            "type" : "string",
            "description" : "Zip code.",
            "maxLength" : 20,
            "minLength" : 0
          },
          "city" : {
            "type" : "string",
            "description" : "City.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "country" : {
            "type" : "string",
            "description" : "Country.",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_INDIAN_OCEAN_TERRITORY", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORTHERN_MARIANA_ISLANDS", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_MARTIN_FRENCH_PART", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ],
            "examples" : [ "SWEDEN" ]
          },
          "subdivision" : {
            "type" : "string",
            "description" : "Subdivision of the city",
            "maxLength" : 35,
            "minLength" : 0
          }
        }
      },
      "BusinessPartnerGroup" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Id of the partner group."
          },
          "name" : {
            "type" : "string",
            "description" : "Name of the partner group.",
            "maxLength" : 80,
            "minLength" : 1
          },
          "type" : {
            "type" : "string",
            "description" : "Type of the partner group.",
            "enum" : [ "CUSTOMER", "SUPPLIER", "PERSON" ]
          },
          "active" : {
            "type" : "boolean",
            "description" : "Is partner group active? NOTE: If the business partner group is in use in the debt collection settings for the Maksuvahti service, Ropo service or is set as the automatic distraint authority group, then it can't be set to inactive"
          }
        },
        "required" : [ "name", "type" ]
      },
      "BusinessPartnerGroupSearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "Search results.",
            "items" : {
              "$ref" : "#/components/schemas/BusinessPartnerGroup"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/SearchResultMetaData",
            "description" : "Search result metadata."
          }
        }
      },
      "BusinessPartnerPaymentDetails" : {
        "type" : "object",
        "properties" : {
          "paymentMethod" : {
            "type" : "string",
            "description" : "Payment method.",
            "enum" : [ "BANK_TRANSFER", "CASH", "CLEARING", "CREDIT_CARD_CHARGE", "DIRECT_DEBIT", "DIRECT_PAYMENT", "DKLMPKRE", "DOMESTIC_PAYMENT_BANKGIRO", "DOMESTIC_PAYMENT_CREDITOR", "DOMESTIC_PAYMENT_PLUSGIRO", "FOREIGN_PAYMENT", "NETS", "OPEN_PAYMENTS_CURRENCY_SERVICE", "OTHER" ]
          },
          "currency" : {
            "type" : "string",
            "description" : "Default currency.",
            "enum" : [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "ATS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BEF", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNH", "CNT", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CYP", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GRD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "ITL", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LUF", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MTL", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NIS", "NLG", "NOK", "NPR", "NTD", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PRB", "PTE", "PYG", "QAR", "RMB", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SLS", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWB", "ZWL" ]
          },
          "bankAccount" : {
            "$ref" : "#/components/schemas/BankAccount",
            "description" : "Bank account number."
          },
          "paymentTermDays" : {
            "type" : "string",
            "description" : "Payment term days."
          },
          "paymentTermPercentage" : {
            "type" : "number",
            "description" : "Payment term percentage."
          },
          "penalInterestRate" : {
            "type" : "number",
            "description" : "Penal interest rate."
          },
          "discountPercentage" : {
            "type" : "number",
            "description" : "Discount percentage."
          },
          "clearingCode" : {
            "type" : "string",
            "description" : "Clearing code"
          }
        }
      },
      "BusinessPartnerPaymentInfo" : {
        "type" : "object",
        "properties" : {
          "factoringContractId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Factoring contract ID of the partner."
          },
          "paymentMethod" : {
            "type" : "string",
            "description" : "Payment method of the partner. The DKLMPKRE method is deprecated and read only, DOMESTIC_PAYMENT_CREDITOR should be used instead.",
            "enum" : [ "BANK_TRANSFER", "DIRECT_DEBIT", "DIRECT_PAYMENT", "CLEARING", "CREDIT_CARD_CHARGE", "FOREIGN_PAYMENT", "OTHER", "CASH", "DOMESTIC_PAYMENT_PLUSGIRO", "DOMESTIC_PAYMENT_BANKGIRO", "DOMESTIC_PAYMENT_CREDITOR", "DKLMPKRE", "NETS" ]
          },
          "bankAccount" : {
            "type" : "string",
            "description" : "Bank account of the partner. For CUSTOMER, if bank account is missing or null, then the default bank account is taken. To set an empty bank account, send empty string. Empty string can be rejected if bank account is required for the given payment method; in Swedish environments it is rejected for CUSTOMER with BANK_TRANSFER or FOREIGN_PAYMENT."
          },
          "paymentTermDays" : {
            "type" : "string",
            "description" : "Payment term days of the partner."
          },
          "paymentTermPercentage" : {
            "type" : "number",
            "description" : "Payment term percentage of the partner."
          },
          "penalInterestRate" : {
            "type" : "number",
            "description" : "Penal interest rate of the partner."
          },
          "discountPercentage" : {
            "type" : "number",
            "description" : "Discount percentage of the partner."
          },
          "cashDiscount" : {
            "$ref" : "#/components/schemas/CashDiscount",
            "description" : "Only SALES_INVOICE, SALES_ORDER, PURCHASE_INVOICE and PURCHASE_ORDER. Cash discount set on the invoice."
          },
          "currency" : {
            "type" : "string",
            "description" : "Currency of the partner.",
            "enum" : [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "ATS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BEF", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNH", "CNT", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CYP", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GRD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "ITL", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LUF", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MTL", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NIS", "NLG", "NOK", "NPR", "NTD", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PRB", "PTE", "PYG", "QAR", "RMB", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SLS", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWB", "ZWL" ]
          },
          "deliveryMethod" : {
            "type" : "string",
            "description" : "Delivery method of the partner."
          },
          "clearingCode" : {
            "type" : "string",
            "description" : "Clearing code of the bank account."
          },
          "bic" : {
            "type" : "string",
            "description" : "BIC of the bank account."
          },
          "customerAccountNumber" : {
            "type" : "string",
            "description" : "Customer account number used only for NETS payments"
          }
        },
        "required" : [ "paymentMethod" ]
      },
      "BusinessPartnerSearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "Search results.",
            "items" : {
              "$ref" : "#/components/schemas/BusinessPartnerBasicInfo"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/SearchResultMetaData",
            "description" : "Search result metadata."
          }
        }
      },
      "CarBenefitRowDetails" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of employee salary base car benefit row details.",
            "readOnly" : true
          },
          "carAgeGroup" : {
            "type" : "string",
            "description" : "Age group of the car.",
            "enum" : [ "A", "ABROAD", "B", "C" ]
          },
          "benefitLimited" : {
            "type" : "boolean",
            "description" : "Whether benefit is limited."
          },
          "emissionValue" : {
            "type" : "number",
            "description" : "The carbon dioxide emission value (g/km) of the car. Scale: 2.",
            "maximum" : 100,
            "minimum" : 0
          }
        },
        "required" : [ "benefitLimited", "carAgeGroup" ]
      },
      "CashDiscount" : {
        "type" : "object",
        "properties" : {
          "optionList" : {
            "type" : "array",
            "description" : "Up to three cash discount options can be provided. Any additional values enteredwill be ignored. Provided cash discount options will be saved in ascending order by numberOfDays.",
            "items" : {
              "$ref" : "#/components/schemas/CashDiscountOption"
            }
          },
          "cashDiscountsTermType" : {
            "type" : "string",
            "description" : "The payment term type indicates the start point for payment due date calculation.On Danish environment, may select between two options: FROM_INV_DATE or FROM_END_OF_MONTH.For other environments, the only selectable term type is FROM_INV_DATE,which is also the default value across all environments.",
            "enum" : [ "FROM_END_OF_MONTH", "FROM_INV_DATE" ]
          }
        }
      },
      "CashDiscountOption" : {
        "type" : "object",
        "properties" : {
          "numberOfDays" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Days specified in cash discount",
            "maximum" : 999
          },
          "discountPercentage" : {
            "type" : "number",
            "description" : "Discount percentage specified in cash discount",
            "maximum" : 99.99
          }
        }
      },
      "CheckingEvent" : {
        "type" : "object",
        "properties" : {
          "comment" : {
            "type" : "string",
            "description" : "Comment for verification or approval event.",
            "maxLength" : 100,
            "maximum" : 100,
            "minLength" : 0
          }
        }
      },
      "CirculationSettings" : {
        "type" : "object",
        "properties" : {
          "useForPurchaseInvoices" : {
            "type" : "boolean",
            "description" : "Indicates if approval circulation is enabled for purchase invoices."
          },
          "useForTravelAndExpenseInvoices" : {
            "type" : "boolean",
            "description" : "Indicates if approval circulation is enabled for travel and expense invoices."
          },
          "reminderInterval" : {
            "type" : "string",
            "description" : "Represents the amount of time in which circulation notification will be sent.",
            "enum" : [ "EVERY_SECOND_DAY", "EVERY_THIRD_DAY", "ONCE_A_DAY", "ONCE_A_WEEK", "ONLY_ONCE" ]
          },
          "forceNotifications" : {
            "type" : "boolean",
            "description" : "Indicates whether forced notifications are enabled."
          },
          "useDeterminedOrder" : {
            "type" : "boolean",
            "description" : "Indicates if determined order is enabled for verification and approval."
          },
          "allowPaymentOnlyWhenApproved" : {
            "type" : "boolean",
            "description" : "Indicates whether payment is allowed only after approval."
          },
          "allowInvoiceSpecificDiscussion" : {
            "type" : "boolean",
            "description" : "Indicates whether specific discussion for invoice is allowed."
          },
          "allowExtendedTaggingInDiscussion" : {
            "type" : "boolean",
            "description" : "Indicates whether extended tagging in discussion is allowed."
          },
          "allocatePurchaseOrdersAndInvoicesInChecking" : {
            "type" : "boolean",
            "description" : "Indicates whether purchase orders and invoices in invoice checking are allocated."
          },
          "maxVerifiers" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Maximum number of verifiers."
          },
          "maxAcceptors" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Maximum number of acceptors."
          },
          "verifiers" : {
            "type" : "array",
            "description" : "List of verifiers.",
            "items" : {
              "$ref" : "#/components/schemas/Verifier"
            }
          },
          "acceptors" : {
            "type" : "array",
            "description" : "List of acceptors.",
            "items" : {
              "$ref" : "#/components/schemas/Verifier"
            }
          },
          "allowPersonalSubstitution" : {
            "type" : "boolean",
            "description" : "Indicate whether setting personal substitutions is allowed."
          },
          "substitutions" : {
            "type" : "array",
            "description" : "List of substitutions.",
            "items" : {
              "$ref" : "#/components/schemas/Substitution"
            }
          }
        }
      },
      "CollectionsAndPenalExpenses" : {
        "type" : "object",
        "properties" : {
          "useAutomaticHandling" : {
            "type" : "boolean",
            "description" : "Indicates if automatic handling of collection and penal costs is enabled."
          },
          "collectionCostsProduct" : {
            "$ref" : "#/components/schemas/ProductBasicInfo",
            "description" : "Collection costs product."
          },
          "penalExpenseProduct" : {
            "$ref" : "#/components/schemas/ProductBasicInfo",
            "description" : "Penal expense product."
          },
          "penalInterestDateMargin" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Penal expense date margin."
          },
          "minimumPenalInterestSum" : {
            "type" : "number",
            "description" : "The minimum sum of penal interest to be calculated."
          },
          "defaultSalesInvoiceInterest" : {
            "type" : "number",
            "description" : "Default sales invoice interest rate."
          },
          "defaultSalesInvoicePaymentTerms" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Default terms of payment for sales invoices."
          },
          "collectionPartner" : {
            "type" : "string",
            "description" : "Collection partner."
          }
        }
      },
      "Comment" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Identifier for the comment.",
            "readOnly" : true
          },
          "author" : {
            "type" : "string",
            "description" : "Display name for comment author.",
            "readOnly" : true
          },
          "dateTime" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Comment date.",
            "readOnly" : true
          },
          "comment" : {
            "type" : "string",
            "description" : "Comment on the related item."
          },
          "taggedUsersInfo" : {
            "$ref" : "#/components/schemas/TaggedUsersInfo",
            "description" : "Information about tagged users."
          }
        },
        "required" : [ "comment" ]
      },
      "CommentWithTaggedUsers" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Identifier for the comment.",
            "readOnly" : true
          },
          "author" : {
            "type" : "string",
            "description" : "Display name for comment author.",
            "readOnly" : true
          },
          "dateTime" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Comment date.",
            "readOnly" : true
          },
          "comment" : {
            "type" : "string",
            "description" : "Comment on the related item."
          },
          "taggedUsersInfo" : {
            "$ref" : "#/components/schemas/TaggedUsersInfo",
            "description" : "Information about tagged users."
          },
          "taggedUsers" : {
            "type" : "array",
            "description" : "List of tagged users.",
            "items" : {
              "$ref" : "#/components/schemas/TaggedUser"
            }
          }
        },
        "required" : [ "comment" ]
      },
      "Comments" : {
        "type" : "object",
        "properties" : {
          "comments" : {
            "type" : "array",
            "description" : "List of comments.",
            "items" : {
              "$ref" : "#/components/schemas/Comment"
            }
          }
        }
      },
      "Company" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "ID of current company."
          },
          "name" : {
            "type" : "string",
            "description" : "Name of current company.",
            "minLength" : 1
          },
          "country" : {
            "type" : "string",
            "description" : "Country of current company.",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_INDIAN_OCEAN_TERRITORY", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORTHERN_MARIANA_ISLANDS", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_MARTIN_FRENCH_PART", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ],
            "readOnly" : true
          },
          "productVersion" : {
            "type" : "string",
            "description" : "Product version of current company.",
            "enum" : [ "BACKOFFICE", "BACKOFFICE_BASIC", "BACKOFFICE_PLUS", "BACKOFFICE_PREMIUM", "FINAGO_SOLO", "FINANCIALS_ALKU", "FINANCIALS_BASIC", "FINANCIALS_ENTERPRISE", "FINANCIALS_GOLD", "FINANCIALS_LIGHT", "FINANCIALS_MAX", "FINANCIALS_PLATINUM", "FINANCIALS_PLUS", "FINANCIALS_PREMIUM", "FINANCIALS_SILVER", "FINANCIALS_UNLIMITED", "FLEX", "SALES_GOLD", "SALES_PLATINUM", "SALES_SILVER" ],
            "readOnly" : true
          },
          "operationType" : {
            "type" : "string",
            "description" : "Operation type of current company.",
            "enum" : [ "BROKEN", "CEASED", "CLOSED", "DEMONSTRATION", "EDUCATIONAL", "ELISA_PURCHASE", "PRODUCTION", "SPECIAL", "TRIAL" ],
            "readOnly" : true
          },
          "accountingOfficeName" : {
            "type" : "string",
            "description" : "Accounting name of current company.",
            "readOnly" : true
          },
          "accountingOfficeId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Accounting office identifier of current company.",
            "readOnly" : true
          },
          "companyAddress" : {
            "$ref" : "#/components/schemas/CompanyAddress",
            "description" : "Address of current company."
          },
          "billingAddress" : {
            "$ref" : "#/components/schemas/CompanyBillingAddress",
            "description" : "Billing address of current company."
          },
          "mva" : {
            "type" : "boolean",
            "default" : false,
            "description" : "MVA of current company."
          },
          "inTradeRegister" : {
            "type" : "boolean",
            "default" : false,
            "description" : "Is the current company in trade register."
          },
          "businessIdentifier" : {
            "$ref" : "#/components/schemas/BusinessIdentifier",
            "description" : "Company identifier of current company."
          },
          "accountingCoaLanguages" : {
            "type" : "array",
            "description" : "Languages supported in coa for given environment.",
            "items" : {
              "type" : "string"
            },
            "readOnly" : true
          },
          "companyCurrency" : {
            "type" : "string",
            "description" : "Accounting and invoicing currency of company.",
            "enum" : [ "DKK", "EUR", "NOK", "SEK" ]
          },
          "currencyRateSearchDensity" : {
            "type" : "string",
            "description" : "Currency rate search density of company.",
            "enum" : [ "DAILY_EXCHANGE_RATE", "LAST_DAY_OF_THE_MONTH", "PROCOUNTOR_FIXED_RATE" ]
          }
        },
        "required" : [ "id", "name" ]
      },
      "CompanyAddress" : {
        "type" : "object",
        "properties" : {
          "specifier" : {
            "type" : "string",
            "description" : "Specifier, such as c/o address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "poBox" : {
            "type" : "string",
            "description" : "Post office box for company.",
            "maxLength" : 255,
            "minLength" : 0
          },
          "street" : {
            "type" : "string",
            "description" : "Street.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "zip" : {
            "type" : "string",
            "description" : "Zip code",
            "maxLength" : 20,
            "minLength" : 0
          },
          "city" : {
            "type" : "string",
            "description" : "City",
            "maxLength" : 40,
            "minLength" : 0
          },
          "country" : {
            "type" : "string",
            "description" : "Country",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_INDIAN_OCEAN_TERRITORY", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORTHERN_MARIANA_ISLANDS", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_MARTIN_FRENCH_PART", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ],
            "examples" : [ "SWEDEN" ]
          }
        }
      },
      "CompanyBankAccount" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the bank account.",
            "readOnly" : true
          },
          "accountNumber" : {
            "type" : "string",
            "description" : "Unique bank account number in BBAN format. Generated from IBAN."
          },
          "iban" : {
            "type" : "string",
            "description" : "IBAN number for the bank account. Cannot be changed once created."
          },
          "bic" : {
            "type" : "string",
            "description" : "BIC code for the bank account. Not mandatory while creation, can be generated from IBAN.",
            "maxLength" : 255,
            "minLength" : 0
          },
          "bankName" : {
            "type" : "string",
            "description" : "The name of the bank.",
            "maxLength" : 255,
            "minLength" : 0
          },
          "currency" : {
            "type" : "string",
            "description" : "The currency of the bank account. Cannot be changed once created.",
            "enum" : [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "ATS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BEF", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNH", "CNT", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CYP", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GRD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "ITL", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LUF", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MTL", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NIS", "NLG", "NOK", "NPR", "NTD", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PRB", "PTE", "PYG", "QAR", "RMB", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SLS", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWB", "ZWL" ],
            "examples" : [ "EUR" ]
          },
          "defaultForInvoice" : {
            "type" : "boolean",
            "description" : "Information if the bank account is used as default bank account for invoice in the given environment."
          },
          "defaultForPayment" : {
            "type" : "boolean",
            "description" : "Information if the bank account is used as default bank account for payment in the given environment."
          },
          "status" : {
            "type" : "string",
            "description" : "Information if the bank account is active or not. If set to INACTIVE then all properties will be set to false",
            "enum" : [ "ACTIVE", "INACTIVE" ]
          },
          "orderNo" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Order number. Can be used for display ordering instead of ID.",
            "readOnly" : true
          },
          "associatedAccounts" : {
            "type" : "array",
            "description" : "Aliases for the bank account if any exists in the given environment. Used on Swedish and Danish environments.",
            "items" : {
              "$ref" : "#/components/schemas/BankAccountAlias"
            }
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Company bank account version timestamp. Automatically generated by Procountor and updated every time the partner is modified. When using PUT /bankaccounts, it is required to include the latest version timestamp of the partner to the request. This prevents conflicts if the partner is being modified from several sources."
          },
          "bankAddress" : {
            "type" : "string",
            "description" : "The address of the bank.",
            "maxLength" : 255,
            "minLength" : 0
          },
          "ledgerAccount" : {
            "type" : "string",
            "description" : "The ledger account number.",
            "examples" : [ "1910" ]
          },
          "bankingCode" : {
            "type" : "string",
            "description" : "Banking code. In Sweden - Organisation number. Required if payments allowed.",
            "maxLength" : 20,
            "minLength" : 0
          },
          "serviceNumbers" : {
            "type" : "array",
            "description" : "Generated automatically according to the BIC but it can be also found from the contract made with the bank.",
            "items" : {
              "type" : "string"
            },
            "readOnly" : true
          },
          "showAccountOnInvoice" : {
            "type" : "boolean",
            "description" : "Information if the bank account is used as template on invoice."
          },
          "allowPayments" : {
            "type" : "boolean",
            "description" : "Information if account have contract on bank transfers."
          },
          "allowForeignPayments" : {
            "type" : "boolean",
            "description" : "Information if account have contract on foreign payments."
          },
          "allowSalaryPayments" : {
            "type" : "boolean",
            "description" : "Information if account have contract on salary payments. Not supported in the Norwegian environment."
          },
          "allowExpressPayments" : {
            "type" : "boolean",
            "description" : "Information if account have contract on express payments. Not supported in the Norwegian and Danish environment."
          },
          "withholdingTax" : {
            "type" : "boolean",
            "description" : "Information if withholding tax allowed. This property is used only in Norwegian environment."
          },
          "created" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date of creation.",
            "readOnly" : true
          }
        },
        "required" : [ "allowForeignPayments", "allowPayments", "currency", "defaultForInvoice", "defaultForPayment", "iban", "ledgerAccount", "showAccountOnInvoice", "status" ]
      },
      "CompanyBankAccountBasicInfo" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the bank account.",
            "readOnly" : true
          },
          "accountNumber" : {
            "type" : "string",
            "description" : "Unique bank account number in BBAN format. Generated from IBAN."
          },
          "iban" : {
            "type" : "string",
            "description" : "IBAN number for the bank account. Cannot be changed once created."
          },
          "bic" : {
            "type" : "string",
            "description" : "BIC code for the bank account. Not mandatory while creation, can be generated from IBAN.",
            "maxLength" : 255,
            "minLength" : 0
          },
          "bankName" : {
            "type" : "string",
            "description" : "The name of the bank.",
            "maxLength" : 255,
            "minLength" : 0
          },
          "currency" : {
            "type" : "string",
            "description" : "The currency of the bank account. Cannot be changed once created.",
            "enum" : [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "ATS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BEF", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNH", "CNT", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CYP", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GRD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "ITL", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LUF", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MTL", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NIS", "NLG", "NOK", "NPR", "NTD", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PRB", "PTE", "PYG", "QAR", "RMB", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SLS", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWB", "ZWL" ],
            "examples" : [ "EUR" ]
          },
          "defaultForInvoice" : {
            "type" : "boolean",
            "description" : "Information if the bank account is used as default bank account for invoice in the given environment."
          },
          "defaultForPayment" : {
            "type" : "boolean",
            "description" : "Information if the bank account is used as default bank account for payment in the given environment."
          },
          "status" : {
            "type" : "string",
            "description" : "Information if the bank account is active or not. If set to INACTIVE then all properties will be set to false",
            "enum" : [ "ACTIVE", "INACTIVE" ]
          },
          "orderNo" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Order number. Can be used for display ordering instead of ID.",
            "readOnly" : true
          },
          "associatedAccounts" : {
            "type" : "array",
            "description" : "Aliases for the bank account if any exists in the given environment. Used on Swedish and Danish environments.",
            "items" : {
              "$ref" : "#/components/schemas/BankAccountAlias"
            }
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Company bank account version timestamp. Automatically generated by Procountor and updated every time the partner is modified. When using PUT /bankaccounts, it is required to include the latest version timestamp of the partner to the request. This prevents conflicts if the partner is being modified from several sources."
          }
        },
        "required" : [ "currency", "defaultForInvoice", "defaultForPayment", "iban", "status" ]
      },
      "CompanyBankAccountSearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "Search results.",
            "items" : {
              "$ref" : "#/components/schemas/CompanyBankAccountBasicInfo"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/SearchResultMetaData",
            "description" : "Search result metadata."
          }
        }
      },
      "CompanyBillingAddress" : {
        "type" : "object",
        "properties" : {
          "street" : {
            "type" : "string",
            "description" : "Street of company billing address.",
            "examples" : [ "Main Street 1" ],
            "maxLength" : 80,
            "minLength" : 0
          },
          "zip" : {
            "type" : "string",
            "description" : "Postal code of company billing address.",
            "examples" : [ "02150" ],
            "maxLength" : 20,
            "minLength" : 0
          },
          "city" : {
            "type" : "string",
            "description" : "City of company billing address.",
            "examples" : [ "Helsinki" ],
            "maxLength" : 40,
            "minLength" : 0
          },
          "country" : {
            "type" : "string",
            "description" : "Country of company billing address.",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_INDIAN_OCEAN_TERRITORY", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORTHERN_MARIANA_ISLANDS", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_MARTIN_FRENCH_PART", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ],
            "examples" : [ "SWEDEN" ]
          }
        }
      },
      "CompanyCurrency" : {
        "type" : "object",
        "properties" : {
          "companyCurrency" : {
            "type" : "string",
            "description" : "Currency of company.",
            "enum" : [ "DKK", "EUR", "NOK", "SEK" ]
          }
        }
      },
      "CompanySettings" : {
        "type" : "object",
        "properties" : {
          "invoiceDiscussionEnabled" : {
            "type" : "boolean",
            "description" : "Is invoice discussion enabled."
          }
        }
      },
      "CompanyUsageSettings" : {
        "type" : "object",
        "properties" : {
          "defaultInvoiceChannel" : {
            "type" : "string",
            "description" : "The default invoice channel for the company",
            "enum" : [ "EDIFACT", "ELECTRONIC_INVOICE", "EMAIL", "MAIL", "NO_SENDING", "PAPER_INVOICE" ]
          },
          "cashDiscount" : {
            "$ref" : "#/components/schemas/CompanyUsageSettingsCashDiscount",
            "description" : "Cash discount settings for the company"
          },
          "accountingByRow" : {
            "$ref" : "#/components/schemas/CompanyUsageSettingsAccountingByRow",
            "description" : "Accounting by row settings for the company"
          },
          "salaryVerificationBeforeApproval" : {
            "type" : "boolean",
            "description" : "Salary verification before approval settings for the company"
          }
        }
      },
      "CompanyUsageSettingsAccountingByRow" : {
        "type" : "object",
        "properties" : {
          "salesInvoicePosting" : {
            "type" : "boolean",
            "description" : "Indicates if sales invoice posting is enabled"
          },
          "purchaseInvoicePosting" : {
            "type" : "boolean",
            "description" : "Indicates if purchase invoice posting is enabled"
          },
          "travelAndExpenseInvoicePosting" : {
            "type" : "boolean",
            "description" : "Indicates if travel and expense invoice posting is enabled"
          },
          "salaryPosting" : {
            "type" : "boolean",
            "description" : "Indicates if salary posting is enabled"
          }
        }
      },
      "CompanyUsageSettingsCashDiscount" : {
        "type" : "object",
        "properties" : {
          "cashDiscountForSales" : {
            "type" : "boolean",
            "description" : "Indicates if cash discount is applied for sales invoices"
          },
          "cashDiscountForPurchase" : {
            "type" : "boolean",
            "description" : "Indicates if cash discount is applied for purchase invoices"
          }
        }
      },
      "CounterParty" : {
        "type" : "object",
        "properties" : {
          "contactPersonName" : {
            "type" : "string",
            "description" : "Name of the contact person.",
            "maxLength" : 70,
            "minLength" : 0
          },
          "identifier" : {
            "type" : "string",
            "description" : "SALES_INVOICE, SALES_ORDER, PURCHASE_INVOICE and PURCHASE_ORDER only. Business ID or national identification number."
          },
          "taxCode" : {
            "type" : "string",
            "description" : "SALES_INVOICE and SALES_ORDER, PURCHASE_INVOICE and PURCHASE_ORDER only. Tax code of the customer."
          },
          "customerNumber" : {
            "type" : "string",
            "description" : "SALES_INVOICE, SALES_ORDER, PURCHASE_INVOICE and PURCHASE_ORDER only. Customer number."
          },
          "email" : {
            "type" : "string",
            "description" : "SALES_INVOICE, SALES_ORDER and PURCHASE_ORDER only. Email address of the buyer. Required to be correct if supported."
          },
          "bccAddresses" : {
            "type" : "array",
            "description" : "Blind carbon copy addresses. Supported only in SALES_INVOICE, SALES_ORDER and OFFER. Maximum 4 email addresses can be provided. Must not match the main email address and each Bcc address must be free of special characters and no longer than 256 characters.",
            "items" : {
              "type" : "string"
            }
          },
          "counterPartyAddress" : {
            "$ref" : "#/components/schemas/InvoiceCounterpartyAddress",
            "description" : "Counterparty address. In the case of a sales invoice this is the buyer's address, and in the case of a purchase invoice and purchase order it is the seller. Even if the invoice is linked to a business partner by partnerId, the counterparty address can be different from the address saved for that business partner in the partner register."
          },
          "bankAccount" : {
            "$ref" : "#/components/schemas/BankAccount",
            "description" : "SALES_INVOICE only. Required if the payment method requires defining the bank accounts for both parties."
          },
          "einvoiceAddress" : {
            "$ref" : "#/components/schemas/EInvoiceAddress"
          }
        },
        "required" : [ "counterPartyAddress" ]
      },
      "CreatedWebhookResponse" : {
        "type" : "object",
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "HTTP response status."
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Generated UUID"
          }
        }
      },
      "Currencies" : {
        "type" : "object",
        "properties" : {
          "currencies" : {
            "type" : "array",
            "description" : "List of available currencies.",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "CurrencyExchangeRate" : {
        "type" : "object",
        "properties" : {
          "queryDay" : {
            "type" : "string",
            "format" : "date",
            "description" : "Day specified in query."
          },
          "currency" : {
            "type" : "string",
            "description" : "Currency of exchange rate.",
            "enum" : [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "ATS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BEF", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNH", "CNT", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CYP", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GRD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "ITL", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LUF", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MTL", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NIS", "NLG", "NOK", "NPR", "NTD", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PRB", "PTE", "PYG", "QAR", "RMB", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SLS", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWB", "ZWL" ]
          },
          "day" : {
            "type" : "string",
            "format" : "date",
            "description" : "Day of exchange rate."
          },
          "rate" : {
            "type" : "number",
            "description" : "Rate of exchange rate."
          }
        }
      },
      "CurrencyGroupRates" : {
        "type" : "object",
        "properties" : {
          "baseCurrency" : {
            "type" : "string",
            "description" : "Company base currency."
          },
          "currencyDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Currency date."
          },
          "rates" : {
            "type" : "array",
            "description" : "List of currency rates.",
            "items" : {
              "$ref" : "#/components/schemas/CurrencyRate"
            }
          }
        }
      },
      "CurrencyRate" : {
        "type" : "object",
        "properties" : {
          "currencyRate" : {
            "type" : "number"
          },
          "currencyCode" : {
            "type" : "string"
          }
        }
      },
      "DataModel" : { },
      "DefaultDimension" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier for the dimension.",
            "readOnly" : true
          },
          "name" : {
            "type" : "string",
            "description" : "Name of the dimension.",
            "readOnly" : true
          },
          "items" : {
            "type" : "array",
            "description" : "Dimension items connected with dimension.",
            "items" : {
              "$ref" : "#/components/schemas/DefaultDimensionItem"
            }
          }
        }
      },
      "DefaultDimensionBasicData" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier for the dimension."
          },
          "name" : {
            "type" : "string",
            "description" : "Name of the dimension."
          },
          "items" : {
            "type" : "array",
            "description" : "Dimension items connected with dimension.",
            "items" : {
              "$ref" : "#/components/schemas/DefaultDimensionItemBasicData"
            }
          }
        }
      },
      "DefaultDimensionItem" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier for the dimension item.",
            "readOnly" : true
          },
          "codeName" : {
            "type" : "string",
            "description" : "Code name of the dimension item.",
            "readOnly" : true
          },
          "percent" : {
            "type" : "number",
            "description" : "Percentage value of the dimension item."
          },
          "status" : {
            "type" : "boolean",
            "description" : "Status of the dimension item.",
            "readOnly" : true
          },
          "description" : {
            "type" : "string",
            "description" : "Description of the dimension item.",
            "readOnly" : true
          }
        },
        "required" : [ "codeName", "percent" ]
      },
      "DefaultDimensionItemBasicData" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier for the dimension item.",
            "readOnly" : true
          },
          "codeName" : {
            "type" : "string",
            "description" : "Code name of the dimension item.",
            "readOnly" : true
          },
          "percent" : {
            "type" : "number",
            "description" : "Percentage value of the dimension item."
          }
        },
        "required" : [ "codeName", "percent" ]
      },
      "DefaultProduct" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Identifier of the default product"
          },
          "productInfo" : {
            "$ref" : "#/components/schemas/Product",
            "description" : "Information about the default product"
          },
          "defaultSettings" : {
            "$ref" : "#/components/schemas/DefaultProductSettings",
            "description" : "Default settings of the default product"
          },
          "validityPeriods" : {
            "type" : "array",
            "description" : "Validity periods of the default product",
            "items" : {
              "$ref" : "#/components/schemas/ProductValidityPeriod"
            }
          }
        }
      },
      "DefaultProductSettings" : {
        "type" : "object",
        "properties" : {
          "useSpecialDiscount" : {
            "type" : "boolean",
            "description" : "Information whether special discount is in use"
          },
          "specialDiscountPercentage" : {
            "type" : "number",
            "description" : "Percentage special discount"
          },
          "useSpecialPrice" : {
            "type" : "boolean",
            "description" : "Information whether special price is in use"
          },
          "specialPrice" : {
            "type" : "number",
            "description" : "Special price of the product"
          },
          "useSpecialVat" : {
            "type" : "boolean",
            "description" : "Information whether special vat is in use"
          },
          "specialVatPercentage" : {
            "type" : "number",
            "description" : "Special vat percentage value"
          },
          "amount" : {
            "type" : "number",
            "description" : "Amount of the product"
          },
          "comment" : {
            "type" : "string",
            "description" : "Comment of the product"
          }
        }
      },
      "DeliveryTerms" : {
        "type" : "object",
        "properties" : {
          "deliveryTerms" : {
            "type" : "array",
            "description" : "List of delivery terms.",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "DeliveryTermsInfo" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Name for terms of delivery."
          },
          "municipality" : {
            "type" : "string",
            "description" : "Delivery place"
          }
        }
      },
      "Dimension" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Dimension ID. Required in PUT"
          },
          "name" : {
            "type" : "string",
            "description" : "Dimension name."
          },
          "items" : {
            "type" : "array",
            "description" : "Dimension items.",
            "items" : {
              "$ref" : "#/components/schemas/DimensionItem"
            }
          }
        },
        "required" : [ "name" ]
      },
      "DimensionItem" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Dimension item ID. Required in PUT"
          },
          "codeName" : {
            "type" : "string",
            "description" : "Dimension item code name."
          },
          "status" : {
            "type" : "string",
            "description" : "Dimension item status. If the dimension item is marked as active, this property is not present. If the dimension item is inactive, the value of this is property is \"P\"."
          },
          "description" : {
            "type" : "string",
            "description" : "Dimension item description."
          }
        },
        "required" : [ "codeName" ]
      },
      "DimensionItemValue" : {
        "type" : "object",
        "properties" : {
          "dimensionId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Dimension ID. Must exist in the current environment. For a list of available dimensions, see the GET /dimensions endpoint."
          },
          "itemId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Dimension item ID. Must exist in the current environment. For a list of available dimensions, see the GET /dimensions endpoint."
          },
          "value" : {
            "type" : "number",
            "description" : "Dimension item value with maximum two decimal places. Use absolute values instead of percentages. The sum of dimension item values on a dimension must equal the accounting value of the parent transaction."
          }
        },
        "required" : [ "dimensionId", "itemId", "value" ]
      },
      "DimensionItemValueList" : {
        "type" : "object",
        "properties" : {
          "dimensionItemValues" : {
            "type" : "array",
            "description" : "Values of dimension items associated with this transaction. The number of provided dimension items must be within the dimension max count defined by the purchased Procountor license. Provided dimension pairs (dimension id - item id) must be unique within the list provided.",
            "items" : {
              "$ref" : "#/components/schemas/DimensionItemValue"
            }
          }
        },
        "required" : [ "dimensionItemValues" ]
      },
      "DimensionName" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Dimension name.",
            "maxLength" : 255,
            "minLength" : 1
          }
        },
        "required" : [ "name" ]
      },
      "DirectBankTransfer" : {
        "type" : "object",
        "properties" : {
          "amount" : {
            "type" : "number",
            "description" : "The amount of the payment in the given currency. Currency is defined within the invoice, which identifier is set in invoiceId field.",
            "minimum" : 0
          },
          "bankReferenceCode" : {
            "type" : "string",
            "description" : "Bank reference code.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "bankReferenceCodeType" : {
            "type" : "string",
            "description" : "Reference code generation type. If type not allowed for a user country will be given, then 400 is returned",
            "enum" : [ "RF", "FI", "OCR", "KID", "GIK01", "GIK04", "GIK15", "FIK71", "FIK73", "FIK75" ]
          },
          "message" : {
            "type" : "string",
            "description" : "Message for the payment, if reference payment is not used.",
            "maxLength" : 140,
            "minLength" : 0
          },
          "recipientBankAccount" : {
            "type" : "string",
            "description" : "Bank account number of the recipient.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "recipientBicCode" : {
            "type" : "string",
            "description" : "BIC code of recipient bank account number.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "paymentMethod" : {
            "type" : "string",
            "description" : "Payment method type defining what kind of payment has to be made.",
            "enum" : [ "DENMARK_DOMESTIC_PAYMENT", "DENMARK_DOMESTIC_PAYMENT_CREDITOR", "DENMARK_FOREIGN_PAYMENT", "FINNISH_BANK_TRANSFER", "FINNISH_EXPRESS_PAYMENT", "FINNISH_FOREIGN_PAYMENT", "NORWEGIAN_DOMESTIC_PAYMENT", "NORWEGIAN_FOREIGN_PAYMENT", "SWEDISH_DOMESTIC_PAYMENT", "SWEDISH_DOMESTIC_PAYMENT_BANKGIRO", "SWEDISH_DOMESTIC_PAYMENT_PLUSGIRO", "SWEDISH_FOREIGN_PAYMENT" ]
          },
          "payerBankAccount" : {
            "type" : "string",
            "description" : "The payer bank account. It has to be predefined in the environment to be able to use the payment. If not set than default bank account for payment is taken.",
            "externalDocs" : {
              "description" : "Information about adding bank accounts in Procountor.",
              "url" : "https://help.procountor.fi/en/articles/531687-bank-account-information"
            }
          },
          "paymentDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Date specifying when the payment transaction has to be performed. Payment date should be greater than current date."
          },
          "receiverBankClearingCode" : {
            "type" : "string",
            "description" : "Receiver bank clearing code."
          },
          "recipientNameAndAddress" : {
            "$ref" : "#/components/schemas/PaymentRecipientNameAndAddress",
            "description" : "Recipient name with address. Recipient name is mandatory and is always in use, other fields are omitted in scenarios different then described below. In case of: foreign payments, Norway NETS payments, Norway SpareBank payments, Sweden Swedbank with missing bank reference payments and Sweden DanskeBank with missing bank reference payments full receiver address is needed."
          },
          "receiverBankNameAndAddress" : {
            "$ref" : "#/components/schemas/PaymentReceiverBankNameAndAddress",
            "description" : "Recipient bank name and address. Used in foreign payments."
          },
          "intermediaryBankNameAndAddress" : {
            "$ref" : "#/components/schemas/PaymentIntermediaryBankNameAndAddress",
            "description" : "Intermediary bank name and address. If filled in, then it have to be filled in full. Used in foreign payments."
          },
          "intermediaryBankBic" : {
            "type" : "string",
            "description" : "Intermediary bank BIC."
          },
          "serviceCharge" : {
            "type" : "string",
            "description" : "If not provided, for Finnish foreign payment it will be automatically set to BOTH_PAY_OWN_FEES.",
            "enum" : [ "BOTH_PAY_OWN_FEES", "PAYER_PAY_BOTH_FEES" ]
          },
          "currencyCode" : {
            "type" : "string",
            "description" : "Currency code.",
            "enum" : [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "ATS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BEF", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNH", "CNT", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CYP", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GRD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "ITL", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LUF", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MTL", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NIS", "NLG", "NOK", "NPR", "NTD", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PRB", "PTE", "PYG", "QAR", "RMB", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SLS", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWB", "ZWL" ]
          },
          "customId" : {
            "type" : "string",
            "description" : "Custom identifier of each direct bank transfer with a maximum length of 64. It's externally provided for easierassigning of transactions to payments.",
            "maxLength" : 64,
            "minLength" : 1
          }
        },
        "required" : [ "amount", "currencyCode", "paymentDate", "paymentMethod", "recipientBankAccount", "recipientNameAndAddress" ]
      },
      "DirectBankTransferList" : {
        "type" : "object",
        "properties" : {
          "directBankTransfers" : {
            "type" : "array",
            "description" : "List containing DirectBankTransfer objects.",
            "items" : {
              "$ref" : "#/components/schemas/DirectBankTransfer"
            },
            "maxItems" : 2147483647,
            "minItems" : 1
          }
        },
        "required" : [ "directBankTransfers" ]
      },
      "DirectSalaryPayment" : {
        "type" : "object",
        "properties" : {
          "amount" : {
            "type" : "number",
            "description" : "The amount of the payment in the given currency. Currency is defined within the invoice, which identifier is set in invoiceId field.",
            "minimum" : 0
          },
          "bankReferenceCode" : {
            "type" : "string",
            "description" : "Bank reference code.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "bankReferenceCodeType" : {
            "type" : "string",
            "description" : "Reference code generation type. If type not allowed for a user country will be given, then 400 is returned",
            "enum" : [ "RF", "FI", "OCR", "KID", "GIK01", "GIK04", "GIK15", "FIK71", "FIK73", "FIK75" ]
          },
          "message" : {
            "type" : "string",
            "description" : "Message for the payment, if reference payment is not used.",
            "maxLength" : 140,
            "minLength" : 0
          },
          "recipientBankAccount" : {
            "type" : "string",
            "description" : "Bank account number of the recipient.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "recipientBicCode" : {
            "type" : "string",
            "description" : "BIC code of recipient bank account number.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "recipientName" : {
            "type" : "string",
            "description" : "The recipient name.",
            "maxLength" : 80,
            "minLength" : 1
          },
          "recipientCode" : {
            "$ref" : "#/components/schemas/BusinessIdentifier",
            "description" : "The recipient code data."
          },
          "currencyCode" : {
            "type" : "string",
            "description" : "The code of the currency.",
            "enum" : [ "EUR" ],
            "examples" : [ "EUR" ]
          },
          "customId" : {
            "type" : "string",
            "description" : "Custom id for the payment.",
            "maxLength" : 64,
            "minLength" : 1
          }
        },
        "required" : [ "amount", "currencyCode", "customId", "recipientBankAccount", "recipientCode", "recipientName" ]
      },
      "DirectSalaryPaymentGroup" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Id of the payment list."
          },
          "listName" : {
            "type" : "string",
            "description" : "List name."
          },
          "created" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "List creation time."
          },
          "status" : {
            "type" : "string",
            "description" : "Payment status.",
            "enum" : [ "PAID", "PAYMENT_QUEUED", "PAYMENT_SENT_TO_BANK", "PAYMENT_TRANSACTION_CANCELLED", "PAYMENT_TRANSACTION_REMOVED" ]
          },
          "paymentMethod" : {
            "type" : "string",
            "description" : "Payment method.",
            "enum" : [ "FINNISH_SALARY_TRANSFER" ]
          },
          "paymentDate" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date of the payment"
          },
          "payerBankAccount" : {
            "type" : "string",
            "description" : "Bank account number of the payer"
          },
          "totalSum" : {
            "type" : "number",
            "description" : "Total sum of the payments"
          },
          "customId" : {
            "type" : "string",
            "description" : "Custom identifier of the payment list."
          },
          "payments" : {
            "type" : "array",
            "description" : "List of the payment IDs",
            "items" : {
              "$ref" : "#/components/schemas/PaymentBasicInfo"
            }
          }
        }
      },
      "DirectSalaryPaymentGroupBaseInfo" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Id of the payment list."
          },
          "listName" : {
            "type" : "string",
            "description" : "List name."
          },
          "created" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "List creation time."
          },
          "status" : {
            "type" : "string",
            "description" : "Payment status.",
            "enum" : [ "PAID", "PAYMENT_QUEUED", "PAYMENT_SENT_TO_BANK", "PAYMENT_TRANSACTION_CANCELLED", "PAYMENT_TRANSACTION_REMOVED" ]
          },
          "paymentMethod" : {
            "type" : "string",
            "description" : "Payment method.",
            "enum" : [ "FINNISH_SALARY_TRANSFER" ]
          },
          "paymentDate" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date of the payment"
          },
          "payerBankAccount" : {
            "type" : "string",
            "description" : "Bank account number of the payer"
          },
          "totalSum" : {
            "type" : "number",
            "description" : "Total sum of the payments"
          },
          "customId" : {
            "type" : "string",
            "description" : "Custom identifier of the payment list."
          }
        }
      },
      "DirectSalaryPaymentGroupBaseInfoSearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "Search results.",
            "items" : {
              "$ref" : "#/components/schemas/DirectSalaryPaymentGroupBaseInfo"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/SearchResultMetaData",
            "description" : "Search result metadata."
          }
        }
      },
      "DirectSalaryPaymentResult" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Id of the payment list."
          },
          "customId" : {
            "type" : "string",
            "description" : "Custom identifier of the payment list."
          },
          "payments" : {
            "type" : "array",
            "description" : "List of the payment IDs",
            "items" : {
              "$ref" : "#/components/schemas/PaymentBasicInfo"
            }
          }
        }
      },
      "DirectSalaryPayments" : {
        "type" : "object",
        "properties" : {
          "listName" : {
            "type" : "string",
            "description" : "Name of the direct salary payment list. Can be used for list identification.",
            "maxLength" : 80,
            "minLength" : 1
          },
          "paymentMethod" : {
            "type" : "string",
            "description" : "Name of the payment method. Used for all payments.",
            "enum" : [ "FINNISH_SALARY_TRANSFER" ]
          },
          "paymentDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Date specifying when the payment transaction has to be performed. Payment date should be greater than current date. Used for all payments.",
            "examples" : [ "2019-09-07" ]
          },
          "payerBankAccount" : {
            "type" : "string",
            "description" : "Bank account number of the person making the payment. The payer bank account has to be predefined in the environment to be able to use the payment. Used for all payments. If not set, then default payment bank account for environment is taken.",
            "externalDocs" : {
              "description" : "Information about adding bank accounts in Procountor.",
              "url" : "https://help.procountor.fi/en/articles/531687-bank-account-information"
            }
          },
          "customId" : {
            "type" : "string",
            "description" : "Optional custom identifier of the list. It can be used later to get list by this id.",
            "maxLength" : 80,
            "minLength" : 1
          },
          "payments" : {
            "type" : "array",
            "description" : "List containing DirectSalaryPayment objects.",
            "items" : {
              "$ref" : "#/components/schemas/DirectSalaryPayment"
            },
            "maxItems" : 2147483647,
            "minItems" : 1
          }
        },
        "required" : [ "listName", "paymentDate", "paymentMethod", "payments" ]
      },
      "DirectSalaryPaymentsConfirmationResponseModels" : {
        "type" : "object",
        "description" : "These are possible response models",
        "properties" : {
          "PaymentGroup" : {
            "$ref" : "#/components/schemas/DirectSalaryPaymentGroup",
            "description" : "Response for creating direct salary payment action (POST /payments/directsalarypayments) performed successfully"
          },
          "InfoMessage" : {
            "$ref" : "#/components/schemas/InfoMessage",
            "description" : "Response for cancelling (PUT /payments/directsalarypayments/{paymentlistId}/cancel) payment action performedsuccessfully"
          }
        }
      },
      "Document" : {
        "type" : "object",
        "properties" : {
          "attachmentId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "ID of the attachment."
          },
          "name" : {
            "type" : "string",
            "description" : "Name of the attached file."
          },
          "size" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Size of the attached file in bytes."
          },
          "user" : {
            "type" : "string",
            "description" : "Attachment user."
          },
          "referenceId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Attachment reference Id"
          },
          "referenceType" : {
            "type" : "string",
            "description" : "Attachment reference type",
            "enum" : [ "BANKSTATEMENTEVENT", "COST_RECEIPT", "CUSTOMER_BUSINESS_PARTNER_REGISTER", "EMPLOYEE_INFO", "ENVIRONMENT", "FINANCIAL_STATEMENT", "INVOICE", "INVOICEDRAFT_ITEM", "LEDGERRECEIPT", "NETS_COLLECTION", "PERSON_BUSINESS_PARTNER_REGISTER", "PURCHASE_PRODUCT_REGISTER", "REFERENCE_PAYMENT", "SALES_PRODUCT_REGISTER", "SUPPLIER_BUSINESS_PARTNER_REGISTER" ]
          },
          "attached" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Attaching time."
          }
        }
      },
      "EInvoiceAddress" : {
        "type" : "object",
        "properties" : {
          "operator" : {
            "type" : "string",
            "description" : "SALES_INVOICE Only. Operator code. Required if the invoiceChannel is ELECTRONIC_INVOICE and country is FINLAND."
          },
          "address" : {
            "type" : "string",
            "description" : "SALES_INVOICE Only. EInvoice Address. Required if the invoiceChannel is ELECTRONIC_INVOICE, format must be valid for the specified country."
          },
          "ediId" : {
            "type" : "string",
            "description" : "SALES_INVOICE Only. EDI identifier. Used if the invoiceChannel is ELECTRONIC_INVOICE and country is FINLAND."
          }
        }
      },
      "EInvoiceData" : {
        "type" : "object",
        "properties" : {
          "operator" : {
            "type" : "string",
            "description" : "Electronic invoice operator name."
          },
          "operatorId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Electronic invoice operator ID."
          },
          "sendingAddress" : {
            "type" : "string",
            "description" : "Sending address of operator."
          },
          "receivingAddress" : {
            "type" : "string",
            "description" : "Receiving address of operator"
          },
          "receivingAddressPublicInTieke" : {
            "type" : "boolean",
            "description" : "`true`, if the receiving address is public in Tieke "
          },
          "edi" : {
            "type" : "string",
            "description" : "Electronic Data Interchange ID of operator"
          },
          "invoicerAnnouncementUpdated" : {
            "type" : "string",
            "description" : "Latest date when invoicer announcement was created or updated"
          },
          "created" : {
            "type" : "string",
            "description" : "Date when electronic invoice operator was added"
          },
          "creator" : {
            "type" : "string",
            "description" : "User who has added the electronic invoice operator"
          },
          "wsCustomerNumber" : {
            "type" : "string",
            "description" : "Web service customer number"
          }
        }
      },
      "Employee" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique employee identifier.",
            "readOnly" : true
          },
          "lastName" : {
            "type" : "string",
            "description" : "Employee last name."
          },
          "firstName" : {
            "type" : "string",
            "description" : "Employee first name."
          },
          "ssn" : {
            "type" : "string",
            "description" : "Employee SSN id, it can be also Finnish business id."
          },
          "employeeAddress" : {
            "$ref" : "#/components/schemas/PersonBasicAddress",
            "description" : "Address of Person."
          },
          "personNumber" : {
            "type" : "string",
            "description" : "Person number."
          },
          "salaryChannel" : {
            "type" : "string",
            "description" : "The channel which is used for delivering Salary Slips for the given Employee.",
            "enum" : [ "NO_SENDING", "MAIL", "EMAIL", "MOBILE", "ESALARY" ]
          },
          "automatedTaxCard" : {
            "type" : "boolean",
            "description" : "Automated Tax Card."
          },
          "active" : {
            "type" : "boolean",
            "description" : "Status of the Employee."
          }
        }
      },
      "EmployeeDataForSalarySlip" : {
        "type" : "object",
        "properties" : {
          "employeeId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of the employee."
          },
          "calendarWorkdays" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Calendar workdays. If not provided will be automatically calculated and set based on payment period.",
            "maximum" : 255,
            "minimum" : 0
          },
          "absentDays" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Absent days.",
            "maximum" : 255,
            "minimum" : 0
          },
          "pensionInsuranceContributionPercent" : {
            "type" : "number",
            "description" : "Pension insurance contributions.",
            "maximum" : 100,
            "minimum" : 0
          },
          "unemploymentInsurancePercent" : {
            "type" : "number",
            "description" : "Unemployment insurance payment.",
            "maximum" : 100,
            "minimum" : 0
          },
          "accidentInsurancePercent" : {
            "type" : "number",
            "description" : "Occupational accident insurance.",
            "maximum" : 100,
            "minimum" : 0
          },
          "groupLifeInsurancePercent" : {
            "type" : "number",
            "description" : "Group life insurance contribution.",
            "maximum" : 100,
            "minimum" : 0
          },
          "healthCareInsurancePercent" : {
            "type" : "number",
            "description" : "Health care insurance contribution.",
            "maximum" : 100,
            "minimum" : 0
          },
          "holidayPayData" : {
            "$ref" : "#/components/schemas/HolidayPayData",
            "description" : "Holiday pay values requested to pay on salary slip."
          },
          "workingHourReductionPayData" : {
            "$ref" : "#/components/schemas/WorkingHourReductionPayData",
            "description" : "Working hour reduction values requested to pay on salary slip."
          }
        },
        "required" : [ "employeeId" ]
      },
      "EmployeeSearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "Search results.",
            "items" : {
              "$ref" : "#/components/schemas/Employee"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/SearchResultMetaData",
            "description" : "Search result metadata."
          }
        }
      },
      "Employment" : {
        "type" : "object",
        "properties" : {
          "startDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Employment start date."
          },
          "endDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Employment end date."
          },
          "type" : {
            "type" : "string",
            "description" : "Type. Can be enum value or any string.",
            "enum" : [ "PERMANENT", "FIXED_TERM", "TEMPORARY", "PART_TIME", "TRAINEE", "PENSIONER", "NOT_EMPLOYED" ],
            "maxLength" : 255,
            "minLength" : 0
          },
          "terminationReason" : {
            "type" : "string",
            "description" : "Reason for termination. When employment type is Keva, the reason code must be from Kevas numeric codes.",
            "enum" : [ "NOT_APPLICABLE", "EMPLOYEES_RESIGNATION", "OTHER", "TERMINATION_GROUNDS", "FINANCIAL_AND_PRODUCTION_GROUNDS", "JOINT_AGREEMENT", "RETIREMENT", "FIXED_TERM_EMPLOYMENT_TERMINATION" ],
            "maxLength" : 255,
            "minLength" : 0
          },
          "registrationGroundId" : {
            "type" : "string",
            "description" : "Registration grounds id (Keva).",
            "maxLength" : 80,
            "minLength" : 0
          },
          "hoursPerWeek" : {
            "type" : "number",
            "description" : "Hours per week. Scale: 2.",
            "maximum" : 168.00,
            "minimum" : 0.01
          },
          "employmentType" : {
            "type" : "string",
            "description" : "Employment type.",
            "enum" : [ "FULL_TIME", "NOT_AVAILABLE", "PART_TIME" ]
          },
          "partTimePercent" : {
            "type" : "number",
            "description" : "Part-time percent. Required when employment type is set to \"PART_TIME\". Scale: 2.",
            "maximum" : 100.00,
            "minimum" : 0.01
          },
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of employee employment.",
            "readOnly" : true
          },
          "keva" : {
            "type" : "boolean",
            "description" : "Keva."
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Version. Not allowed in POST. Required in PUT."
          }
        },
        "required" : [ "keva", "terminationReason" ]
      },
      "ErrorHandlingInfo" : {
        "type" : "object",
        "properties" : {
          "date" : {
            "type" : "string",
            "format" : "date",
            "description" : "Date when the error message was handled."
          },
          "userId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the user who handled the error message."
          },
          "firstName" : {
            "type" : "string",
            "description" : "First name of the user who handled the error message."
          },
          "lastName" : {
            "type" : "string",
            "description" : "Last name of the user who handled the error message."
          },
          "comment" : {
            "type" : "string",
            "description" : "Additional comment for handling the error message."
          }
        }
      },
      "ErrorMessage" : {
        "type" : "object",
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "HTTP response status."
          },
          "field" : {
            "type" : "string",
            "description" : "Field path of violation."
          },
          "message" : {
            "type" : "string",
            "description" : "Validation error code or description. ",
            "externalDocs" : {
              "url" : "https://dev.procountor.com/api-reference/validation-error-codes/"
            }
          },
          "model" : {
            "$ref" : "#/components/schemas/DataModel",
            "deprecated" : true,
            "description" : "Data model for which constraint violations occurred."
          }
        }
      },
      "ErrorMessages" : {
        "type" : "object",
        "properties" : {
          "errors" : {
            "type" : "array",
            "description" : "List of error messages.",
            "items" : {
              "$ref" : "#/components/schemas/ErrorMessage"
            }
          }
        }
      },
      "ExtraInfo" : {
        "type" : "object",
        "properties" : {
          "accountingByRow" : {
            "type" : "boolean",
            "description" : "Indicates if accounting by row is used (true) or not (false). Accounting by row means that a separate ledger transaction is created for each invoice row."
          },
          "unitPricesIncludeVat" : {
            "type" : "boolean",
            "description" : "Indicates if the unit prices on invoice rows include VAT (true) or not (false)."
          }
        },
        "required" : [ "accountingByRow", "unitPricesIncludeVat" ]
      },
      "FactoringContract" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Factoring contract identifier.",
            "readOnly" : true
          },
          "financingCompany" : {
            "$ref" : "#/components/schemas/FinancingCompany",
            "description" : "Financing company information."
          },
          "financingCompanyBankAccount" : {
            "type" : "string",
            "description" : "Financing company bank account."
          },
          "contractNumber" : {
            "type" : "string",
            "description" : "Agreegment number.",
            "maxLength" : 80,
            "minLength" : 1
          },
          "bankReferenceCodeSeparator" : {
            "type" : "string",
            "description" : "Bank reference code separator.",
            "maxLength" : 10,
            "minLength" : 0
          },
          "personalFinvoiceAddress" : {
            "type" : "string",
            "description" : "Personal Finvoice address. "
          },
          "financingCompanyFinvoiceAddress" : {
            "type" : "string",
            "description" : "Financing company Finvoice address."
          },
          "factoringCounterAccount" : {
            "type" : "string",
            "description" : "OP Factoring counter account.",
            "readOnly" : true
          },
          "transferNotification" : {
            "type" : "array",
            "description" : "Transfer notifications.",
            "items" : {
              "$ref" : "#/components/schemas/TransferNotification"
            }
          },
          "wsCustomerNumber" : {
            "type" : "string",
            "description" : "WS customer number.",
            "readOnly" : true
          },
          "status" : {
            "type" : "string",
            "description" : "Contract status.",
            "enum" : [ "ACTIVE", "INACTIVE" ]
          }
        },
        "required" : [ "contractNumber", "financingCompany", "financingCompanyBankAccount", "status" ]
      },
      "FactoringContractSearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "Search results.",
            "items" : {
              "$ref" : "#/components/schemas/FactoringContract"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/SearchResultMetaData",
            "description" : "Search result metadata."
          }
        }
      },
      "FinancingCompany" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Financing company code",
            "enum" : [ "AK", "KF", "NDEAFIHH", "OKOYFIHH", "DABAFIHH", "FL", "SVEA", "GOTHIA", "HANDFIHH", "MUU", "HELSFIHH", "ROPO", "PURO" ]
          },
          "name" : {
            "type" : "string",
            "description" : "Financing company name",
            "readOnly" : true
          }
        }
      },
      "FiscalYear" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the fiscal year."
          },
          "startDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Start date of the fiscal year."
          },
          "endDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "End date of the fiscal year"
          },
          "modified" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Time of last edition of fiscal year."
          },
          "trackingPeriods" : {
            "type" : "array",
            "description" : "List of tracking periods contained in the fiscal year.",
            "items" : {
              "$ref" : "#/components/schemas/TrackingPeriod"
            }
          },
          "isOpen" : {
            "type" : "boolean",
            "description" : "Whether the fiscal year is open (true) or closed (false)."
          }
        }
      },
      "FiscalYears" : {
        "type" : "object",
        "properties" : {
          "fiscalYears" : {
            "type" : "array",
            "description" : "List of fiscal years.",
            "items" : {
              "$ref" : "#/components/schemas/FiscalYear"
            }
          }
        }
      },
      "GeneralLedgerReportData" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Ledger account code."
          },
          "name" : {
            "type" : "string",
            "description" : "Ledger account name."
          },
          "totalAccountingValue" : {
            "type" : "number",
            "description" : "Sum of accounting value in this ledger account."
          },
          "ledgerReceiptTransactions" : {
            "type" : "array",
            "description" : "Ledger receipt transactions.",
            "items" : {
              "$ref" : "#/components/schemas/AccountingReportTransaction"
            }
          }
        }
      },
      "GeneralLedgerReportRequest" : {
        "type" : "object",
        "properties" : {
          "startDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Report start date. Optional, if missing, starting date of the tracking period 'endDate' is in will be used. (financial year if not available)"
          },
          "endDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Report end date."
          },
          "receiptStatus" : {
            "type" : "array",
            "description" : "List of receipt statuses for report. Default value depends on company rights.",
            "items" : {
              "type" : "string",
              "enum" : [ "APPROVED", "SENT", "NOT_SENT", "PAYMENT_SENT_TO_BANK", "PAID", "PARTLY_PAID,", "MARKED_PAID", "PAYMENT_QUEUED", "PAYMENT_DENIED", "UNFINISHED", "VERIFIED", "RECEIVED" ]
            },
            "uniqueItems" : true
          },
          "options" : {
            "$ref" : "#/components/schemas/GeneralLedgerReportRequestOptions",
            "description" : "Report request options."
          }
        },
        "required" : [ "endDate" ]
      },
      "GeneralLedgerReportRequestOptions" : {
        "type" : "object",
        "properties" : {
          "receiptType" : {
            "type" : "array",
            "description" : "Receipt types that will be included in the report.",
            "items" : {
              "type" : "string",
              "enum" : [ "SALES_INVOICE", "PURCHASE_INVOICE", "TRAVEL_INVOICE", "BILL_OF_CHARGES", "JOURNAL", "SALARY", "VAT_FORM", "EMPLOYER_CONTRIBUTION", "PERIODIC_TAX_RETURN", "VAT_SUMMARY", "SALES_ORDER", "PURCHASE_ORDER", "REFERENCE_PAYMENT", "BANK_STATEMENT_AS_RECEIPT", "RECEIPT_FOR_OPENING_ACCOUNTS" ]
            },
            "uniqueItems" : true
          },
          "receiptCurrency" : {
            "type" : "string",
            "description" : "Currency for the receipt in ISO 4217 format.",
            "enum" : [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "ATS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BEF", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNH", "CNT", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CYP", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GRD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "ITL", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LUF", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MTL", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NIS", "NLG", "NOK", "NPR", "NTD", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PRB", "PTE", "PYG", "QAR", "RMB", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SLS", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWB", "ZWL" ],
            "examples" : [ "EUR" ]
          },
          "receiptName" : {
            "type" : "string",
            "description" : "Receipt name that will be used in the report."
          },
          "entryPeriodStart" : {
            "type" : "string",
            "format" : "date",
            "description" : "Entry period start date that will be used in the report. Date will be rounded down to start of the month."
          },
          "entryPeriodEnd" : {
            "type" : "string",
            "format" : "date",
            "description" : "Entry period end date that will be used in the report. Date will be rounded up to end of the month."
          },
          "transactionValue" : {
            "type" : "string",
            "description" : "Transaction value that will be used in the report."
          },
          "transactionCurrency" : {
            "type" : "string",
            "default" : "EUR",
            "description" : "Transaction currency that will be used in the report. Not considered if transaction value is not given.",
            "enum" : [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "ATS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BEF", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNH", "CNT", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CYP", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GRD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "ITL", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LUF", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MTL", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NIS", "NLG", "NOK", "NPR", "NTD", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PRB", "PTE", "PYG", "QAR", "RMB", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SLS", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWB", "ZWL" ]
          },
          "reportLanguage" : {
            "type" : "string",
            "description" : "Language that will be used in the report."
          },
          "receiptNumbers" : {
            "type" : "string",
            "description" : "Receipt Numbers that will be used in the general ledger report."
          },
          "transactionDescription" : {
            "type" : "string",
            "description" : "Transaction Description that will be used in the general ledger report."
          }
        }
      },
      "GeneralLedgerReportResponse" : {
        "type" : "object",
        "properties" : {
          "reportParameters" : {
            "$ref" : "#/components/schemas/GeneralLedgerReportRequest",
            "description" : "Report parameters that were used to generate the report."
          },
          "ledgerAccount" : {
            "$ref" : "#/components/schemas/GeneralLedgerReportData",
            "description" : "Report data."
          }
        }
      },
      "HolidayPay" : {
        "type" : "object",
        "properties" : {
          "useHolidayCalculation" : {
            "type" : "boolean",
            "description" : "Holiday calculation setting on/off."
          },
          "holidayEarningStartDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Holiday earning start date."
          },
          "holidayBonusEarningStartDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Holiday bonus earning start date."
          },
          "totalRemainingHolidayDays" : {
            "type" : "number",
            "description" : "Total remaining holiday days."
          },
          "totalRemainingHolidayPay" : {
            "type" : "number",
            "description" : "Total remaining holiday pay."
          },
          "totalRemainingHolidayBonusDays" : {
            "type" : "number",
            "description" : "Total remaining holiday bonus days."
          },
          "totalRemainingAdditionalLeaveDays" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Total remaining additional leave days."
          },
          "yearlyRemainings" : {
            "type" : "array",
            "description" : "Yearly remaining holiday information per holiday credit year.",
            "items" : {
              "$ref" : "#/components/schemas/HolidayPayYearlyRemaining"
            }
          }
        }
      },
      "HolidayPayData" : {
        "type" : "object",
        "properties" : {
          "holidayDays" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of holiday pay days to create holiday pay rows.",
            "minimum" : 1
          },
          "rightForTimeOffAmount" : {
            "type" : "number",
            "description" : "Amount of holiday pay compensation to create holiday pay rows.",
            "minimum" : 0.01
          },
          "holidayBonusDays" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of holiday bonus pay days to create holiday pay rows.",
            "minimum" : 1
          },
          "holidayAdditionalLeaveDays" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of holiday pay additional leave days to create holiday pay rows.",
            "minimum" : 1
          }
        }
      },
      "HolidayPayYearlyRemaining" : {
        "type" : "object",
        "properties" : {
          "holidayCreditYear" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Holiday credit year (e.g., 2025 represents 1.4.2025 - 31.3.2026)."
          },
          "remainingHolidayDays" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Remaining holiday days for this year."
          },
          "remainingHolidayPay" : {
            "type" : "number",
            "description" : "Remaining holiday pay for this year."
          },
          "remainingHolidayBonusDays" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Remaining holiday bonus days for this year."
          },
          "remainingAdditionalLeaveDays" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Remaining additional leave days for this year."
          }
        }
      },
      "HolidayRowDetails" : {
        "type" : "object",
        "properties" : {
          "holidayCreditYear" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Holiday credit year.",
            "readOnly" : true
          },
          "holidayPayPercentage" : {
            "type" : "number",
            "description" : "Holiday pay percentage.",
            "readOnly" : true
          },
          "holidayDaysSpent" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Holiday days spent. Only for employees with monthly with workday divider calculation basis.",
            "minimum" : 1
          },
          "holidayBonusCalculationBasis" : {
            "type" : "string",
            "description" : "Holiday bonus calculation basis.",
            "enum" : [ "AVERAGE_DAILY", "AVERAGE_HOURLY", "MONTHLY_PLUS_SHIFT_COMPENSATIONS", "MONTHLY_WITH_STANDARD_DIVIDER", "MONTHLY_WITH_WORKDAY_DIVIDER", "PERCENTAGE_BASED", "PERCENTAGE_FOR_CONSTRUCTION_14_PLUS_4_5", "PERCENTAGE_FOR_CONSTRUCTION_18_5_OR_14_PLUS_4_5", "RIGHT_FOR_TIME_OFF" ],
            "readOnly" : true
          },
          "correction" : {
            "type" : "boolean",
            "description" : "Is holiday pay correction.",
            "readOnly" : true
          }
        }
      },
      "HolidaysWorkingTimeAllocation" : {
        "type" : "object",
        "properties" : {
          "workingTimeInFirstMonth" : {
            "type" : "number",
            "description" : "Working time in first month.",
            "maximum" : 500,
            "minimum" : -500
          },
          "workingTimeInSecondMonth" : {
            "type" : "number",
            "description" : "Working time in second month. Only if salary slip payment period covers two months.",
            "maximum" : 500,
            "minimum" : -500
          },
          "workingTimeType" : {
            "type" : "string",
            "description" : "Working time type.",
            "enum" : [ "DAYS", "HOURS" ],
            "readOnly" : true
          },
          "averageDailyActualWorkdays" : {
            "$ref" : "#/components/schemas/AverageDailyActualWorkdays",
            "description" : "Average daily actual workday. Only for employees with average daily calculation basis."
          }
        },
        "required" : [ "workingTimeInFirstMonth" ]
      },
      "IncomeConfiguration" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of employee income configuration.",
            "readOnly" : true
          },
          "baseSalaryValue" : {
            "type" : "number",
            "description" : "Base salary. Scale: 2.",
            "maximum" : 999999999.99,
            "minimum" : 0
          },
          "baseSalaryType" : {
            "type" : "string",
            "description" : "Base salary type.",
            "enum" : [ "COMPENSATION", "HOURLY", "ONE_DAY", "ONE_MONTH", "ONE_MONTH_TOTAL", "ONE_WEEK", "PAYMENT_BY_JOB", "TWO_WEEKS" ]
          },
          "compensationForWorkBaseSalaryTypeCode" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Compensation for work base salary type code. Allowed salary types codes: 2900, 2901, 2902"
          },
          "baseSalaryHours" : {
            "type" : "number",
            "description" : "The amount of hours belonging to the base salary. For HOURLY base salary type allowed value is 1. Scale: 2.",
            "maximum" : 8760.00,
            "minimum" : 0.01
          },
          "monthlyBaseSalary" : {
            "type" : "number",
            "description" : "Monthly base salary. Scale: 2.",
            "maximum" : 999999999.99,
            "minimum" : 0
          },
          "personalHourlySalary" : {
            "type" : "number",
            "description" : "Personal hourly salary. Not allowed in POST. Scale: 2.",
            "maximum" : 999999999.99,
            "minimum" : 0
          },
          "travelExpensesSpecialHandling" : {
            "type" : "string",
            "description" : "Applied special handling of travel expenses.",
            "enum" : [ "NONE", "NON_PROFIT_ORGANISATION", "RECIPIENT_OF_COMPENSATION_FOR_WORK" ]
          },
          "earnerTypes" : {
            "type" : "array",
            "description" : "Applied income earner types.",
            "items" : {
              "type" : "string",
              "enum" : [ "EMPLOYED_WITH_ASSISTANCE_FROM_THE_STATE_EMPLOYMENT_FUND", "JOINT_OWNER_WITH_PAYER", "PARTIAL_OWNER", "KEY_EMPLOYEE", "ORGANISATION", "PERSON_WORKING_IN_A_FRONTIER_DISTRICT", "PERSON_WORKING_ABROAD", "ATHLETE", "PERFORMING_ARTIST", "SELF_EMPLOYED_PERSON_NO_OBLIGATION_TO_TAKE_OUT_YEL_OR_MYEL_INSURANCE", "INVOICING_SERVICE_CLIENT" ]
            },
            "uniqueItems" : true
          },
          "taxNumber" : {
            "type" : "string",
            "description" : "Employee tax number (FI).",
            "maxLength" : 12,
            "minLength" : 0
          },
          "salaryChannel" : {
            "type" : "string",
            "description" : "The channel which is used for delivering Salary Slips for the given Employee.",
            "enum" : [ "NO_SENDING", "MAIL", "EMAIL", "MOBILE", "ESALARY" ]
          },
          "excludedFromAutomatedWithholdingPercentageRequest" : {
            "type" : "boolean",
            "description" : "Exclude from automated withholding percentage request (VeroAPI)."
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Version. Not allowed in POST. Required in PUT."
          }
        },
        "required" : [ "baseSalaryHours", "baseSalaryType", "baseSalaryValue", "excludedFromAutomatedWithholdingPercentageRequest", "salaryChannel", "travelExpensesSpecialHandling" ]
      },
      "IncomesRegisterConfiguration" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of incomes register configuration.",
            "readOnly" : true
          },
          "kevaSuborganisationId" : {
            "type" : "string",
            "description" : "Keva: Suborganisation ID."
          },
          "payerTypes" : {
            "type" : "array",
            "description" : "Payer types.",
            "items" : {
              "type" : "string",
              "enum" : [ "PUBLIC_SECTOR", "HOUSEHOLD", "FOREIGN_GROUP_COMPANY", "STATE", "UNINCORPORATED_STATE_ENTERPRISE", "TEMPORARY_EMPLOYER", "POOL_OF_HOUSEHOLDS" ]
            },
            "uniqueItems" : true
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Version."
          }
        }
      },
      "InfoMessage" : {
        "type" : "object",
        "description" : "Response information message",
        "properties" : {
          "message" : {
            "type" : "string",
            "description" : "Message with detail information about a result of action."
          }
        }
      },
      "InsurancesConfiguration" : {
        "type" : "object",
        "properties" : {
          "pensionInsurance" : {
            "$ref" : "#/components/schemas/PensionInsurance",
            "description" : "Pension insurance."
          },
          "accidentInsurance" : {
            "$ref" : "#/components/schemas/AccidentInsurance",
            "description" : "Accident insurance."
          },
          "noObligationExceptionTypes" : {
            "type" : "array",
            "description" : "Applied insurance exception types. No obligation to provide exception types.",
            "items" : {
              "type" : "string",
              "enum" : [ "NO_OBLIGATION_TO_PROVIDE_INSURANCE_EARNINGS_RELATED_PENSION_INSURANCE", "NO_OBLIGATION_TO_PROVIDE_INSURANCE_HEALTH_INSURANCE", "NO_OBLIGATION_TO_PROVIDE_INSURANCE_UNEMPLOYMENT_INSURANCE", "NO_OBLIGATION_TO_PROVIDE_INSURANCE_ACCIDENT_AND_OCCUPATIONAL_DISEASE_INSURANCE" ]
            },
            "uniqueItems" : true
          },
          "notSubjectExceptionTypes" : {
            "type" : "array",
            "description" : "Applied insurance exception types. Not subject to Finnish social security exception types.",
            "items" : {
              "type" : "string",
              "enum" : [ "NOT_SUBJECT_TO_FINNISH_SOCIAL_SEC_EARNINGS_RELATED_PENSION_INSURANCE", "NOT_SUBJECT_TO_FINNISH_SOCIAL_SEC_HEALTH_INSURANCE", "NOT_SUBJECT_TO_FINNISH_SOCIAL_SEC_UNEMPLOYMENT_INSURANCE", "NOT_SUBJECT_TO_FINNISH_SOCIAL_SEC_ACCIDENT_AND_OCCUPATIONAL_DISEASE_INSURANCE" ]
            },
            "uniqueItems" : true
          },
          "pensionVoluntarilyPaid" : {
            "type" : "boolean",
            "description" : "Voluntary insurance in Finland. Earnings-related pension."
          }
        },
        "required" : [ "accidentInsurance", "pensionInsurance", "pensionVoluntarilyPaid" ]
      },
      "InternationalSituationsConfiguration" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of employee international situations configuration.",
            "readOnly" : true
          },
          "socialSecurityCertificate" : {
            "type" : "string",
            "description" : "Social security certificate.",
            "enum" : [ "FROM_FINLAND_A1", "NON_SOCIAL_SECURITY", "TO_FINLAND_A1" ]
          },
          "notSubjectToWithholding" : {
            "type" : "boolean",
            "description" : "Not subject to withholding in Finland."
          },
          "nonResidentTaxPayer" : {
            "type" : "boolean",
            "description" : "Non-resident taxpayer."
          },
          "taxIdentificationNumber" : {
            "type" : "string",
            "description" : "Tax Identification Number.",
            "maxLength" : 30,
            "minLength" : 0
          },
          "sixMonthRuleApplicability" : {
            "type" : "string",
            "description" : "Six-month rule is applicable.",
            "enum" : [ "NO", "YES" ]
          },
          "country" : {
            "type" : "string",
            "description" : "Country code.",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ]
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Version. Not allowed in POST. Required in PUT."
          }
        },
        "required" : [ "nonResidentTaxPayer", "notSubjectToWithholding" ]
      },
      "Invoice" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the invoice. Generated by Procountor and present in the object returned.",
            "readOnly" : true
          },
          "partnerId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Technical ID for the business partner. Used to link the invoice to a customer or supplier in the business partner register. If supplied, the company must have this partner ID in the corresponding register. This field is not editable in PUT /invoices endpoint."
          },
          "type" : {
            "type" : "string",
            "description" : "Invoice type. Note that this affects validation requirements. PERIODIC_TAX_RETURN is supported only by GET /invoices endpoint. It's not supported by PUT and POST /invoices endpoints.",
            "enum" : [ "SALES_INVOICE", "SALES_ORDER", "PURCHASE_INVOICE", "PURCHASE_ORDER", "TRAVEL_INVOICE", "BILL_OF_CHARGES", "PERIODIC_TAX_RETURN" ]
          },
          "status" : {
            "type" : "string",
            "description" : "Invoice status. A new invoice created through the API will have its status set as UNFINISHED. Updating invoice is possible when its status is UNFINISHED. Updating expense claim, purchase, purchase order and travel invoice is possible when the status is UNFINISHED or RECEIVED. PUT /invoices endpoint is not able to change invoice status.",
            "enum" : [ "EMPTY", "UNFINISHED", "NOT_SENT", "SENT", "RECEIVED", "PAID", "PAYMENT_DENIED", "VERIFIED", "APPROVED", "INVALIDATED", "PAYMENT_QUEUED", "PARTLY_PAID", "PAYMENT_SENT_TO_BANK", "MARKED_PAID", "STARTED", "INVOICED", "OVERRIDDEN", "DELETED", "UNSAVED", "PAYMENT_TRANSACTION_REMOVED" ],
            "examples" : [ "UNFINISHED" ],
            "readOnly" : true
          },
          "date" : {
            "type" : "string",
            "format" : "date",
            "description" : "Invoice date. This is synonymous to billing date."
          },
          "paymentDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Date of the latest payment transaction related to the invoice. Set automatically when payments are made and can't be modified directly.",
            "readOnly" : true
          },
          "counterParty" : {
            "$ref" : "#/components/schemas/CounterParty",
            "description" : "This object holds information about the counterparty of the invoice. With sales invoices and sales orders, it is the buyer. With purchase invoices and purchase orders it is the seller. With travel and expense invoices, it is the reporter of the expenses"
          },
          "billingAddress" : {
            "$ref" : "#/components/schemas/InvoiceBillingAddress",
            "description" : "The address where the invoice should be sent. If omitted for sales invoice, assumed to equal the counter party address. If billing address is not needed for sales invoice, please send an empty value: billingAddress:{}. Note: For purchase invoice and purchase order, this is a billing delivery address and corresponds to the 'Buyer delivery address' section on UI."
          },
          "deliveryAddress" : {
            "$ref" : "#/components/schemas/InvoiceDeliveryAddress",
            "description" : "The address where the goods should be delivered. If omitted for a sales or purchase invoice, assumed to equal the counter party address. If delivery address is not needed for sales or purchase invoice, please send an empty value: deliveryAddress:{}. Note: This value has no correspondence on the UI with purchase invoices and purchase orders. For defining a delivery address for a purchase invoice or purchase order, use the billingAddress property instead."
          },
          "paymentInfo" : {
            "$ref" : "#/components/schemas/PaymentInfo",
            "description" : "Invoice payment info. Includes the bank account to which the invoice should be paid, how it should be paid and when it should be paid."
          },
          "deliveryTermsInfo" : {
            "$ref" : "#/components/schemas/DeliveryTermsInfo",
            "description" : "Invoice delivery terms info."
          },
          "extraInfo" : {
            "$ref" : "#/components/schemas/ExtraInfo",
            "description" : "Invoice extra info."
          },
          "discountPercent" : {
            "type" : "number",
            "description" : "Invoice discount percentage. Scale: 4.",
            "maximum" : 100
          },
          "orderReference" : {
            "type" : "string",
            "description" : "Order reference of the invoice. This will be copied to the payment as message if no reference code is specified.",
            "maxLength" : 70,
            "minLength" : 0
          },
          "invoiceRows" : {
            "type" : "array",
            "description" : "Invoice rows. An invoice should always have at least one row. The only exception are PERIODIC_TAX_RETURN invoices which do not have any invoice rows.",
            "items" : {
              "$ref" : "#/components/schemas/InvoiceRow"
            }
          },
          "invoiceNumber" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Invoice number generated by Procountor. For custom invoice numbers, see the originalInvoiceNumber property.",
            "readOnly" : true
          },
          "vatStatus" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Invoice VAT status. Required for all invoices except travel invoices and expense claims."
          },
          "originalInvoiceNumber" : {
            "type" : "string",
            "description" : "Invoice number from the biller in an external system.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "deliveryStartDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "First day of the delivery period."
          },
          "deliveryEndDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Last day of the delivery period."
          },
          "deliveryMethod" : {
            "type" : "string",
            "description" : "Delivery method for the goods. SALES_INVOICE and SALES_ORDER do not support type OTHER.",
            "enum" : [ "MAILING", "ONLINE", "COURIER", "VRCARGO", "BUS", "FREIGHT", "RETRIEVABLE", "OTHER" ]
          },
          "deliveryInstructions" : {
            "type" : "string",
            "description" : "Delivery instructions.",
            "maxLength" : 255,
            "minLength" : 0
          },
          "invoiceChannel" : {
            "type" : "string",
            "description" : "Channel of distribution for the invoice. Values EDIFACT and PAPER_INVOICE are not allowed for POST /invoices and PUT /invoices endpoints.",
            "enum" : [ "EMAIL", "MAIL", "ELECTRONIC_INVOICE", "EDIFACT", "PAPER_INVOICE", "NO_SENDING" ]
          },
          "invoiceOperatorInfo" : {
            "$ref" : "#/components/schemas/InvoiceOperatorInfo",
            "description" : "Invoice operator related information. It is a read-only property shown only for purchase invoices.",
            "readOnly" : true
          },
          "penaltyPercent" : {
            "type" : "number",
            "description" : "Penal interest rate. Scale: 2."
          },
          "language" : {
            "type" : "string",
            "description" : "Language of the invoice. Required for sales invoices and sales orders, otherwise ignored.",
            "enum" : [ "DANISH", "ENGLISH", "ESTONIAN", "FINNISH", "NORWEGIAN", "SWEDISH" ]
          },
          "invoiceTemplateId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "SALES_INVOICE and SALES_ORDER only. ID of invoice template."
          },
          "additionalInformation" : {
            "type" : "string",
            "description" : "Invoice notes containing additional information. Visible on the invoice. Use \\n as line break.",
            "maxLength" : 10000,
            "minLength" : 0
          },
          "vatCountry" : {
            "type" : "string",
            "description" : "Country code describing which country's VAT standards are being used. Usage of foreign VAT settings must be agreed on separately with Procountor. Required if the company uses foreign VATs. Example value: SWEDEN. See Address.country in POST/PUT /invoices for a list of allowable values",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_INDIAN_OCEAN_TERRITORY", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORTHERN_MARIANA_ISLANDS", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_MARTIN_FRENCH_PART", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ],
            "examples" : [ "SWEDEN" ]
          },
          "ledgerReceiptId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "ID of the ledger receipt linked to this invoice. A ledger receipt is linked to every invoice for holding its accounting information. For defining ledger accounts, dimensions or VAT status regarding the invoice, modify the ledger receipt. See PUT /ledgerreceipts for more info.",
            "readOnly" : true
          },
          "notes" : {
            "type" : "string",
            "description" : "Invoice notes (seller's/buyer's notes). Not visible on the invoice. Use \\n as line break.",
            "maxLength" : 10000,
            "minLength" : 0
          },
          "factoringContractId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "SALES_INVOICE and SALES_ORDER only. ID for external financing agreement. The bankAccount.accountNumber specified must match the one used by the specified financing agreement. Financing agreements cannot be used with cash payments."
          },
          "factoringText" : {
            "type" : "string",
            "description" : "SALES_INVOICE and SALES_ORDER only. Additional notes about external financing agreement."
          },
          "sum" : {
            "type" : "number",
            "description" : "Only for invoice type PERIODIC_TAX_RETURN. Ignored for other types. Contains the total sum of invoice. POST and PUT operation cannot assign/modify value of this property.",
            "readOnly" : true
          },
          "travelInformationItems" : {
            "type" : "array",
            "description" : "Travel information items. A travel invoice may have one or more travel information items containing departure date, return date, destinations and travel purpose.",
            "items" : {
              "$ref" : "#/components/schemas/TravelInformationItem"
            }
          },
          "invoiceApprovalInformation" : {
            "$ref" : "#/components/schemas/InvoiceApprovalInformation",
            "description" : "Invoice circulation related approval information."
          },
          "attachments" : {
            "type" : "array",
            "description" : "List of attachments added to this invoice. Use POST and DELETE /attachments to add and delete attachments.",
            "items" : {
              "$ref" : "#/components/schemas/Attachment"
            },
            "readOnly" : true
          },
          "orderNumber" : {
            "type" : "string",
            "description" : "Order number. Valid only in Finnish environments for SALES_INVOICE and PURCHASE_INVOICE."
          },
          "agreementNumber" : {
            "type" : "string",
            "description" : "Agreement number. Valid only in Finnish environments for SALES_INVOICE and PURCHASE_INVOICE."
          },
          "accountingCode" : {
            "type" : "string",
            "description" : "Accounting code. Valid only in Finnish environments for SALES_INVOICE and PURCHASE_INVOICE."
          },
          "deliverySite" : {
            "type" : "string",
            "description" : "Delivery site. Valid only in Finnish environments for SALES_INVOICE and PURCHASE_INVOICE."
          },
          "tenderReference" : {
            "type" : "string",
            "description" : "Tender reference. Valid only in Finnish environments for SALES_INVOICE and PURCHASE_INVOICE."
          },
          "buyerReferenceIdentifier" : {
            "type" : "string",
            "description" : "Buyer reference. Valid only in Finnish environments for SALES_INVOICE and PURCHASE_INVOICE.",
            "maxLength" : 70,
            "minLength" : 0
          },
          "sellerReferenceIdentifier" : {
            "type" : "string",
            "description" : "Seller reference. Valid only in Finnish environments for SALES_INVOICE and PURCHASE_INVOICE.",
            "maxLength" : 70,
            "minLength" : 0
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Invoice version. This field is required in the PUT /invoices/{invoiceId} endpoint."
          },
          "invoiceSumInfo" : {
            "type" : "array",
            "description" : "Invoice sum info. If the invoice has currency other than the one set for the environment, it returns sum for both the accounting and invoice currency.",
            "items" : {
              "$ref" : "#/components/schemas/InvoiceSumInfo"
            },
            "readOnly" : true
          },
          "creatorId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Invoice owner's user ID.",
            "readOnly" : true
          },
          "isOffer" : {
            "type" : "boolean",
            "description" : "It marks invoice as an offer. It is applicable only to SALES_ORDER type of invoices."
          }
        },
        "required" : [ "counterParty", "date", "discountPercent", "extraInfo", "invoiceChannel", "invoiceRows", "paymentInfo", "type" ]
      },
      "InvoiceApprovalInformation" : {
        "type" : "object",
        "properties" : {
          "acceptors" : {
            "type" : "array",
            "description" : "List of invoice acceptors.",
            "items" : {
              "$ref" : "#/components/schemas/InvoiceCheckerInformation"
            }
          },
          "verifiers" : {
            "type" : "array",
            "description" : "List of invoice verifiers.",
            "items" : {
              "$ref" : "#/components/schemas/InvoiceCheckerInformation"
            }
          }
        }
      },
      "InvoiceBasicInfo" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the invoice."
          },
          "partnerId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Business partner id. Used to link the invoice to a customer or supplier in the business partner register."
          },
          "type" : {
            "type" : "string",
            "description" : "Invoice type.",
            "enum" : [ "SALES_INVOICE", "SALES_ORDER", "PURCHASE_INVOICE", "PURCHASE_ORDER", "TRAVEL_INVOICE", "BILL_OF_CHARGES", "PERIODIC_TAX_RETURN" ],
            "examples" : [ "PURCHASE_INVOICE" ]
          },
          "status" : {
            "type" : "string",
            "description" : "Invoice status.",
            "enum" : [ "EMPTY", "UNFINISHED", "NOT_SENT", "SENT", "RECEIVED", "PAID", "PAYMENT_DENIED", "VERIFIED", "APPROVED", "INVALIDATED", "PAYMENT_QUEUED", "PARTLY_PAID", "PAYMENT_SENT_TO_BANK", "MARKED_PAID", "STARTED", "INVOICED", "OVERRIDDEN", "DELETED", "UNSAVED", "PAYMENT_TRANSACTION_REMOVED" ],
            "examples" : [ "UNFINISHED" ]
          },
          "invoiceNumber" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Invoice number generated by Procountor."
          },
          "originalInvoiceNumber" : {
            "type" : "string",
            "description" : "Invoice number from the biller in an external system."
          },
          "invoiceChannel" : {
            "type" : "string",
            "description" : "Channel of distribution for the invoice.",
            "enum" : [ "EMAIL", "MAIL", "ELECTRONIC_INVOICE", "EDIFACT", "PAPER_INVOICE", "NO_SENDING" ]
          },
          "date" : {
            "type" : "string",
            "format" : "date",
            "description" : "Invoice date. This is synonymous to billing date."
          },
          "dueDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Invoice payment due date."
          },
          "newDueDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Invoice payment new due date.",
            "readOnly" : true
          },
          "created" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Creation timestamp of the invoice. Automatically generated by Procountor.",
            "examples" : [ "2017-09-27T12:12:42" ]
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Invoice version timestamp. Automatically generated by Procountor and updated every time the invoice is modified.",
            "examples" : [ "2017-09-27T12:12:42" ]
          },
          "invoiceSumInfo" : {
            "type" : "array",
            "description" : "Invoice sum info. If the invoice has currency other than the one set for the environment, it returns sum for both the accounting and invoice currency.",
            "items" : {
              "$ref" : "#/components/schemas/InvoiceSumInfo"
            },
            "readOnly" : true
          },
          "creatorId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Invoice owner's user ID.",
            "readOnly" : true
          },
          "counterParty" : {
            "$ref" : "#/components/schemas/CounterParty",
            "description" : "This object holds information about the counterparty of the invoice. With sales invoices and sales orders, it is the buyer. With purchase invoices and purchase orders it is the seller. With travel and expense invoices, it is the reporter of the expenses"
          },
          "isOffer" : {
            "type" : "boolean",
            "description" : "Indicates whether the invoice is an offer."
          }
        },
        "required" : [ "counterParty" ]
      },
      "InvoiceBillingAddress" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Name (\"first line\") in the address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "specifier" : {
            "type" : "string",
            "description" : "Specifier, such as c/o address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "street" : {
            "type" : "string",
            "description" : "Street.\n\nRequired for SALES_INVOICE and SALES_ORDER if invoicing channel is MAIL.\nIn that case, must be specified in counterPartyAddress if not specified in billingAddress.\n\nRequired for SALES_INVOICE if invoicing channel is ELECTRONIC_INVOICE. In that case,\nmust be specified in billingAddress and counterPartyAddress.\n",
            "maxLength" : 80,
            "minLength" : 0
          },
          "zip" : {
            "type" : "string",
            "description" : "Zip code.\n\nRequired for SALES_INVOICE and SALES_ORDER if invoicing channel is MAIL.\nIn that case, must be specified in counterPartyAddress if not specified in billingAddress.\n\nRequired for SALES_INVOICE if invoicing channel is ELECTRONIC_INVOICE. In that case,\nmust be specified in billingAddress and counterPartyAddress.\n",
            "maxLength" : 20,
            "minLength" : 0
          },
          "city" : {
            "type" : "string",
            "description" : "City.\n\nRequired for SALES_INVOICE and SALES_ORDER if invoicing channel is MAIL.\nIn that case, must be specified in counterPartyAddress if not specified in billingAddress.\n\nRequired for SALES_INVOICE if invoicing channel is ELECTRONIC_INVOICE. In that case,\nmust be specified in billingAddress and counterPartyAddress.\n",
            "maxLength" : 40,
            "minLength" : 0
          },
          "country" : {
            "type" : "string",
            "description" : "Country.",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_INDIAN_OCEAN_TERRITORY", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORTHERN_MARIANA_ISLANDS", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_MARTIN_FRENCH_PART", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ],
            "examples" : [ "SWEDEN" ]
          },
          "subdivision" : {
            "type" : "string",
            "description" : "Subdivision of the city",
            "maxLength" : 35,
            "minLength" : 0
          }
        }
      },
      "InvoiceCheckerInformation" : {
        "type" : "object",
        "description" : "Checkers are supported for PURCHASE_INVOICE, TRAVEL_INVOICE, BILL_OF_CHARGES",
        "properties" : {
          "userId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "User ID of the given checker. If invoice checker is given then this field is required"
          },
          "eventPerformed" : {
            "type" : "string",
            "format" : "date",
            "description" : "Time when event was performed. Not present if event has not been performed.",
            "readOnly" : true
          }
        },
        "required" : [ "userId" ]
      },
      "InvoiceCirculationRights" : {
        "type" : "object",
        "properties" : {
          "verification" : {
            "type" : "string",
            "description" : "Access level to verification functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "approval" : {
            "type" : "string",
            "description" : "Access level to approval functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "personalApprovalsOrVerificationsOnly" : {
            "type" : "boolean",
            "description" : "Is personal approvals or verifications only limitation enabled."
          }
        }
      },
      "InvoiceCounterpartyAddress" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Name (\"first line\") in the address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "specifier" : {
            "type" : "string",
            "description" : "Specifier, such as c/o address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "street" : {
            "type" : "string",
            "description" : "Street.\n\nRequired for SALES_INVOICE and SALES_ORDER if invoicing channel is MAIL.\nIn that case, must be specified in counterPartyAddress if not specified in billingAddress.\n\nRequired for SALES_INVOICE if invoicing channel is ELECTRONIC_INVOICE. In that case,\nmust be specified in billingAddress and counterPartyAddress.\n",
            "maxLength" : 80,
            "minLength" : 0
          },
          "zip" : {
            "type" : "string",
            "description" : "Zip code.\n\nRequired for SALES_INVOICE and SALES_ORDER if invoicing channel is MAIL.\nIn that case, must be specified in counterPartyAddress if not specified in billingAddress.\n\nRequired for SALES_INVOICE if invoicing channel is ELECTRONIC_INVOICE. In that case,\nmust be specified in billingAddress and counterPartyAddress.\n",
            "maxLength" : 20,
            "minLength" : 0
          },
          "city" : {
            "type" : "string",
            "description" : "City.\n\nRequired for SALES_INVOICE and SALES_ORDER if invoicing channel is MAIL.\nIn that case, must be specified in counterPartyAddress if not specified in billingAddress.\n\nRequired for SALES_INVOICE if invoicing channel is ELECTRONIC_INVOICE. In that case,\nmust be specified in billingAddress and counterPartyAddress.\n",
            "maxLength" : 40,
            "minLength" : 0
          },
          "country" : {
            "type" : "string",
            "description" : "Country.",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_INDIAN_OCEAN_TERRITORY", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORTHERN_MARIANA_ISLANDS", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_MARTIN_FRENCH_PART", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ],
            "examples" : [ "SWEDEN" ]
          },
          "subdivision" : {
            "type" : "string",
            "description" : "Subdivision of the city",
            "maxLength" : 35,
            "minLength" : 0
          }
        },
        "required" : [ "name" ]
      },
      "InvoiceDeliveryAddress" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Name (\"first line\") in the address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "specifier" : {
            "type" : "string",
            "description" : "Specifier, such as c/o address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "street" : {
            "type" : "string",
            "description" : "Street.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "zip" : {
            "type" : "string",
            "description" : "Zip code.",
            "maxLength" : 20,
            "minLength" : 0
          },
          "city" : {
            "type" : "string",
            "description" : "City.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "country" : {
            "type" : "string",
            "description" : "Country.",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_INDIAN_OCEAN_TERRITORY", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORTHERN_MARIANA_ISLANDS", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_MARTIN_FRENCH_PART", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ],
            "examples" : [ "SWEDEN" ]
          },
          "subdivision" : {
            "type" : "string",
            "description" : "Subdivision of the city",
            "maxLength" : 35,
            "minLength" : 0
          }
        }
      },
      "InvoiceIds" : {
        "type" : "object",
        "properties" : {
          "invoiceIds" : {
            "type" : "array",
            "description" : "List of invoice IDs.",
            "items" : {
              "type" : "integer",
              "format" : "int32"
            }
          }
        }
      },
      "InvoiceNotes" : {
        "type" : "object",
        "properties" : {
          "notes" : {
            "type" : "string",
            "description" : "Invoice notes. \\n can be used as a line break.",
            "maxLength" : 10000,
            "minLength" : 0
          }
        },
        "required" : [ "notes" ]
      },
      "InvoiceOperatorInfo" : {
        "type" : "object",
        "properties" : {
          "operator" : {
            "type" : "string",
            "description" : "Invoice operator."
          },
          "receivingAddress" : {
            "type" : "string",
            "description" : "Receiving address of operator."
          }
        }
      },
      "InvoicePayment" : {
        "type" : "object",
        "properties" : {
          "amount" : {
            "type" : "number",
            "description" : "The amount of the payment in the given currency. Currency is defined within the invoice, which identifier is set in invoiceId field.",
            "minimum" : 0
          },
          "bankReferenceCode" : {
            "type" : "string",
            "description" : "Bank reference code.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "bankReferenceCodeType" : {
            "type" : "string",
            "description" : "Reference code generation type. If type not allowed for a user country will be given, then 400 is returned",
            "enum" : [ "RF", "FI", "OCR", "KID", "GIK01", "GIK04", "GIK15", "FIK71", "FIK73", "FIK75" ]
          },
          "message" : {
            "type" : "string",
            "description" : "Message for the payment, if reference payment is not used.",
            "maxLength" : 140,
            "minLength" : 0
          },
          "recipientBankAccount" : {
            "type" : "string",
            "description" : "Bank account number of the recipient.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "recipientBicCode" : {
            "type" : "string",
            "description" : "BIC code of recipient bank account number.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "paymentMethod" : {
            "type" : "string",
            "description" : "Payment method type defining what kind of payment has to be made.",
            "enum" : [ "DENMARK_DOMESTIC_PAYMENT", "DENMARK_DOMESTIC_PAYMENT_CREDITOR", "DENMARK_FOREIGN_PAYMENT", "FINNISH_BANK_TRANSFER", "FINNISH_EXPRESS_PAYMENT", "FINNISH_FOREIGN_PAYMENT", "NORWEGIAN_DOMESTIC_PAYMENT", "NORWEGIAN_FOREIGN_PAYMENT", "SWEDISH_DOMESTIC_PAYMENT", "SWEDISH_DOMESTIC_PAYMENT_BANKGIRO", "SWEDISH_DOMESTIC_PAYMENT_PLUSGIRO", "SWEDISH_FOREIGN_PAYMENT" ]
          },
          "payerBankAccount" : {
            "type" : "string",
            "description" : "The payer bank account. It has to be predefined in the environment to be able to use the payment. If not set than default bank account for payment is taken.",
            "externalDocs" : {
              "description" : "Information about adding bank accounts in Procountor.",
              "url" : "https://help.procountor.fi/en/articles/531687-bank-account-information"
            }
          },
          "paymentDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Date specifying when the payment transaction has to be performed. Payment date should be greater than current date."
          },
          "receiverBankClearingCode" : {
            "type" : "string",
            "description" : "Receiver bank clearing code."
          },
          "recipientNameAndAddress" : {
            "$ref" : "#/components/schemas/PaymentRecipientNameAndAddress",
            "description" : "Recipient name with address. Recipient name is mandatory and is always in use, other fields are omitted in scenarios different then described below. In case of: foreign payments, Norway NETS payments, Norway SpareBank payments, Sweden Swedbank with missing bank reference payments and Sweden DanskeBank with missing bank reference payments full receiver address is needed."
          },
          "receiverBankNameAndAddress" : {
            "$ref" : "#/components/schemas/PaymentReceiverBankNameAndAddress",
            "description" : "Recipient bank name and address. Used in foreign payments."
          },
          "intermediaryBankNameAndAddress" : {
            "$ref" : "#/components/schemas/PaymentIntermediaryBankNameAndAddress",
            "description" : "Intermediary bank name and address. If filled in, then it have to be filled in full. Used in foreign payments."
          },
          "intermediaryBankBic" : {
            "type" : "string",
            "description" : "Intermediary bank BIC."
          },
          "serviceCharge" : {
            "type" : "string",
            "description" : "If not provided, for Finnish foreign payment it will be automatically set to BOTH_PAY_OWN_FEES.",
            "enum" : [ "BOTH_PAY_OWN_FEES", "PAYER_PAY_BOTH_FEES" ]
          },
          "invoiceId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the invoice."
          },
          "invoiceVersion" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Invoice version."
          }
        },
        "required" : [ "amount", "invoiceId", "invoiceVersion", "paymentDate", "paymentMethod", "recipientBankAccount", "recipientNameAndAddress" ]
      },
      "InvoicePaymentList" : {
        "type" : "object",
        "properties" : {
          "payments" : {
            "type" : "array",
            "description" : "List containing InvoicePayment objects.",
            "items" : {
              "$ref" : "#/components/schemas/InvoicePayment"
            },
            "maxItems" : 2147483647,
            "minItems" : 1
          }
        },
        "required" : [ "payments" ]
      },
      "InvoicePaymentSummaries" : {
        "type" : "object",
        "properties" : {
          "transactions" : {
            "type" : "array",
            "description" : "List of identifiers of added payments.",
            "items" : {
              "$ref" : "#/components/schemas/InvoicePaymentSummary"
            }
          }
        }
      },
      "InvoicePaymentSummary" : {
        "type" : "object",
        "properties" : {
          "paymentId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Identifier of created payment, provided by the application."
          },
          "invoiceId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Identifier of invoice associated with the payment."
          }
        }
      },
      "InvoiceRow" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier for a invoice row.",
            "readOnly" : true
          },
          "productId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier for a product. Links the invoice row to a product in the product register. Note that all other fields (name, price, ...) of an invoice row can be modified independently of the information in the product register. If one wants to use accounts from product register, accountingByRow must be true."
          },
          "product" : {
            "type" : "string",
            "description" : "Product name.",
            "minLength" : 1
          },
          "productCode" : {
            "type" : "string",
            "description" : "Product code."
          },
          "quantity" : {
            "type" : "number",
            "description" : "Product quantity."
          },
          "unit" : {
            "type" : "string",
            "description" : "Product unit.",
            "enum" : [ "CM", "LOT", "GRAM", "HOUR", "PERSON", "LINEAR_METER", "KILOGRAM", "MONTH", "KILOMETER", "PIECE", "KILOWATT_HOUR", "LITER", "BOX", "METER", "SQUARE_METER", "CUBIC_METER", "SALE_UNIT", "MINUTE", "MILLIMETER", "PARCEL", "BOTTLE", "CAN", "BAG", "DAY", "ROLL", "PAGE", "SACK", "SERIES", "TUBE", "TON", "YEAR", "WEEK", "FULL_DAY", "KILOBIT", "MEGABIT", "GIGABIT", "TERABIT", "SQUARE_CENTIMETRE", "CENTILITRE", "CUP", "DECILITRE", "GALLON_UK", "GALLON_US", "MILLILITRE", "PINT_UK", "PINT_US", "AMPERE", "AMPERE_HOUR", "AMPERE_MINUTE", "KILOAMPERE_HOUR", "KILOVOLT", "MILLIVOLT", "MILLIAMPERE_HOUR", "FOOT", "INCH", "MILE", "YARD", "EXAJOULE", "GIGAJOULE", "JOULE", "JOULE_PER_SECOND", "KILOJOULE", "MILLIJOULE", "PETAJOULE", "TERAJOULE", "GRAM_PER_CUBIC_METRE", "GRAM_PER_SQUARE_METRE", "KILOGRAM_PER_CUBIC_METRE", "KILOGRAM_PER_SQUARE_METRE", "MILLIGRAM", "MILLIGRAM_PER_CUBIC_METRE", "OUNCE", "POUND", "STONE_UK", "DOZEN", "DOZEN_PACK", "EIGHT_PACK", "FIVE_PACK", "FOUR_PACK", "HUNDRED", "JAR", "NINE_PACK", "NUMBER_OF_WORDS", "PAIR", "PALLET", "PLATE", "SET", "SEVEN_PACK", "SIX_PACK", "TEN_PACK", "THREE_PACK", "TWO_PACK", "WRAP", "GIGAWATT", "GIGAWATT_HOUR", "KILOWATT", "MEGAWATT_HOUR", "MILLIWATT", "TERAWATT", "TERAWATT_HOUR", "WATT", "WATT_HOUR", "BAR", "KILOPASCAL", "PASCAL", "KILOBYTE", "MEGABYTE", "GIGABYTE", "SECOND", "HECTARE", "NO_UNIT" ]
          },
          "unitPrice" : {
            "type" : "number",
            "description" : "Product unit price. This value is affected by the \"unit prices include VAT\" setting on the invoice."
          },
          "discountPercent" : {
            "type" : "number",
            "description" : "Product discount percentage."
          },
          "vatPercent" : {
            "type" : "number",
            "description" : "Product VAT percentage. Must be a percentage currently in use for the company."
          },
          "vatStatus" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Product VAT status."
          },
          "comment" : {
            "type" : "string",
            "description" : "Invoice row comment. Visible on the invoice. Use \\ as line break.",
            "maxLength" : 512,
            "minLength" : 0
          },
          "startDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Start date of accrual/delivery periods of invoice row."
          },
          "endDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "End date of accrual/delivery periods of invoice row."
          },
          "headerText" : {
            "type" : "string",
            "description" : "Header text of the content row associated with invoice row. Supported in sales offer, sales order and sales invoice.",
            "maxLength" : 512,
            "minLength" : 0
          },
          "explanationText" : {
            "type" : "string",
            "description" : "Explanation text of the content row associated with invoice row. Supported in sales offer, sales order and sales invoice.",
            "maxLength" : 512,
            "minLength" : 0
          }
        },
        "required" : [ "discountPercent", "product", "quantity", "unit", "unitPrice", "vatPercent" ]
      },
      "InvoiceSearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "Search results.",
            "items" : {
              "$ref" : "#/components/schemas/InvoiceBasicInfo"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/SearchResultMetaData",
            "description" : "Search result metadata."
          }
        }
      },
      "InvoiceSumInfo" : {
        "type" : "object",
        "properties" : {
          "currency" : {
            "type" : "string",
            "description" : "Accounting currency set for the environment or some other currency set in the invoice in ISO 4217 format."
          },
          "inAccountingCurrency" : {
            "type" : "boolean",
            "description" : "True if the sum is in accounting currency."
          },
          "excludingVatTotal" : {
            "type" : "number",
            "description" : "Total Excluding VAT for all invoice rows."
          },
          "vatSumTotal" : {
            "type" : "number",
            "description" : "Total VAT sum for all invoice rows."
          },
          "invoiceSumTotal" : {
            "type" : "number",
            "description" : "Sum of excludingVatTotal and vatSumTotal in accounting currency or invoice currency."
          }
        }
      },
      "InvoiceTemplate" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Invoice template ID."
          },
          "name" : {
            "type" : "string",
            "description" : "Invoice template name."
          }
        }
      },
      "InvoiceTransaction" : {
        "type" : "object",
        "properties" : {
          "action" : {
            "type" : "string",
            "description" : "Transaction action.",
            "enum" : [ "APPROVAL", "ALLOCATE_PAYMENT_MANUALLY", "ALLOCATE_INVOICE_TO_INVOICE", "ALLOCATE_INVOICE_TO_JOURNAL", "ALLOCATE_INVOICE_TO_BANK_STATEMENT", "ALLOCATE_INVOICE_TO_REFERENCE_PAYMENT", "VERIFICATION", "DIRECTED_TO_ANOTHER_VERIFIER", "DIRECTED_TO_ANOTHER_APPROVER", "COLLECTION_LETTER_DUETTOPRO", "PAYMENT_REMINDER_EMAIL", "CONVERTED_TO_INVOICE", "PAYMENT_REMINDER", "PAYMENT_WARNING", "PAYMENT_REMINDER_DUETTOFORTE", "CANCEL_PAYMENT_TRANSACTION", "RETURNED_PREVIOUS", "PAYMENT_REMINDER_MAIL", "COLLECTION_LETTER_SVEA", "COLLECTION_LETTER_SVEA_SHORT", "PAYMENT_REMINDER_SVEA", "PAYMENT_REMINDER_SVEA_SHORT", "DELETED_PAID_ELSEWHERE_PAYMENT_TRANSACTION", "DELETED_PAYMENT_TRANSACTION", "UNFINISHED", "RESTORED_UNFINISHED", "DENY_PAYMENT", "SENT_FOR_PAYMENT", "MARKED_PAID", "RECEIVED_VIA_AUTOMATIC_TRANSFER", "RECEIVED_AS_EINVOICE", "RECEIVED_AS_SCANNED_INVOICE", "TARGETING_REMOVED", "SEND_TO_CIRCULATION", "SEND", "PRODUCT_INFORMATION_UPDATED_INTO_INVENTORY_MANAGEMENT", "SENDING_CANCELLED", "SEPA_PAYMENT_ERROR", "PAYMENT_ERROR_HANDLED", "COLLECTION_LETTER_ROPO", "PAYMENT_REMINDER_ROPO", "INVOICE_FACTORING_DELETED", "SENDING_ERROR_RECEIVED", "SENDING_ERROR_EMAIL_NOTIFICATION", "SENDING_ERROR_HANDLED", "SENDING_ERROR_MARK_AS_HANDLED", "SENDING_ERROR_REVERTED_TO_NOT_SENT" ]
          },
          "name" : {
            "type" : "string",
            "description" : "Transaction name."
          },
          "date" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Transaction date."
          },
          "details" : {
            "type" : "string",
            "description" : "Transaction details."
          }
        }
      },
      "InvoiceTransactions" : {
        "type" : "object",
        "properties" : {
          "transactions" : {
            "type" : "array",
            "description" : "List of invoice transactions.",
            "items" : {
              "$ref" : "#/components/schemas/InvoiceTransaction"
            }
          }
        }
      },
      "InvoiceTransactionsByInvoice" : {
        "type" : "object",
        "properties" : {
          "invoiceId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Invoice ID."
          },
          "transactions" : {
            "type" : "array",
            "description" : "Transactions of the invoice.",
            "items" : {
              "$ref" : "#/components/schemas/InvoiceTransaction"
            }
          }
        }
      },
      "InvoiceTransactionsByInvoicesDTO" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "List of invoice transaction results.",
            "items" : {
              "$ref" : "#/components/schemas/InvoiceTransactionsByInvoice"
            }
          }
        }
      },
      "InvoicingInfo" : {
        "type" : "object",
        "properties" : {
          "customerNumber" : {
            "type" : "string",
            "description" : "Customer number of the partner."
          },
          "identifier" : {
            "type" : "string",
            "description" : "Identifier of the partner."
          },
          "identifierType" : {
            "type" : "string",
            "description" : "Identifier type of the partner."
          },
          "ovt" : {
            "type" : "string",
            "description" : "OVT of the partner."
          },
          "invoiceChannel" : {
            "type" : "string",
            "description" : "Invoice channel of the partner.",
            "enum" : [ "EMAIL", "MAIL", "ELECTRONIC_INVOICE", "EDIFACT", "PAPER_INVOICE", "NO_SENDING" ]
          },
          "contactPerson" : {
            "type" : "string",
            "description" : "Contact person of the partner."
          },
          "language" : {
            "type" : "string",
            "description" : "Language of the partner.",
            "enum" : [ "DANISH", "ENGLISH", "ESTONIAN", "FINNISH", "NORWEGIAN", "SWEDISH" ]
          },
          "email" : {
            "type" : "string",
            "description" : "Email of the partner."
          },
          "bccAddresses" : {
            "type" : "array",
            "description" : "Blind carbon copy addresses. Supported only in SALES_INVOICE, SALES_ORDER and OFFER. Maximum 4 email addresses can be provided. Must not match the main email address and each Bcc address must be free of special characters and no longer than 256 characters.",
            "items" : {
              "type" : "string"
            }
          },
          "denyEinvoiceReminders" : {
            "type" : "boolean",
            "description" : "Does the customer deny Procountors sending of payment reminders as e-invoice"
          },
          "orderReference" : {
            "type" : "string",
            "description" : "Order reference"
          },
          "sellerReferenceIdentifier" : {
            "type" : "string",
            "description" : "Seller reference identifier. Supported only in Finnish environments."
          },
          "buyerReferenceIdentifier" : {
            "type" : "string",
            "description" : "Buyer reference identifier. Supported only in Finnish environments."
          },
          "orderNumber" : {
            "type" : "string",
            "description" : "Order number. Supported only in Finnish environments."
          },
          "agreementNumber" : {
            "type" : "string",
            "description" : "Agreement number. Supported only in Finnish environments."
          },
          "accountingCode" : {
            "type" : "string",
            "description" : "Accounting code. Supported only in Finnish environments."
          },
          "deliverySite" : {
            "type" : "string",
            "description" : "Delivery site. Supported only in Finnish environments."
          },
          "tenderReference" : {
            "type" : "string",
            "description" : "Tender reference. Supported only in Finnish environments."
          },
          "einvoiceAddress" : {
            "type" : "string"
          },
          "einvoiceOperator" : {
            "type" : "string"
          }
        }
      },
      "Journal" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the journal receipt."
          },
          "ledgerReceiptId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "ID of the ledger receipt linked to this journal receipt.",
            "readOnly" : true
          },
          "partnerId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Technical ID for the business partner. Used to link the journal receipt to a customer or supplier in the business partner register. If supplied, the company must have this partner ID in the corresponding register."
          },
          "type" : {
            "type" : "string",
            "description" : "Receipt type. This particular endpoint only supports JOURNAL type.",
            "enum" : [ "JOURNAL" ],
            "readOnly" : true
          },
          "status" : {
            "type" : "string",
            "description" : "Journal receipt status.",
            "enum" : [ "UNFINISHED", "APPROVED", "INVALIDATED" ],
            "examples" : [ "INVALIDATED" ],
            "readOnly" : true
          },
          "invoiceNumber" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Receipt number generated by Procountor.",
            "readOnly" : true
          },
          "date" : {
            "type" : "string",
            "format" : "date",
            "description" : "Journal receipt date. This is synonymous to billing date."
          },
          "created" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Creation timestamp of the journal. Automatically generated by Procountor.",
            "examples" : [ "2017-09-27T12:12:42" ]
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Journal receipt version."
          },
          "counterParty" : {
            "$ref" : "#/components/schemas/CounterParty",
            "description" : "This object holds information about the counterparty of the journal receipt."
          }
        },
        "required" : [ "type" ]
      },
      "LaborUnionMembership" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of employee labor union membership.",
            "readOnly" : true
          },
          "laborUnionSettingId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Labor union setting ID."
          },
          "department" : {
            "type" : "string",
            "description" : "Labor union department.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "membershipId" : {
            "type" : "string",
            "description" : "Membership ID.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "membershipStart" : {
            "type" : "string",
            "format" : "date",
            "description" : "Membership start date."
          },
          "membershipEnd" : {
            "type" : "string",
            "format" : "date",
            "description" : "Membership end date."
          },
          "explanation" : {
            "type" : "string",
            "description" : "Explanation.",
            "maxLength" : 200,
            "minLength" : 0
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Version. Not allowed in POST. Required in PUT."
          }
        },
        "required" : [ "laborUnionSettingId", "membershipStart" ]
      },
      "LaborUnionSettingsBasicData" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of labor union setting.",
            "readOnly" : true
          },
          "name" : {
            "type" : "string",
            "description" : "Labor union setting name."
          }
        }
      },
      "LedgerAccount" : {
        "type" : "object",
        "properties" : {
          "ledgerAccountCode" : {
            "type" : "string",
            "description" : "Ledger account code."
          },
          "name" : {
            "type" : "string",
            "description" : "Ledger account name."
          },
          "active" : {
            "type" : "boolean",
            "description" : "Indicates whether the ledger account is active or not."
          },
          "translations" : {
            "type" : "array",
            "description" : "Ledger account name translations. If there is no translations available for given account, api response body will not contain translations list at all.",
            "items" : {
              "$ref" : "#/components/schemas/LedgerAccountTranslation"
            }
          }
        }
      },
      "LedgerAccountTranslation" : {
        "type" : "object",
        "properties" : {
          "languageCode" : {
            "type" : "string",
            "description" : "Language code in ISO 639-1 format."
          },
          "translation" : {
            "type" : "string",
            "description" : "Ledger account name translation for the given language code."
          }
        }
      },
      "LedgerAccounts" : {
        "type" : "object",
        "properties" : {
          "ledgerAccounts" : {
            "type" : "array",
            "description" : "List of ledger accounts.",
            "items" : {
              "$ref" : "#/components/schemas/LedgerAccount"
            }
          }
        }
      },
      "LedgerAccountsReportData" : {
        "type" : "object",
        "properties" : {
          "periods" : {
            "type" : "array",
            "description" : "List of report periods.",
            "items" : {
              "$ref" : "#/components/schemas/LedgerAccountsReportPeriod"
            }
          }
        }
      },
      "LedgerAccountsReportPeriod" : {
        "type" : "object",
        "properties" : {
          "startDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Start date of the report period."
          },
          "endDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "End date of the report period."
          },
          "rows" : {
            "type" : "array",
            "description" : "Report period rows.",
            "items" : {
              "$ref" : "#/components/schemas/LedgerAccountsReportRow"
            },
            "uniqueItems" : true
          }
        }
      },
      "LedgerAccountsReportRequest" : {
        "type" : "object",
        "properties" : {
          "startDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Report start date. Optional, if missing, starting date of the tracking period 'endDate' is in will be used. (financial year if not available)"
          },
          "endDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Report end date."
          },
          "receiptStatus" : {
            "type" : "array",
            "description" : "List of receipt statuses for report. Default value depends on company rights.",
            "items" : {
              "type" : "string",
              "enum" : [ "APPROVED", "SENT", "NOT_SENT", "PAYMENT_SENT_TO_BANK", "PAID", "PARTLY_PAID,", "MARKED_PAID", "PAYMENT_QUEUED", "PAYMENT_DENIED", "UNFINISHED", "VERIFIED", "RECEIVED" ]
            },
            "uniqueItems" : true
          },
          "options" : {
            "$ref" : "#/components/schemas/LedgerAccountsReportRequestOptions",
            "description" : "Report request options."
          }
        },
        "required" : [ "endDate" ]
      },
      "LedgerAccountsReportRequestOptions" : {
        "type" : "object",
        "properties" : {
          "receiptType" : {
            "type" : "array",
            "description" : "Receipt types that will be included in the report.",
            "items" : {
              "type" : "string",
              "enum" : [ "SALES_INVOICE", "PURCHASE_INVOICE", "TRAVEL_INVOICE", "BILL_OF_CHARGES", "JOURNAL", "SALARY", "VAT_FORM", "EMPLOYER_CONTRIBUTION", "PERIODIC_TAX_RETURN", "VAT_SUMMARY", "SALES_ORDER", "PURCHASE_ORDER", "REFERENCE_PAYMENT", "BANK_STATEMENT_AS_RECEIPT", "RECEIPT_FOR_OPENING_ACCOUNTS" ]
            },
            "uniqueItems" : true
          },
          "receiptCurrency" : {
            "type" : "string",
            "description" : "Currency for the receipt in ISO 4217 format.",
            "enum" : [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "ATS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BEF", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNH", "CNT", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CYP", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GRD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "ITL", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LUF", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MTL", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NIS", "NLG", "NOK", "NPR", "NTD", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PRB", "PTE", "PYG", "QAR", "RMB", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SLS", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWB", "ZWL" ],
            "examples" : [ "EUR" ]
          },
          "receiptName" : {
            "type" : "string",
            "description" : "Receipt name that will be used in the report."
          },
          "entryPeriodStart" : {
            "type" : "string",
            "format" : "date",
            "description" : "Entry period start date that will be used in the report. Date will be rounded down to start of the month."
          },
          "entryPeriodEnd" : {
            "type" : "string",
            "format" : "date",
            "description" : "Entry period end date that will be used in the report. Date will be rounded up to end of the month."
          },
          "transactionValue" : {
            "type" : "string",
            "description" : "Transaction value that will be used in the report."
          },
          "transactionCurrency" : {
            "type" : "string",
            "default" : "EUR",
            "description" : "Transaction currency that will be used in the report. Not considered if transaction value is not given.",
            "enum" : [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "ATS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BEF", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNH", "CNT", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CYP", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GRD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "ITL", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LUF", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MTL", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NIS", "NLG", "NOK", "NPR", "NTD", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PRB", "PTE", "PYG", "QAR", "RMB", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SLS", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWB", "ZWL" ]
          },
          "reportLanguage" : {
            "type" : "string",
            "description" : "Language that will be used in the report."
          },
          "customerCompanyId" : {
            "type" : "string",
            "description" : "Customer company ID that will be used in the report."
          }
        }
      },
      "LedgerAccountsReportResponse" : {
        "type" : "object",
        "properties" : {
          "reportParameters" : {
            "$ref" : "#/components/schemas/LedgerAccountsReportRequest",
            "description" : "Report parameters that were used to generate the report."
          },
          "reportData" : {
            "$ref" : "#/components/schemas/LedgerAccountsReportData",
            "description" : "Report data."
          }
        }
      },
      "LedgerAccountsReportRow" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Name of the row."
          },
          "value" : {
            "type" : "number",
            "description" : "Value of the row."
          }
        }
      },
      "LedgerReceipt" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the ledger receipt. Generated by Procountor and present in the object returned.",
            "readOnly" : true
          },
          "type" : {
            "type" : "string",
            "description" : "Ledger receipt type. Use JOURNAL for creating ledger receipts (vouchers) containing ledger transactions without linkage to pre-existing resources. Other types are automatically generated by Procountor for holding accounting information for e.g. invoices. Types allowed for POST = JOURNAL. Types allowed for PUT = JOURNAL, SALES_INVOICE, PURCHASE_INVOICE, TRAVEL_INVOICE, BILL_OF_CHARGES Types allowed for GET listed below",
            "enum" : [ "JOURNAL", "PURCHASE_INVOICE", "SALES_INVOICE", "PERIODIC_TAX_RETURN", "TRAVEL_INVOICE", "BILL_OF_CHARGES", "VAT_FORM", "SALARY", "EMPLOYER_CONTRIBUTION", "PURCHASE_ORDER", "SALES_ORDER", "BANK_STATEMENT_AS_RECEIPT", "RECEIPT_FOR_OPENING_ACCOUNTS", "REFERENCE_PAYMENT", "TRACKING_PERIOD_OPENING_RECEIPT", "VAT_SUMMARY" ]
          },
          "status" : {
            "type" : "string",
            "description" : "Ledger receipt status. Status of a ledger receipt equals the status of the linked invoice. All ledger receipts are initially created with status UNFINISHED. For journals, possible statuses are UNFINISHED, APPROVED and INVALIDATED. Ledger receipt statuses cannot be directly modified through the API.",
            "enum" : [ "APPROVED", "DELETED", "EMPTY", "INVALIDATED", "INVOICED", "MARKED_PAID", "NOT_SENT", "OVERRIDDEN", "PAID", "PARTLY_PAID", "PAYMENT_DENIED", "PAYMENT_QUEUED", "PAYMENT_SENT_TO_BANK", "PAYMENT_TRANSACTION_REMOVED", "RECEIVED", "SENT", "STARTED", "UNFINISHED", "UNSAVED", "VERIFIED" ],
            "readOnly" : true
          },
          "name" : {
            "type" : "string",
            "description" : "Ledger receipt name. ",
            "maxLength" : 80,
            "minLength" : 0
          },
          "receiptDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Ledger receipt date. Must not be in a closed fiscal period. See GET /fiscalyears for a list of fiscal years."
          },
          "vatType" : {
            "type" : "string",
            "description" : "Ledger receipt VAT type.",
            "enum" : [ "PURCHASE", "SALES" ]
          },
          "vatStatus" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Ledger receipt VAT status. This can be overridden on transaction level. Use here the numeric parts of VAT status codes listed in \"VAT defaults\" in Procountor. For example, for VAT status code \"vat_12\", use value 12. The VAT status used must be enabled for the current receipt type (sales/purchase)."
          },
          "vatProcessing" : {
            "type" : "string",
            "description" : "Ledger receipt VAT country. Only for JOURNAL types of ledger receipts. Requires a special right for foreign VATs. See Address.country in POST /invoices for a list of allowable values.",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_INDIAN_OCEAN_TERRITORY", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORTHERN_MARIANA_ISLANDS", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_MARTIN_FRENCH_PART", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ],
            "examples" : [ "SWEDEN" ]
          },
          "invoiceId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "ID of the linked invoice. For sales and purchase invoice ledger receipts, this refers to the invoice the receipt holds accounting data for. For journal receipts, an invoice is automatically generated to store certain data fields. Use this ID in POST /attachments endpoint.",
            "readOnly" : true
          },
          "receiptNumber" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of the ledger receipt.",
            "readOnly" : true
          },
          "invoiceNotes" : {
            "type" : "string",
            "description" : "Invoice notes. Linked to Invoice.notes. Not visible on ledger receipt printouts. Use \\n as line break. Max length 10000.",
            "maxLength" : 10000,
            "minLength" : 0
          },
          "invoiceNumber" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of the linked invoice. Automatically generated by Procountor.",
            "readOnly" : true
          },
          "accountantsNotes" : {
            "type" : "string",
            "description" : "Notes made by the accountant. Visible on ledger receipt printouts.",
            "maxLength" : 255,
            "minLength" : 0
          },
          "transactionDescription" : {
            "type" : "string",
            "description" : "Transaction description. This is a summary description for any transactions belonging to the ledger receipt.",
            "maxLength" : 255,
            "minLength" : 0
          },
          "receiptValidity" : {
            "type" : "string",
            "description" : "Receipt validity time.",
            "enum" : [ "EMPTY", "IMMEDIATELY", "OVER_3_YEARS", "SERVICE_PERIOD" ]
          },
          "periodStartDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Start date of the receipt period. If set, must precede the end date of the period."
          },
          "periodEndDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "End date of the receipt period. If this and the start date are set, this must be after the start date."
          },
          "partnerId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Technical ID for the business partner. Link the related invoice to a customer or supplier in the business partner register. If supplied, the company must have this partner ID in the corresponding register."
          },
          "partnerCode" : {
            "type" : "string",
            "description" : "Partner code. Identifier for the related company or person. May represent a business ID, national identification number (HETU in Finland) or an account number, depending on the receipt type."
          },
          "serialNumber" : {
            "$ref" : "#/components/schemas/SerialNumber",
            "description" : "Ledger receipt serial number. This field is optional and can only appear for Swedish and Danish environments.",
            "readOnly" : true
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Ledger receipt version timestamp. Automatically generated by Procountor and updated every time the receipt is modified. When using PUT /ledgerreceipts, it is required to include the latest version timestamp of the receipt to the request. This prevents conflicts if the receipt is being modified from several sources."
          },
          "depreciation" : {
            "type" : "string",
            "description" : "Accounting depreciation method for the receipt.",
            "enum" : [ "EMPTY", "REDUCING_BALANCE_25_PERCENT", "REDUCING_BALANCE_4_PERCENT", "REDUCING_BALANCE_7_PERCENT", "STRAIGHT_LINE_DEPRECIATION_3_YEARS", "STRAIGHT_LINE_DEPRECIATION_5_YEARS" ]
          },
          "vatDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "VAT date to be used if payment based VAT is enabled"
          },
          "transactions" : {
            "type" : "array",
            "description" : "List containing transactions on the receipt. At least one transaction must be provided.",
            "items" : {
              "$ref" : "#/components/schemas/Transaction"
            },
            "minItems" : 1
          },
          "attachments" : {
            "type" : "array",
            "description" : "List of attachments added to this receipt. Use POST and DELETE /attachments to add and delete attachments.",
            "items" : {
              "$ref" : "#/components/schemas/Attachment"
            },
            "readOnly" : true
          }
        },
        "required" : [ "name", "receiptDate", "transactions", "type", "vatStatus", "vatType" ]
      },
      "LedgerReceiptBasicInfo" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier for the ledger receipt."
          },
          "type" : {
            "type" : "string",
            "description" : "Ledger receipt type.",
            "enum" : [ "JOURNAL", "PURCHASE_INVOICE", "SALES_INVOICE", "PERIODIC_TAX_RETURN", "TRAVEL_INVOICE", "BILL_OF_CHARGES", "VAT_FORM", "SALARY", "EMPLOYER_CONTRIBUTION", "PURCHASE_ORDER", "SALES_ORDER", "BANK_STATEMENT_AS_RECEIPT", "RECEIPT_FOR_OPENING_ACCOUNTS", "REFERENCE_PAYMENT", "TRACKING_PERIOD_OPENING_RECEIPT", "VAT_SUMMARY" ]
          },
          "status" : {
            "type" : "string",
            "description" : "Ledger receipt status.",
            "enum" : [ "EMPTY", "UNFINISHED", "NOT_SENT", "SENT", "RECEIVED", "PAID", "PAYMENT_DENIED", "VERIFIED", "APPROVED", "INVALIDATED", "PAYMENT_QUEUED", "PARTLY_PAID", "PAYMENT_SENT_TO_BANK", "MARKED_PAID", "STARTED", "INVOICED", "OVERRIDDEN", "DELETED", "UNSAVED", "PAYMENT_TRANSACTION_REMOVED" ]
          },
          "name" : {
            "type" : "string",
            "description" : "Ledger receipt name."
          },
          "receiptDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Ledger receipt date."
          },
          "receiptNumber" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of the ledger receipt.",
            "readOnly" : true
          },
          "invoiceNumber" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of the linked invoice. Automatically generated by Procountor.",
            "readOnly" : true
          },
          "serialNumber" : {
            "$ref" : "#/components/schemas/SerialNumber",
            "description" : "Ledger receipt serial number. This field is optional and can only appear for Swedish and Danish environments.",
            "readOnly" : true
          },
          "created" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Creation timestamp of the ledger receipt. Automatically generated by Procountor.",
            "examples" : [ "2017-09-27T12:12:42" ]
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Ledger receipt version timestamp. Automatically generated by Procountor and updated every time the ledger receipt is modified.",
            "examples" : [ "2017-09-27T12:12:42" ]
          }
        }
      },
      "LedgerReceiptSearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "Search results.",
            "items" : {
              "$ref" : "#/components/schemas/LedgerReceiptBasicInfo"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/SearchResultMetaData",
            "description" : "Search result metadata."
          }
        }
      },
      "ManagementRights" : {
        "type" : "object",
        "properties" : {
          "basicCompanyInfo" : {
            "type" : "string",
            "description" : "Access level to basic company info functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "basicAccountingInfo" : {
            "type" : "string",
            "description" : "Access level to basic accounting info functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "chartOfAccountsAndDefaultReports" : {
            "type" : "string",
            "description" : "Access level to chart of accounts and default reports functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "usersAndUserRights" : {
            "type" : "string",
            "description" : "Access level to users and user rights functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "companyUserManagement" : {
            "type" : "string",
            "description" : "Access level to company user management functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "setUpACompany" : {
            "type" : "string",
            "description" : "Access level to set up a company functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "importData" : {
            "type" : "string",
            "description" : "Access level to import data functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "notifications" : {
            "type" : "string",
            "description" : "Access level to notifications functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "incomesRegisterCertificate" : {
            "type" : "string",
            "description" : "Access level to incomes register certificate functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "groupLetter" : {
            "type" : "string",
            "description" : "Access level to group letter functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "auditLog" : {
            "type" : "string",
            "description" : "Access level to audit log functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          }
        }
      },
      "MarkInvoiceAsPaid" : {
        "type" : "object",
        "properties" : {
          "paymentDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Payment date. Cannot be in closed financial period"
          },
          "amount" : {
            "type" : "number",
            "description" : "Amount in the given currency"
          },
          "currency" : {
            "type" : "string",
            "description" : "Currency in ISO 4217 format. It should always be the same as in the invoice",
            "enum" : [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "ATS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BEF", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNH", "CNT", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CYP", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GRD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "ITL", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LUF", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MTL", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NIS", "NLG", "NOK", "NPR", "NTD", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PRB", "PTE", "PYG", "QAR", "RMB", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SLS", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWB", "ZWL" ],
            "examples" : [ "USD" ]
          },
          "description" : {
            "type" : "string",
            "description" : "Payment description. Used only in sales invoices.",
            "maxLength" : 140,
            "minLength" : 0
          },
          "paymentMethodType" : {
            "type" : "string",
            "description" : "Payment method type. Used only in sales invoices.",
            "enum" : [ "ADJUSTMENT", "BANK_STATEMENT", "CASH", "CHARGE_CARD", "CORRECTION", "CREDIT_LOSS", "CREDIT_NOTE", "EXTERNAL_BANK_TRANSFER", "SET_OFF" ]
          }
        },
        "required" : [ "amount", "currency", "paymentDate" ]
      },
      "MfaInfoMessage" : {
        "type" : "object",
        "properties" : {
          "message" : {
            "type" : "string",
            "description" : "Message with detail information about a result of action."
          }
        }
      },
      "MfaTransactionResult" : {
        "type" : "object",
        "description" : "These are possible results for transaction requests made with multi-factor authentication (MFA). Only one of the fields will be non-null, depending on the type of transaction that was performed. For example, if the transaction request was made by POST /payments/directbanktransfers, the directPayments field will contain the result, while the other fields will be null. This class encapsulates the different possible outcomes of MFA-protected transactions into a single response model.",
        "properties" : {
          "directBankTransfers" : {
            "$ref" : "#/components/schemas/PaymentSummaries",
            "description" : "Result of creating direct bank transfers action performed successfully. Returned if transaction request was made by <b> POST /payments/directbanktransfers</b>"
          },
          "invoicePayments" : {
            "$ref" : "#/components/schemas/InvoicePaymentSummaries",
            "description" : "Result of paying invoices action performed successfully. Returned if transaction request was made by <b>POST /payments</b>"
          },
          "directSalaryPayment" : {
            "$ref" : "#/components/schemas/DirectSalaryPaymentResult",
            "description" : "Result for creating direct salary payment action performed successfully. Returned if transaction request was made by <b>POST /payments/directsalarypayments</b>"
          },
          "info" : {
            "$ref" : "#/components/schemas/MfaInfoMessage",
            "description" : "General response for action performed successfully (canceling, deleting, updating). Returned if transaction request was made by:\n<br><b>- DELETE /payments/{paymentId}</b>\n<br><b>- DELETE /invoices/{invoiceId}/paymentevents/{paymentEventId}</b>\n<br><b>- PUT /payments/{paymentId}/cancel</b>\n<br><b>- PUT /payments/directsalarypayments/{paymentListId}/cancel</b>\n<br><b>- PUT /users</b>\n"
          }
        }
      },
      "NewSalaryList" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Salary list name.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "holidayYear" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Holiday credit year."
          },
          "paymentPeriodStart" : {
            "type" : "string",
            "format" : "date",
            "description" : "Payment period start."
          },
          "paymentPeriodEnd" : {
            "type" : "string",
            "format" : "date",
            "description" : "Payment period end."
          },
          "earningsPeriodStart" : {
            "type" : "string",
            "format" : "date",
            "description" : "Earnings period start."
          },
          "earningsPeriodEnd" : {
            "type" : "string",
            "format" : "date",
            "description" : "Earnings period end."
          },
          "accountingDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Accounting date."
          },
          "dueDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Due date."
          },
          "payday" : {
            "type" : "string",
            "format" : "date",
            "description" : "Payday."
          },
          "employeesDataForSalarySlip" : {
            "type" : "array",
            "description" : "Employees data needed to create salary slip for employee.",
            "items" : {
              "$ref" : "#/components/schemas/EmployeeDataForSalarySlip"
            },
            "minItems" : 1
          }
        },
        "required" : [ "accountingDate", "dueDate", "employeesDataForSalarySlip", "name", "payday", "paymentPeriodEnd", "paymentPeriodStart" ]
      },
      "PaymentBasicInfo" : {
        "type" : "object",
        "properties" : {
          "paymentId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Id of the payment"
          },
          "customId" : {
            "type" : "string",
            "description" : "Custom Id of the payment"
          }
        }
      },
      "PaymentErrorMessage" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the error message."
          },
          "createdDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Date when the error message was created."
          },
          "type" : {
            "type" : "string",
            "description" : "Type of error.",
            "enum" : [ "ANY_ERROR", "PAYMENT_ERROR", "FINVOICE_SEND_ERROR", "FINVOICE_RECEIVE_ERROR", "TYEL_ERROR", "NETS_COLLECTION_ERROR" ]
          },
          "status" : {
            "type" : "string",
            "description" : "Status of error handling.",
            "enum" : [ "ALL", "HANDLED", "UNHANDLED" ]
          },
          "errorCode" : {
            "type" : "string",
            "description" : "Error code of error."
          },
          "referenceId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Identifier of payment object related to the error message. The related object can be an invoice or a direct bank transfer."
          },
          "referenceType" : {
            "type" : "string",
            "description" : "Type of payment object related to the error message. NOTE: BANK_TRANSFER type was replaced by DIRECT_BANK_TRANSFER.",
            "enum" : [ "DIRECT_BANK_TRANSFER", "DIRECT_SALARY_PAYMENT", "DIRECT_SALARY_PAYMENT_LIST", "INVOICE", "NETS_COLLECTION", "PAYMENTS_ANNOUNCEMENT" ]
          },
          "invoiceType" : {
            "type" : "string",
            "description" : "Detailed type of receipt related to the error message, sent only for invoices.",
            "enum" : [ "VAT_FORM", "PAYMENT_CORRECTION", "TRACKING_PERIOD_OPENING_RECEIPT", "PERIODIC_TAX_RETURN", "UNKNOWN_RECEIPT_TYPE_F", "UNKNOWN_RECEIPT_TYPE_G", "ACCRUAL", "BILL_OF_CHARGES", "SALES_INVOICE", "JOURNAL", "JOURNAL_MOVING_STRAIGHT_TO_ACCOUNTING_PAGE", "JOURNAL_BYPASSING_INVOICE_PAGE", "PURCHASE_INVOICE", "RECEIPT_FOR_OPENING_ACCOUNTS", "SALARY", "REFERENCE_PAYMENT", "EMPLOYER_CONTRIBUTION", "TRAVEL_INVOICE", "TRAVEL_PLAN", "BANK_STATEMENT_AS_RECEIPT", "PURCHASE_ORDER", "VAT_SUMMARY", "SALES_ORDER", "OFFER" ]
          },
          "errorHandlingInfo" : {
            "$ref" : "#/components/schemas/ErrorHandlingInfo",
            "description" : "Information about error handling. Can be empty if message is not handled yet."
          }
        }
      },
      "PaymentErrorMessageSearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "Search results.",
            "items" : {
              "$ref" : "#/components/schemas/PaymentErrorMessage"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/SearchResultMetaData",
            "description" : "Search result metadata."
          }
        }
      },
      "PaymentEvent" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the payment event"
          },
          "invoiceId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the invoice."
          },
          "type" : {
            "type" : "string",
            "description" : "Type of payment.",
            "enum" : [ "ADJUSTMENT", "BANKSTATEMENT", "BANKSTATEMENT_TO_INVOICE", "BANKSTATEMENT_TO_JOURNAL", "BANKTRANSFERELSEWHERE", "CASH", "CASHDISCOUNT", "CHARGECARD", "COMPENSATIONINVOICE", "CORRECTION", "CREDITLOSS", "ELSEWHERE", "INVOICE_TO_INVOICE", "INVOICE_TO_JOURNAL", "JOURNAL_TO_INVOICE", "JOURNAL_TO_JOURNAL", "NETS_DK_INVOICE", "OTHERPAYMENTMETHOD", "REFERENCEPAYMENT", "REFERENCEPAYMENT_TO_INVOICE", "REFERENCEPAYMENT_TO_JOURNAL", "SETOFF", "TRANSACTION_FOCUSED" ]
          },
          "paymentDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Date when the payment transaction has to be performed."
          },
          "status" : {
            "type" : "string",
            "description" : "Status of payment.",
            "enum" : [ "EMPTY", "UNFINISHED", "NOT_SENT", "SENT", "RECEIVED", "PAID", "PAYMENT_DENIED", "VERIFIED", "APPROVED", "INVALIDATED", "PAYMENT_QUEUED", "PARTLY_PAID", "PAYMENT_SENT_TO_BANK", "MARKED_PAID", "STARTED", "INVOICED", "OVERRIDDEN", "DELETED", "UNSAVED", "PAYMENT_TRANSACTION_REMOVED" ]
          },
          "amount" : {
            "type" : "number",
            "description" : "Payment amount in accounting currency."
          },
          "currency" : {
            "type" : "string",
            "description" : "Currency of the payment in accounting currency in ISO 4217 format.",
            "enum" : [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "ATS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BEF", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNH", "CNT", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CYP", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GRD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "ITL", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LUF", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MTL", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NIS", "NLG", "NOK", "NPR", "NTD", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PRB", "PTE", "PYG", "QAR", "RMB", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SLS", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWB", "ZWL" ],
            "examples" : [ "EUR" ]
          },
          "description" : {
            "type" : "string",
            "description" : "Payment description. Used only in sales invoices."
          },
          "paidAmount" : {
            "type" : "number",
            "description" : "Payment amount in paid currency."
          },
          "paidCurrency" : {
            "type" : "string",
            "description" : "Currency of the payment in paid currency in ISO 4217 format.",
            "enum" : [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "ATS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BEF", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNH", "CNT", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CYP", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GRD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "ITL", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LUF", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MTL", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NIS", "NLG", "NOK", "NPR", "NTD", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PRB", "PTE", "PYG", "QAR", "RMB", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SLS", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWB", "ZWL" ],
            "examples" : [ "SEK" ]
          }
        }
      },
      "PaymentEventSearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "Search results.",
            "items" : {
              "$ref" : "#/components/schemas/PaymentEvent"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/SearchResultMetaData",
            "description" : "Search result metadata."
          }
        }
      },
      "PaymentInfo" : {
        "type" : "object",
        "properties" : {
          "paymentMethod" : {
            "type" : "string",
            "description" : "Payment method. Methods other than BANK_TRANSFER, CASH, CLEARING may require fields not supported by the API. The DIRECT_DEBIT method is not supported by POST /invoices and PUT /invoices endpoints. The DKLMPKRE method is deprecated and read only, DOMESTIC_PAYMENT_CREDITOR should be used instead.",
            "enum" : [ "BANK_TRANSFER", "DIRECT_PAYMENT", "CLEARING", "CREDIT_CARD_CHARGE", "FOREIGN_PAYMENT", "OTHER", "CASH", "DOMESTIC_PAYMENT_PLUSGIRO", "DOMESTIC_PAYMENT_BANKGIRO", "DOMESTIC_PAYMENT_CREDITOR", "DKLMPKRE", "NETS" ]
          },
          "currency" : {
            "type" : "string",
            "description" : "Currency of the payment in ISO 4217 format.",
            "enum" : [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "ATS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BEF", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNH", "CNT", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CYP", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GRD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "ITL", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LUF", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MTL", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NIS", "NLG", "NOK", "NPR", "NTD", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PRB", "PTE", "PYG", "QAR", "RMB", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SLS", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWB", "ZWL" ],
            "examples" : [ "EUR" ]
          },
          "bankAccount" : {
            "$ref" : "#/components/schemas/BankAccount",
            "description" : "Payment bank account. Not required if payment method is cash. Deprecated in counterParty section for invoices endpoints - used only with DIRECT_DEBIT payment method, which is deprecated as well."
          },
          "dueDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Payment due date. The payment term can be 0-999 days."
          },
          "newDueDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Payment new due date.",
            "readOnly" : true
          },
          "currencyRate" : {
            "type" : "number",
            "description" : "Currency exchange rate. Calculated as the amount of one unit of domestic currency in foreign currency. Only foreign currency payments should have a value other than 1.",
            "examples" : [ "1" ],
            "maximum" : 1000000,
            "minimum" : 0
          },
          "paymentTermPercentage" : {
            "type" : "number",
            "description" : "Discount percentage set in term of payment. Determines the discount if the invoice is paid before due date."
          },
          "cashDiscount" : {
            "$ref" : "#/components/schemas/CashDiscount",
            "description" : "Only SALES_INVOICE, SALES_ORDER, PURCHASE_INVOICE and PURCHASE_ORDER. Cash discount set on the invoice."
          },
          "bankReferenceCode" : {
            "type" : "string",
            "description" : "Payment reference code. If specified, must be a valid reference code where the last digit is a check digit. If the field is given an empty string value, a reference code is automatically generated by Procountor. If the field is not provided at all, no reference code will be assigned to the invoice.",
            "examples" : [ "26013" ]
          },
          "bankReferenceCodeType" : {
            "type" : "string",
            "description" : "Reference code generation type. If type not allowed for a user country will be given, then 400 is returned",
            "enum" : [ "RF", "FI", "OCR", "KID", "GIK01", "GIK04", "GIK15", "FIK71", "FIK73", "FIK75" ]
          },
          "clearingCode" : {
            "type" : "string",
            "description" : "Receiver bank's clearing code for foreign payments.",
            "maxLength" : 50,
            "minLength" : 0
          }
        },
        "required" : [ "currency", "currencyRate", "dueDate", "paymentMethod" ]
      },
      "PaymentIntermediaryBankNameAndAddress" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Name (\"first line\") in the address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "specifier" : {
            "type" : "string",
            "description" : "Specifier, such as c/o address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "street" : {
            "type" : "string",
            "description" : "Street.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "zip" : {
            "type" : "string",
            "description" : "Zip code.",
            "maxLength" : 20,
            "minLength" : 0
          },
          "city" : {
            "type" : "string",
            "description" : "City.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "country" : {
            "type" : "string",
            "description" : "Country.",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_INDIAN_OCEAN_TERRITORY", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORTHERN_MARIANA_ISLANDS", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_MARTIN_FRENCH_PART", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ],
            "examples" : [ "SWEDEN" ]
          },
          "subdivision" : {
            "type" : "string",
            "description" : "Subdivision of the city",
            "maxLength" : 35,
            "minLength" : 0
          }
        }
      },
      "PaymentReceiverBankNameAndAddress" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Name (\"first line\") in the address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "specifier" : {
            "type" : "string",
            "description" : "Specifier, such as c/o address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "street" : {
            "type" : "string",
            "description" : "Street.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "zip" : {
            "type" : "string",
            "description" : "Zip code.",
            "maxLength" : 20,
            "minLength" : 0
          },
          "city" : {
            "type" : "string",
            "description" : "City.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "country" : {
            "type" : "string",
            "description" : "Country.",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_INDIAN_OCEAN_TERRITORY", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORTHERN_MARIANA_ISLANDS", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_MARTIN_FRENCH_PART", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ],
            "examples" : [ "SWEDEN" ]
          },
          "subdivision" : {
            "type" : "string",
            "description" : "Subdivision of the city",
            "maxLength" : 35,
            "minLength" : 0
          }
        }
      },
      "PaymentRecipientNameAndAddress" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Name (\"first line\") in the address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "specifier" : {
            "type" : "string",
            "description" : "Specifier, such as c/o address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "street" : {
            "type" : "string",
            "description" : "Street.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "zip" : {
            "type" : "string",
            "description" : "Zip code.",
            "maxLength" : 20,
            "minLength" : 0
          },
          "city" : {
            "type" : "string",
            "description" : "City.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "country" : {
            "type" : "string",
            "description" : "Country.",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_INDIAN_OCEAN_TERRITORY", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORTHERN_MARIANA_ISLANDS", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_MARTIN_FRENCH_PART", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ],
            "examples" : [ "SWEDEN" ]
          },
          "subdivision" : {
            "type" : "string",
            "description" : "Subdivision of the city",
            "maxLength" : 35,
            "minLength" : 0
          }
        },
        "required" : [ "name" ]
      },
      "PaymentRights" : {
        "type" : "object",
        "properties" : {
          "payment" : {
            "type" : "string",
            "description" : "Access level to payment functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "salaryPayments" : {
            "type" : "string",
            "description" : "Access level to salary payments functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "markAsPaid" : {
            "type" : "string",
            "description" : "Access level to mark as paid functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "markSalaryAsPaid" : {
            "type" : "string",
            "description" : "Access level to mark salary as paid functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "directBankTransfer" : {
            "type" : "string",
            "description" : "Access level to direct bank transfer functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "bankStatementAndReferencePayment" : {
            "type" : "string",
            "description" : "Access level to bank statement and reference payment functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "paymentAllocation" : {
            "type" : "string",
            "description" : "Access level to payment allocation functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          }
        }
      },
      "PaymentRowInfo" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique payment identifier."
          },
          "invoiceId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique invoice identifier."
          },
          "paymentDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Date specifying when the payment transaction has to be performed. Payment date should be grater than current date."
          },
          "amount" : {
            "type" : "number",
            "description" : "The amount of the payment in the given currency. Currency is defined within the invoice."
          },
          "receiverName" : {
            "type" : "string",
            "description" : "Recipient name."
          },
          "currency" : {
            "type" : "string",
            "description" : "Currency of payment.",
            "enum" : [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "ATS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BEF", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNH", "CNT", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CYP", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GRD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "ITL", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LUF", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MTL", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NIS", "NLG", "NOK", "NPR", "NTD", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PRB", "PTE", "PYG", "QAR", "RMB", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SLS", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWB", "ZWL" ]
          },
          "payerAccount" : {
            "type" : "string",
            "description" : "Payer bank account."
          },
          "payerBic" : {
            "type" : "string",
            "description" : "Payer BIC (Bank Identifier Code) code."
          },
          "message" : {
            "type" : "string",
            "description" : "Message of the payment."
          },
          "receiverAccount" : {
            "type" : "string",
            "description" : "Receiver bank account."
          },
          "receiverBic" : {
            "type" : "string",
            "description" : "Received BIC (Bank Identifier Code) code."
          },
          "createdBy" : {
            "type" : "string",
            "description" : "Name of the user who created payment."
          },
          "status" : {
            "type" : "string",
            "description" : "Payment status.",
            "enum" : [ "APPROVED", "DELETED", "EMPTY", "INVALIDATED", "INVOICED", "MARKED_PAID", "NOT_SENT", "OVERRIDDEN", "PAID", "PARTLY_PAID", "PAYMENT_DENIED", "PAYMENT_QUEUED", "PAYMENT_SENT_TO_BANK", "PAYMENT_TRANSACTION_REMOVED", "RECEIVED", "SENT", "STARTED", "UNFINISHED", "UNSAVED", "VERIFIED" ],
            "examples" : [ "SENT" ]
          }
        }
      },
      "PaymentSearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "Search results.",
            "items" : {
              "$ref" : "#/components/schemas/BasicPaymentTransactionData"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/SearchResultMetaData",
            "description" : "Search result metadata."
          }
        }
      },
      "PaymentSummaries" : {
        "type" : "object",
        "properties" : {
          "transactions" : {
            "type" : "array",
            "description" : "List of identifiers of added payments.",
            "items" : {
              "$ref" : "#/components/schemas/PaymentSummary"
            }
          }
        }
      },
      "PaymentSummary" : {
        "type" : "object",
        "properties" : {
          "paymentId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Identifier of created payment, provided by the application."
          },
          "customId" : {
            "type" : "string",
            "description" : "Optional identifier of requested payment object to be created. For example order number for a created direct bank transfer. Provided externally."
          }
        }
      },
      "PaymentsConfirmationResponseModels" : {
        "type" : "object",
        "description" : "These are possible response models",
        "properties" : {
          "PaymentSummaries" : {
            "$ref" : "#/components/schemas/PaymentSummaries",
            "description" : "Response for creating direct bank transfers action (POST /payments/directbanktransfers) performed successfully"
          },
          "InfoMessage" : {
            "$ref" : "#/components/schemas/InfoMessage",
            "description" : "Response for deleting (DELETE /payments/{paymentId} or cancelling (PUT /payments/{paymentId}/cancel) payment action performed successfully"
          },
          "InvoicePaymentSummaries" : {
            "$ref" : "#/components/schemas/InvoicePaymentSummaries",
            "description" : "Response for paying invoices action (POST /payments) performed successfully"
          }
        }
      },
      "PensionContract" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of pension contract.",
            "readOnly" : true
          },
          "providerName" : {
            "type" : "string",
            "description" : "Pension provider name."
          },
          "number" : {
            "type" : "string",
            "description" : "Agreement number."
          },
          "active" : {
            "type" : "boolean",
            "description" : "Is contract active."
          },
          "label" : {
            "type" : "string",
            "description" : "Label."
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Version."
          }
        }
      },
      "PensionInsurance" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of employee pension insurance.",
            "readOnly" : true
          },
          "type" : {
            "type" : "string",
            "description" : "Pension insurance type.",
            "enum" : [ "MYEL", "NONE", "TYEL", "YEL" ]
          },
          "pensionContractId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Pension contract ID."
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Version. Not allowed in POST. Required in PUT."
          }
        },
        "required" : [ "type" ]
      },
      "Person" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of a Person in Person register. This id is same as business partner's partnerId for type PERSON.",
            "readOnly" : true
          },
          "firstName" : {
            "type" : "string",
            "description" : "First name.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "lastName" : {
            "type" : "string",
            "description" : "Last name.",
            "maxLength" : 80,
            "minLength" : 1
          },
          "jobTitle" : {
            "type" : "string",
            "description" : "Job title.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "deliveryAddress" : {
            "$ref" : "#/components/schemas/PersonFullAddress",
            "description" : "Address."
          },
          "homeCountryAddress" : {
            "$ref" : "#/components/schemas/PersonFullAddress",
            "description" : "Address."
          },
          "paymentInfo" : {
            "$ref" : "#/components/schemas/PersonPaymentInfo",
            "description" : "Payment details."
          },
          "invoicingInfo" : {
            "$ref" : "#/components/schemas/PersonInvoicingInfo",
            "description" : "Invoicing information."
          },
          "registryInfo" : {
            "$ref" : "#/components/schemas/PersonRegistryInfo",
            "description" : "Register information."
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Version. Not allowed in POST. Required in PUT."
          }
        },
        "required" : [ "invoicingInfo", "lastName", "paymentInfo", "registryInfo" ]
      },
      "PersonAddress" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Name (\"first line\") in the address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "specifier" : {
            "type" : "string",
            "description" : "Specifier, such as c/o address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "street" : {
            "type" : "string",
            "description" : "Street.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "zip" : {
            "type" : "string",
            "description" : "Zip code.",
            "maxLength" : 20,
            "minLength" : 0
          },
          "city" : {
            "type" : "string",
            "description" : "City.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "country" : {
            "type" : "string",
            "description" : "Country.",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_INDIAN_OCEAN_TERRITORY", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORTHERN_MARIANA_ISLANDS", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_MARTIN_FRENCH_PART", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ],
            "examples" : [ "SWEDEN" ]
          },
          "subdivision" : {
            "type" : "string",
            "description" : "Subdivision of the city",
            "maxLength" : 35,
            "minLength" : 0
          }
        }
      },
      "PersonBasicAddress" : {
        "type" : "object",
        "properties" : {
          "street" : {
            "type" : "string",
            "description" : "Street name.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "zip" : {
            "type" : "string",
            "description" : "Zip code.",
            "maxLength" : 20,
            "minLength" : 0
          },
          "city" : {
            "type" : "string",
            "description" : "City name.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "country" : {
            "type" : "string",
            "description" : "Country code.",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ]
          }
        }
      },
      "PersonBasicInfo" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of a Person in Person register. This id is same as business partner's partnerId for type PERSON.",
            "readOnly" : true
          },
          "lastName" : {
            "type" : "string",
            "description" : "Last name of Person."
          },
          "firstName" : {
            "type" : "string",
            "description" : "First name of Person."
          },
          "deliveryAddress" : {
            "$ref" : "#/components/schemas/PersonBasicAddress",
            "description" : "Address of Person."
          },
          "invoicingInfo" : {
            "$ref" : "#/components/schemas/PersonBasicInvoicingInfo",
            "description" : "Invoicing information."
          },
          "registryInfo" : {
            "$ref" : "#/components/schemas/PersonBasicRegistryInfo",
            "description" : "Register information."
          }
        }
      },
      "PersonBasicInvoicingInfo" : {
        "type" : "object",
        "properties" : {
          "personNumber" : {
            "type" : "string",
            "description" : "Person number.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "identifier" : {
            "type" : "string",
            "description" : "Identifier of the person.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "identifierType" : {
            "type" : "string",
            "description" : "Identifier type of the person.",
            "enum" : [ "FI", "HETU", "YHD", "NO", "AT", "BE", "BG", "CY", "HR", "CZ", "DK", "EE", "FR", "DE", "GB", "EL", "HU", "IE", "IT", "LV", "LT", "LU", "MT", "NL", "PL", "PT", "RO", "SK", "SI", "ES", "SE", "XI" ],
            "maxLength" : 20,
            "minLength" : 0
          }
        }
      },
      "PersonBasicRegistryInfo" : {
        "type" : "object",
        "properties" : {
          "active" : {
            "type" : "boolean",
            "description" : "Status of the person"
          }
        },
        "required" : [ "active" ]
      },
      "PersonFullAddress" : {
        "type" : "object",
        "properties" : {
          "street" : {
            "type" : "string",
            "description" : "Street name.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "zip" : {
            "type" : "string",
            "description" : "Zip code.",
            "maxLength" : 20,
            "minLength" : 0
          },
          "city" : {
            "type" : "string",
            "description" : "City name.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "country" : {
            "type" : "string",
            "description" : "Country code.",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ]
          },
          "specifier" : {
            "type" : "string",
            "description" : "Specifier. Not allowed for Swedish environment.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "subdivision" : {
            "type" : "string",
            "description" : "Subdivision.",
            "maxLength" : 35,
            "minLength" : 0
          },
          "postOfficeBox" : {
            "type" : "string",
            "description" : "Post office box. Not allowed for Swedish environment.",
            "maxLength" : 80,
            "minLength" : 0
          }
        }
      },
      "PersonInvoicingInfo" : {
        "type" : "object",
        "properties" : {
          "personNumber" : {
            "type" : "string",
            "description" : "Person number.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "identifier" : {
            "type" : "string",
            "description" : "Identifier of the person.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "identifierType" : {
            "type" : "string",
            "description" : "Identifier type of the person.",
            "enum" : [ "FI", "HETU", "YHD", "NO", "AT", "BE", "BG", "CY", "HR", "CZ", "DK", "EE", "FR", "DE", "GB", "EL", "HU", "IE", "IT", "LV", "LT", "LU", "MT", "NL", "PL", "PT", "RO", "SK", "SI", "ES", "SE", "XI" ],
            "maxLength" : 20,
            "minLength" : 0
          },
          "dateOfBirth" : {
            "type" : "string",
            "format" : "date",
            "description" : "Date of birth. Not allowed for Swedish environment.",
            "examples" : [ "1990-01-01" ]
          },
          "language" : {
            "type" : "string",
            "description" : "Language.",
            "enum" : [ "ENGLISH", "FINNISH", "SWEDISH" ]
          },
          "gender" : {
            "type" : "string",
            "description" : "Gender.",
            "enum" : [ "FEMALE", "MALE", "NOT_APPLICABLE" ]
          },
          "homeCountryPersonId" : {
            "type" : "string",
            "description" : "Identifier of person's home country.",
            "maxLength" : 45,
            "minLength" : 0
          }
        },
        "required" : [ "gender", "language" ]
      },
      "PersonPaymentInfo" : {
        "type" : "object",
        "properties" : {
          "paymentMethod" : {
            "type" : "string",
            "description" : "Type of payment method.",
            "enum" : [ "BANK_TRANSFER", "DIRECT_DEBIT", "DIRECT_PAYMENT", "CLEARING", "CREDIT_CARD_CHARGE", "FOREIGN_PAYMENT", "OTHER", "CASH", "DOMESTIC_PAYMENT_PLUSGIRO", "DOMESTIC_PAYMENT_BANKGIRO", "DOMESTIC_PAYMENT_CREDITOR", "DKLMPKRE", "NETS" ]
          },
          "clearingCode" : {
            "type" : "string",
            "description" : "Clearing code.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "accountNumber" : {
            "type" : "string",
            "description" : "Account number.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "bic" : {
            "type" : "string",
            "description" : "Bank Identifier Code.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "paymentTermDays" : {
            "type" : "string",
            "description" : "Payment term in days.",
            "maxLength" : 3,
            "minLength" : 1
          },
          "paymentTermPercentage" : {
            "type" : "number",
            "description" : "Payment term percentage.",
            "maximum" : 100,
            "minimum" : 0
          },
          "penalInterestRate" : {
            "type" : "number",
            "description" : "Penal interest rate.",
            "maximum" : 1000,
            "minimum" : 0
          },
          "discountPercentage" : {
            "type" : "number",
            "description" : "Discount percentage.",
            "maximum" : 100,
            "minimum" : 0
          }
        },
        "required" : [ "paymentMethod", "paymentTermDays", "penalInterestRate" ]
      },
      "PersonRegistryInfo" : {
        "type" : "object",
        "properties" : {
          "active" : {
            "type" : "boolean",
            "description" : "Status of the person"
          },
          "mobilePhone" : {
            "type" : "string",
            "description" : "Mobile phone.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "fax" : {
            "type" : "string",
            "description" : "Fax number.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "phone" : {
            "type" : "string",
            "description" : "Phone.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "email" : {
            "type" : "string",
            "description" : "Email address.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "contactPerson" : {
            "type" : "string",
            "description" : "Contact person.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "defaultReference" : {
            "type" : "string",
            "description" : "Default reference.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "section" : {
            "type" : "string",
            "description" : "Section.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "personGroupsIds" : {
            "type" : "array",
            "description" : "Ids of person groups that the person belongs to. Use /businesspartners/groups/{id} endpoint to find group details.",
            "items" : {
              "type" : "integer",
              "format" : "int32"
            },
            "uniqueItems" : true
          },
          "reportGroupId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Report group id. Use /businesspartners/groups/{id} endpoint to find group details."
          },
          "homeMunicipality" : {
            "type" : "string",
            "description" : "Home municipality.",
            "maxLength" : 40,
            "minLength" : 0
          }
        },
        "required" : [ "active" ]
      },
      "PersonSearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "Search results.",
            "items" : {
              "$ref" : "#/components/schemas/PersonBasicInfo"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/SearchResultMetaData",
            "description" : "Search result metadata."
          }
        }
      },
      "PersonalDetails" : {
        "type" : "object",
        "properties" : {
          "partnerId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Partner register ID."
          },
          "firstName" : {
            "type" : "string",
            "description" : "First name of the person."
          },
          "lastName" : {
            "type" : "string",
            "description" : "Last name of the person."
          },
          "language" : {
            "type" : "string",
            "description" : "Language of the person.",
            "enum" : [ "DANISH", "ENGLISH", "ESTONIAN", "FINNISH", "NORWEGIAN", "SWEDISH" ]
          },
          "address" : {
            "$ref" : "#/components/schemas/PersonAddress",
            "description" : "Address of the person. Value may be empty."
          },
          "paymentInfo" : {
            "$ref" : "#/components/schemas/BusinessPartnerPaymentDetails",
            "description" : "Payment information for the person."
          },
          "invoicingInfo" : {
            "$ref" : "#/components/schemas/BasicInvoicingInfo",
            "description" : "Basic invoicing information."
          }
        }
      },
      "Product" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of the product. Generated by Procountor.",
            "readOnly" : true
          },
          "type" : {
            "type" : "string",
            "description" : "Product type: to which kind of invoices the product can be assigned.",
            "enum" : [ "PURCHASE", "SALES", "TRAVEL" ],
            "examples" : [ "TRAVEL" ]
          },
          "name" : {
            "type" : "string",
            "description" : "Product name.",
            "maxLength" : 100,
            "minLength" : 0
          },
          "code" : {
            "type" : "string",
            "description" : "Custom code assigned by the owner of the product.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "unit" : {
            "type" : "string",
            "description" : "Product unit.",
            "enum" : [ "AMPERE", "AMPERE_HOUR", "AMPERE_MINUTE", "BAG", "BAR", "BOTTLE", "BOX", "CAN", "CENTILITRE", "CM", "CUBIC_METER", "CUP", "DAY", "DECILITRE", "DOZEN", "DOZEN_PACK", "EIGHT_PACK", "EXAJOULE", "FIVE_PACK", "FOOT", "FOUR_PACK", "FULL_DAY", "GALLON_UK", "GALLON_US", "GIGABIT", "GIGABYTE", "GIGAJOULE", "GIGAWATT", "GIGAWATT_HOUR", "GRAM", "GRAM_PER_CUBIC_METRE", "GRAM_PER_SQUARE_METRE", "HECTARE", "HOUR", "HUNDRED", "INCH", "JAR", "JOULE", "JOULE_PER_SECOND", "KILOAMPERE_HOUR", "KILOBIT", "KILOBYTE", "KILOGRAM", "KILOGRAM_PER_CUBIC_METRE", "KILOGRAM_PER_SQUARE_METRE", "KILOJOULE", "KILOMETER", "KILOPASCAL", "KILOVOLT", "KILOWATT", "KILOWATT_HOUR", "LINEAR_METER", "LITER", "LOT", "MEGABIT", "MEGABYTE", "MEGAWATT_HOUR", "METER", "MILE", "MILLIAMPERE_HOUR", "MILLIGRAM", "MILLIGRAM_PER_CUBIC_METRE", "MILLIJOULE", "MILLILITRE", "MILLIMETER", "MILLIVOLT", "MILLIWATT", "MINUTE", "MONTH", "NINE_PACK", "NO_UNIT", "NUMBER_OF_WORDS", "OUNCE", "PAGE", "PAIR", "PALLET", "PARCEL", "PASCAL", "PERSON", "PETAJOULE", "PIECE", "PINT_UK", "PINT_US", "PLATE", "POUND", "ROLL", "SACK", "SALE_UNIT", "SECOND", "SERIES", "SET", "SEVEN_PACK", "SIX_PACK", "SQUARE_CENTIMETRE", "SQUARE_METER", "STONE_UK", "TEN_PACK", "TERABIT", "TERAJOULE", "TERAWATT", "TERAWATT_HOUR", "THREE_PACK", "TON", "TUBE", "TWO_PACK", "WATT", "WATT_HOUR", "WEEK", "WRAP", "YARD", "YEAR" ]
          },
          "discount" : {
            "type" : "number",
            "description" : "Product discount percentage.",
            "maximum" : 100,
            "minimum" : 0
          },
          "price" : {
            "type" : "number",
            "description" : "Product price."
          },
          "vat" : {
            "type" : "number",
            "description" : "Product VAT percentage."
          },
          "active" : {
            "type" : "boolean",
            "description" : "Product status."
          },
          "defaultAccount" : {
            "type" : "string",
            "description" : "Default ledger account for the product."
          },
          "vatStatus" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Product VAT status. Allowed VAT statuses are available under GET /vats/default"
          },
          "currency" : {
            "type" : "string",
            "description" : "Currency for the product in ISO 4217 format.",
            "enum" : [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "ATS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BEF", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNH", "CNT", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CYP", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GRD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "ITL", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LUF", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MTL", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NIS", "NLG", "NOK", "NPR", "NTD", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PRB", "PTE", "PYG", "QAR", "RMB", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SLS", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWB", "ZWL" ],
            "examples" : [ "EUR" ]
          },
          "productLocalizations" : {
            "type" : "array",
            "description" : "Product name localizations.",
            "items" : {
              "$ref" : "#/components/schemas/ProductLocalization"
            }
          },
          "productGroupId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Product group ID."
          },
          "startDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Get start date for the product.  Used by TRAVEL type only."
          },
          "endDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Get end date for the product. Used by TRAVEL type only."
          },
          "bookkeepingAccount" : {
            "type" : "string",
            "description" : "Get bookkeeping account code for the product. Used by TRAVEL type only."
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Product version timestamp. Automatically generated by Procountor and updated every time the product is updated.",
            "examples" : [ "2019-09-25T13:15:58" ]
          }
        },
        "required" : [ "active", "currency", "discount", "name", "price", "type" ]
      },
      "ProductBasicInfo" : {
        "type" : "object",
        "properties" : {
          "productId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Identifier of the product."
          },
          "name" : {
            "type" : "string",
            "description" : "Name of the product."
          },
          "code" : {
            "type" : "string",
            "description" : "Code of the product."
          },
          "defaultAccount" : {
            "type" : "string",
            "description" : "Default account for the product."
          },
          "price" : {
            "type" : "number",
            "description" : "Price of the product."
          },
          "currency" : {
            "type" : "string",
            "description" : "Currency of the price."
          },
          "unit" : {
            "type" : "string",
            "description" : "Unit type of product.",
            "enum" : [ "AMPERE", "AMPERE_HOUR", "AMPERE_MINUTE", "BAG", "BAR", "BOTTLE", "BOX", "CAN", "CENTILITRE", "CM", "CUBIC_METER", "CUP", "DAY", "DECILITRE", "DOZEN", "DOZEN_PACK", "EIGHT_PACK", "EXAJOULE", "FIVE_PACK", "FOOT", "FOUR_PACK", "FULL_DAY", "GALLON_UK", "GALLON_US", "GIGABIT", "GIGABYTE", "GIGAJOULE", "GIGAWATT", "GIGAWATT_HOUR", "GRAM", "GRAM_PER_CUBIC_METRE", "GRAM_PER_SQUARE_METRE", "HECTARE", "HOUR", "HUNDRED", "INCH", "JAR", "JOULE", "JOULE_PER_SECOND", "KILOAMPERE_HOUR", "KILOBIT", "KILOBYTE", "KILOGRAM", "KILOGRAM_PER_CUBIC_METRE", "KILOGRAM_PER_SQUARE_METRE", "KILOJOULE", "KILOMETER", "KILOPASCAL", "KILOVOLT", "KILOWATT", "KILOWATT_HOUR", "LINEAR_METER", "LITER", "LOT", "MEGABIT", "MEGABYTE", "MEGAWATT_HOUR", "METER", "MILE", "MILLIAMPERE_HOUR", "MILLIGRAM", "MILLIGRAM_PER_CUBIC_METRE", "MILLIJOULE", "MILLILITRE", "MILLIMETER", "MILLIVOLT", "MILLIWATT", "MINUTE", "MONTH", "NINE_PACK", "NO_UNIT", "NUMBER_OF_WORDS", "OUNCE", "PAGE", "PAIR", "PALLET", "PARCEL", "PASCAL", "PERSON", "PETAJOULE", "PIECE", "PINT_UK", "PINT_US", "PLATE", "POUND", "ROLL", "SACK", "SALE_UNIT", "SECOND", "SERIES", "SET", "SEVEN_PACK", "SIX_PACK", "SQUARE_CENTIMETRE", "SQUARE_METER", "STONE_UK", "TEN_PACK", "TERABIT", "TERAJOULE", "TERAWATT", "TERAWATT_HOUR", "THREE_PACK", "TON", "TUBE", "TWO_PACK", "WATT", "WATT_HOUR", "WEEK", "WRAP", "YARD", "YEAR" ]
          }
        }
      },
      "ProductGroup" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Product group id."
          },
          "name" : {
            "type" : "string",
            "description" : "Product group name.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "type" : {
            "type" : "string",
            "description" : "Product type.",
            "enum" : [ "PURCHASE", "SALES", "TRAVEL" ],
            "examples" : [ "TRAVEL" ]
          }
        },
        "required" : [ "name" ]
      },
      "ProductGroups" : {
        "type" : "object",
        "properties" : {
          "productGroups" : {
            "type" : "array",
            "description" : "List of product groups",
            "items" : {
              "$ref" : "#/components/schemas/ProductGroup"
            }
          }
        }
      },
      "ProductLocalization" : {
        "type" : "object",
        "properties" : {
          "language" : {
            "type" : "string",
            "description" : "Product language",
            "enum" : [ "DANISH", "ENGLISH", "ESTONIAN", "FINNISH", "NORWEGIAN", "SWEDISH" ]
          },
          "productName" : {
            "type" : "string",
            "description" : "Product name",
            "maxLength" : 100,
            "minLength" : 0
          }
        }
      },
      "ProductSearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "Search results.",
            "items" : {
              "$ref" : "#/components/schemas/Product"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/SearchResultMetaData",
            "description" : "Search result metadata."
          }
        }
      },
      "ProductValidityPeriod" : {
        "type" : "object",
        "properties" : {
          "startDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Start date of the validity period"
          },
          "endDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "End date of the validity period"
          },
          "notes" : {
            "type" : "string",
            "description" : "Notes of the validity period"
          }
        }
      },
      "PurchasesRights" : {
        "type" : "object",
        "properties" : {
          "purchaseInvoices" : {
            "type" : "string",
            "description" : "Access level to purchase invoices functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "purchaseInvoiceSearch" : {
            "type" : "string",
            "description" : "Access level to purchase invoice search functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "personalPurchaseInvoicesOnly" : {
            "type" : "boolean",
            "description" : "Is personal purchase invoices only limitation enabled."
          },
          "supplierRegister" : {
            "type" : "string",
            "description" : "Access level to supplier register functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "productRegister" : {
            "type" : "string",
            "description" : "Access level to product register functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "fixedAssetsRegister" : {
            "type" : "string",
            "description" : "Access level to fixed assets register functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          }
        }
      },
      "RecoveryRowDetails" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of employee salary base recovery row details.",
            "readOnly" : true
          },
          "netRecoveryTaxValue" : {
            "type" : "number",
            "description" : "Value of overpaid tax. Scale: 2.",
            "maximum" : 999999999.99,
            "minimum" : 0
          },
          "paymentPeriodStart" : {
            "type" : "string",
            "format" : "date",
            "description" : "Start date of the payment period in which the overpayment occurred."
          },
          "paymentPeriodEnd" : {
            "type" : "string",
            "format" : "date",
            "description" : "End date of the payment period in which the overpayment occurred."
          },
          "earningsPeriodStart" : {
            "type" : "string",
            "format" : "date",
            "description" : "Start date of the earnings period in which the overpayment occurred."
          },
          "earningsPeriodEnd" : {
            "type" : "string",
            "format" : "date",
            "description" : "End date of the earnings period in which the overpayment occurred."
          },
          "payday" : {
            "type" : "string",
            "format" : "date",
            "description" : "Date when the employee is assumed to receive salary."
          }
        },
        "required" : [ "paymentPeriodEnd", "paymentPeriodStart" ]
      },
      "ReferencePayment" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of the reference payment."
          },
          "accountNumber" : {
            "type" : "string",
            "description" : "Account number for which the reference payment is generated."
          },
          "valueDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Date when the event was registered in the counterpart bank."
          },
          "paymentDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Date when the payment was paid by the payer in his/her own bank."
          },
          "sum" : {
            "type" : "number",
            "description" : "The total amount for the reference payment."
          },
          "name" : {
            "type" : "string",
            "description" : "Name of the counterparty."
          },
          "bankReference" : {
            "type" : "string",
            "description" : "A reference value for the bank."
          },
          "archiveId" : {
            "type" : "string",
            "description" : "Archive code of the reference payment. Archive codes are unique in one bank but two events from different banks can share the same archive code."
          },
          "allocated" : {
            "type" : "boolean",
            "description" : "Is the reference payment allocated to an invoice. If it is, the event must also have an invoice ID."
          },
          "invoiceId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the invoice linked to the event."
          },
          "attachments" : {
            "type" : "array",
            "description" : "A list of attachments added to the reference payment.",
            "items" : {
              "$ref" : "#/components/schemas/Attachment"
            }
          },
          "allocationMetadataRows" : {
            "type" : "array",
            "description" : "Metadata allocations for the reference payment.",
            "items" : {
              "$ref" : "#/components/schemas/AllocationMetadataWithFullLedgerAccountDataRow"
            }
          }
        }
      },
      "ReferencePaymentsSearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "Search results.",
            "items" : {
              "$ref" : "#/components/schemas/ReferencePayment"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/SearchResultMetaData",
            "description" : "Search result metadata."
          }
        }
      },
      "RegistryInfo" : {
        "type" : "object",
        "properties" : {
          "active" : {
            "type" : "boolean",
            "description" : "Status of the partner."
          },
          "phone" : {
            "type" : "string",
            "description" : "Phone number of the partner.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "mobilePhone" : {
            "type" : "string",
            "description" : "Mobile phone number of the partner.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "fax" : {
            "type" : "string",
            "description" : "Fax number of the partner.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "section" : {
            "type" : "string",
            "description" : "Section of the partner.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "homeMunicipality" : {
            "type" : "string",
            "description" : "Home municipality of the partner.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "reportGroup" : {
            "type" : "string",
            "description" : "Report group name of the partner."
          },
          "reportGroupId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Report group id of the partner."
          },
          "partnerGroups" : {
            "type" : "array",
            "description" : "Partner groups of the partner.",
            "items" : {
              "$ref" : "#/components/schemas/BusinessPartnerGroup"
            }
          }
        }
      },
      "SalariesBasicInfo" : {
        "type" : "object",
        "properties" : {
          "yearlyFigures" : {
            "$ref" : "#/components/schemas/YearlyFigures",
            "description" : "Yearly figures. Employer payment percentages."
          },
          "workHours" : {
            "$ref" : "#/components/schemas/WorkHours",
            "description" : "Work hours."
          },
          "incomesRegisterConfiguration" : {
            "$ref" : "#/components/schemas/IncomesRegisterConfiguration",
            "description" : "Incomes register info."
          },
          "pensionContracts" : {
            "type" : "array",
            "description" : "Pension contracts. Employees' pension insurance.",
            "items" : {
              "$ref" : "#/components/schemas/PensionContract"
            }
          },
          "accidentInsurancePolicies" : {
            "type" : "array",
            "description" : "Accident insurance policies. Occupational accident insurance.",
            "items" : {
              "$ref" : "#/components/schemas/AccidentInsurancePolicy"
            }
          }
        }
      },
      "SalariesRights" : {
        "type" : "object",
        "properties" : {
          "payroll" : {
            "type" : "string",
            "description" : "Access level to payroll functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "approve" : {
            "type" : "string",
            "description" : "Access level to payroll approve functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "personalSalariesOnly" : {
            "type" : "boolean",
            "description" : "Is personal salaries only limitation enabled."
          },
          "personRegister" : {
            "type" : "string",
            "description" : "Access level to person register functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "workingTimeTracking" : {
            "type" : "string",
            "description" : "Access level to working time tracking functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "personalWorkHourTrackingOnly" : {
            "type" : "boolean",
            "description" : "Is personal work hour tracking only limitation enabled."
          }
        }
      },
      "SalaryBase" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of the salary base.",
            "readOnly" : true
          },
          "employeeId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of the employee.",
            "readOnly" : true
          },
          "notes" : {
            "type" : "string",
            "description" : "User notes related to salary base."
          },
          "rows" : {
            "type" : "array",
            "description" : "Salary base rows. Salary base should always have at least one row. Some base rows are created automatically and next can be added.",
            "items" : {
              "$ref" : "#/components/schemas/SalaryBaseRow"
            },
            "minItems" : 1
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Version."
          }
        },
        "required" : [ "rows" ]
      },
      "SalaryBaseRow" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of salary base row.",
            "readOnly" : true
          },
          "salaryTypeCode" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "The row salary type code."
          },
          "customName" : {
            "type" : "string",
            "description" : "Custom salary type name.",
            "maxLength" : 255,
            "minLength" : 0
          },
          "quantity" : {
            "type" : "number",
            "description" : "Quantity of units. Scale: 5.",
            "maximum" : 999999999.99,
            "minimum" : -999999999.99
          },
          "unitValue" : {
            "type" : "number",
            "description" : "Value of one unit. Scale: 5.",
            "maximum" : 999999999.99,
            "minimum" : -999999999.99
          },
          "paymentPercent" : {
            "type" : "number",
            "description" : "Payment percent of salary type. Scale: 2.",
            "maximum" : 2147483647,
            "minimum" : 0
          },
          "recoveryDetails" : {
            "$ref" : "#/components/schemas/RecoveryRowDetails",
            "description" : "Additional information about recovery row of salary base."
          },
          "carBenefitDetails" : {
            "$ref" : "#/components/schemas/CarBenefitRowDetails",
            "description" : "Additional information about car benefit row of salary base."
          },
          "baseSalaryRow" : {
            "type" : "boolean",
            "description" : "Is base salary row resulting from employee configuration.",
            "readOnly" : true
          },
          "dimensions" : {
            "type" : "array",
            "description" : "Dimension allocations for this row.",
            "items" : {
              "$ref" : "#/components/schemas/SalaryBaseRowDimension"
            }
          }
        },
        "required" : [ "salaryTypeCode" ]
      },
      "SalaryBaseRowDimension" : {
        "type" : "object",
        "properties" : {
          "dimensionId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Dimension ID."
          },
          "dimensionName" : {
            "type" : "string",
            "description" : "Dimension name.",
            "readOnly" : true
          },
          "items" : {
            "type" : "array",
            "description" : "Dimension items with their allocations.",
            "items" : {
              "$ref" : "#/components/schemas/SalaryBaseRowDimensionItem"
            }
          }
        },
        "required" : [ "dimensionId", "items" ]
      },
      "SalaryBaseRowDimensionItem" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Dimension item ID."
          },
          "name" : {
            "type" : "string",
            "description" : "Dimension item name.",
            "readOnly" : true
          },
          "quantity" : {
            "type" : "number",
            "description" : "Quantity allocated to this dimension item."
          },
          "percentage" : {
            "type" : "number",
            "description" : "Percentage allocated to this dimension item."
          }
        },
        "required" : [ "id" ]
      },
      "SalaryInfo" : {
        "type" : "object",
        "properties" : {
          "employeeId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of the employee.",
            "readOnly" : true
          },
          "personId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of the person. Used to link employee with person from person register."
          },
          "incomeConfiguration" : {
            "$ref" : "#/components/schemas/IncomeConfiguration",
            "description" : "Income configuration."
          },
          "insurancesConfiguration" : {
            "$ref" : "#/components/schemas/InsurancesConfiguration",
            "description" : "Insurances configuration."
          },
          "internationalSituationsConfiguration" : {
            "$ref" : "#/components/schemas/InternationalSituationsConfiguration",
            "description" : "International situations configuration."
          }
        },
        "required" : [ "incomeConfiguration", "insurancesConfiguration", "internationalSituationsConfiguration", "personId" ]
      },
      "SalaryList" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Salary list name.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "holidayYear" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Holiday credit year."
          },
          "paymentPeriodStart" : {
            "type" : "string",
            "format" : "date",
            "description" : "Payment period start."
          },
          "paymentPeriodEnd" : {
            "type" : "string",
            "format" : "date",
            "description" : "Payment period end."
          },
          "earningsPeriodStart" : {
            "type" : "string",
            "format" : "date",
            "description" : "Earnings period start."
          },
          "earningsPeriodEnd" : {
            "type" : "string",
            "format" : "date",
            "description" : "Earnings period end."
          },
          "accountingDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Accounting date."
          },
          "dueDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Due date."
          },
          "payday" : {
            "type" : "string",
            "format" : "date",
            "description" : "Payday."
          },
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique salary list identifier.",
            "readOnly" : true
          },
          "salarySlips" : {
            "type" : "array",
            "description" : "Salary slips basic data associated with salary list.",
            "items" : {
              "$ref" : "#/components/schemas/SalarySlipBasicData"
            }
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Version."
          }
        },
        "required" : [ "accountingDate", "dueDate", "name", "payday", "paymentPeriodEnd", "paymentPeriodStart" ]
      },
      "SalaryListBasicData" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique salary list identifier.",
            "readOnly" : true
          },
          "name" : {
            "type" : "string",
            "description" : "Salary list name."
          },
          "numberOfSlips" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of salary slips included in this salary list."
          },
          "unfinished" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of unfinished salary slips."
          },
          "sent" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of sent salary slips."
          },
          "paid" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of paid salary slips."
          },
          "reported" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of reported salary slips."
          },
          "paymentPeriodStart" : {
            "type" : "string",
            "format" : "date",
            "description" : "Salary list payment period start."
          },
          "paymentPeriodEnd" : {
            "type" : "string",
            "format" : "date",
            "description" : "Salary list payment period end."
          },
          "created" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "The date when salary list was created."
          },
          "createdBy" : {
            "type" : "string",
            "description" : "Name of the user who created salary list."
          }
        }
      },
      "SalaryListSearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "Search results.",
            "items" : {
              "$ref" : "#/components/schemas/SalaryListBasicData"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/SearchResultMetaData",
            "description" : "Search result metadata."
          }
        }
      },
      "SalaryPeriod" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Salary period ID."
          },
          "name" : {
            "type" : "string",
            "description" : "Salary period name."
          },
          "paymentPeriodStart" : {
            "type" : "string",
            "format" : "date",
            "description" : "Salary period payment period start date."
          },
          "paymentPeriodEnd" : {
            "type" : "string",
            "format" : "date",
            "description" : "Salary period payment period end date."
          },
          "holidayCreditYear" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Holiday credit year."
          },
          "calendarWorkdays" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Calendar of workdays."
          },
          "dueDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Due date."
          },
          "payday" : {
            "type" : "string",
            "format" : "date",
            "description" : "Payday."
          },
          "accountingDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Accounting date."
          }
        }
      },
      "SalaryPeriodListBasicInfo" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Salary period list ID."
          },
          "name" : {
            "type" : "string",
            "description" : "Salary period list name."
          }
        }
      },
      "SalarySlip" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of the salary slip.",
            "readOnly" : true
          },
          "employeeId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of the employee.",
            "readOnly" : true
          },
          "employeeName" : {
            "type" : "string",
            "description" : "Employee name.",
            "readOnly" : true
          },
          "status" : {
            "type" : "string",
            "description" : "Salary slip status.",
            "enum" : [ "APPROVED", "CREATED", "INVALIDATED", "IN_CORRECTION", "PAID", "PAYMENT_QUEUED", "REJECTED", "REPORTED", "REPORTED_AND_PAID", "REPORTED_AND_PAYMENT_QUEUED", "VERIFIED" ],
            "readOnly" : true
          },
          "paidStatusDetails" : {
            "type" : "string",
            "description" : "Salary slip paid status details.",
            "enum" : [ "MARKED_PAID", "PAYMENT_SENT_TO_BANK", "PARTLY_PAID" ],
            "readOnly" : true
          },
          "slipNumber" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique salary slip number within each company.",
            "readOnly" : true
          },
          "salaryBaseNote" : {
            "type" : "string",
            "description" : "Salary base note.",
            "maxLength" : 300,
            "minLength" : 0
          },
          "incomesRegisterReportingSetting" : {
            "type" : "string",
            "description" : "Incomes Register reporting setting.",
            "enum" : [ "DO_NOT_REPORT_DATA_ON_SLIP", "EARNINGS_REPORTED_ELSEWHERE", "FORM_BOTH_REPORTS" ]
          },
          "workingTimeAllocation" : {
            "$ref" : "#/components/schemas/SalarySlipWorkingTimeAllocation",
            "description" : "Working time allocation."
          },
          "rows" : {
            "type" : "array",
            "description" : "Salary slip rows. Salary slip should always have at least one row.",
            "items" : {
              "$ref" : "#/components/schemas/SalarySlipRow"
            },
            "minItems" : 1
          },
          "settings" : {
            "$ref" : "#/components/schemas/SalarySlipSettings",
            "description" : "Salary slip settings."
          },
          "adjustments" : {
            "$ref" : "#/components/schemas/SalarySlipAdjustments",
            "description" : "Salary slip adjustments."
          },
          "slipNotes" : {
            "type" : "string",
            "description" : "Slip notes.",
            "maxLength" : 255,
            "minLength" : 0
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Version."
          }
        },
        "required" : [ "adjustments", "incomesRegisterReportingSetting", "rows", "settings" ]
      },
      "SalarySlipAccounting" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Name.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "receiptDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Receipt date."
          },
          "accountantsNotes" : {
            "type" : "string",
            "description" : "Accountants notes.",
            "maxLength" : 255,
            "minLength" : 0
          },
          "transactionDescription" : {
            "type" : "string",
            "description" : "Transaction description.",
            "maxLength" : 255,
            "minLength" : 0
          },
          "receiptValidity" : {
            "type" : "string",
            "description" : "Receipt validity type.",
            "enum" : [ "EMPTY", "IMMEDIATELY", "OVER_3_YEARS", "SERVICE_PERIOD" ]
          },
          "periodStartDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Period start date."
          },
          "periodEndDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Period end date."
          },
          "transactions" : {
            "type" : "array",
            "description" : "Transactions. At least one transaction must be provided.",
            "items" : {
              "$ref" : "#/components/schemas/SalarySlipTransaction"
            },
            "minItems" : 1
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Version."
          }
        },
        "required" : [ "name", "receiptDate", "transactions" ]
      },
      "SalarySlipAdjustments" : {
        "type" : "object",
        "properties" : {
          "payday" : {
            "type" : "string",
            "format" : "date",
            "description" : "Payday."
          },
          "employment" : {
            "$ref" : "#/components/schemas/SalarySlipEmployment",
            "description" : "Employment."
          },
          "pensionContractId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Pension contract ID."
          },
          "accidentInsurancePolicyId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Accident insurance policy ID."
          }
        },
        "required" : [ "payday" ]
      },
      "SalarySlipBasicData" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique salary slip identifier.",
            "readOnly" : true
          },
          "employeeName" : {
            "type" : "string",
            "description" : "Employee name."
          },
          "payday" : {
            "type" : "string",
            "format" : "date",
            "description" : "Payday."
          },
          "slipNumber" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique salary slip number within each company."
          },
          "status" : {
            "type" : "string",
            "description" : "Salary slip status.",
            "enum" : [ "APPROVED", "CREATED", "INVALIDATED", "IN_CORRECTION", "PAID", "PAYMENT_QUEUED", "REJECTED", "REPORTED", "REPORTED_AND_PAID", "REPORTED_AND_PAYMENT_QUEUED", "VERIFIED" ]
          },
          "paidStatusDetails" : {
            "type" : "string",
            "description" : "Salary slip paid status details.",
            "enum" : [ "MARKED_PAID", "PAYMENT_SENT_TO_BANK", "PARTLY_PAID" ]
          },
          "slipNotes" : {
            "type" : "string",
            "description" : "Slip notes."
          },
          "salaryChannel" : {
            "type" : "string",
            "description" : "Salary channel.",
            "enum" : [ "NO_SENDING", "MAIL", "EMAIL", "MOBILE", "ESALARY" ]
          },
          "sentStatus" : {
            "type" : "string",
            "description" : "Sent status.",
            "enum" : [ "OBSOLETE", "OK", "UNDEFINED" ]
          },
          "reportStatus" : {
            "type" : "string",
            "description" : "Earnings reported status.",
            "enum" : [ "OBSOLETE", "OK", "UNDEFINED" ]
          },
          "salary" : {
            "type" : "number",
            "description" : "Sum of salary slip's salaries."
          },
          "fringeBenefit" : {
            "type" : "number",
            "description" : "Sum of salary slip's fringe benefits."
          },
          "salaryForIns" : {
            "type" : "number",
            "description" : "Sum of salary slip's salaries for insurance purposes."
          },
          "deductionToTaxable" : {
            "type" : "number",
            "description" : "Sum of salary slip's deductions to taxable."
          },
          "tax" : {
            "type" : "number",
            "description" : "Sum of salary slip's taxes."
          },
          "taxableCompensation" : {
            "type" : "number",
            "description" : "Sum of salary slip's taxable compensations."
          },
          "taxFreeItems" : {
            "type" : "number",
            "description" : "Sum of salary slip's tax free items."
          },
          "otherDeductions" : {
            "type" : "number",
            "description" : "Sum of salary slip's other deductions."
          },
          "netPay" : {
            "type" : "number",
            "description" : "Sum of salary slip's net pay."
          },
          "eSalaryStatus" : {
            "type" : "string",
            "description" : "E-salary status.",
            "enum" : [ "SENDING", "SENT", "ERROR", "REPLACED", "NULL" ]
          }
        }
      },
      "SalarySlipCarBenefitRowDetails" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of employee salary base car benefit row details.",
            "readOnly" : true
          },
          "carAgeGroup" : {
            "type" : "string",
            "description" : "Age group of the car.",
            "enum" : [ "A", "ABROAD", "B", "C" ]
          },
          "benefitLimited" : {
            "type" : "boolean",
            "description" : "Whether benefit is limited."
          },
          "emissionValue" : {
            "type" : "number",
            "description" : "The carbon dioxide emission value (g/km) of the car. Scale: 2.",
            "maximum" : 100,
            "minimum" : 0
          },
          "odometerReading" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Odometer reading.",
            "maximum" : 999999999,
            "minimum" : 0
          }
        },
        "required" : [ "benefitLimited", "carAgeGroup" ]
      },
      "SalarySlipEmployment" : {
        "type" : "object",
        "properties" : {
          "startDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Employment start date."
          },
          "endDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Employment end date."
          },
          "type" : {
            "type" : "string",
            "description" : "Type. Can be enum value or any string.",
            "enum" : [ "PERMANENT", "FIXED_TERM", "TEMPORARY", "PART_TIME", "TRAINEE", "PENSIONER", "NOT_EMPLOYED" ],
            "maxLength" : 255,
            "minLength" : 0
          },
          "terminationReason" : {
            "type" : "string",
            "description" : "Reason for termination. When employment type is Keva, the reason code must be from Kevas numeric codes.",
            "enum" : [ "NOT_APPLICABLE", "EMPLOYEES_RESIGNATION", "OTHER", "TERMINATION_GROUNDS", "FINANCIAL_AND_PRODUCTION_GROUNDS", "JOINT_AGREEMENT", "RETIREMENT", "FIXED_TERM_EMPLOYMENT_TERMINATION" ],
            "maxLength" : 255,
            "minLength" : 0
          },
          "registrationGroundId" : {
            "type" : "string",
            "description" : "Registration grounds id (Keva).",
            "maxLength" : 80,
            "minLength" : 0
          },
          "hoursPerWeek" : {
            "type" : "number",
            "description" : "Hours per week. Scale: 2.",
            "maximum" : 168.00,
            "minimum" : 0.01
          },
          "employmentType" : {
            "type" : "string",
            "description" : "Employment type.",
            "enum" : [ "FULL_TIME", "NOT_AVAILABLE", "PART_TIME" ]
          },
          "partTimePercent" : {
            "type" : "number",
            "description" : "Part-time percent. Required when employment type is set to \"PART_TIME\". Scale: 2.",
            "maximum" : 100.00,
            "minimum" : 0.01
          }
        },
        "required" : [ "terminationReason" ]
      },
      "SalarySlipRecoveryRowDetails" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of employee salary base recovery row details.",
            "readOnly" : true
          },
          "netRecoveryTaxValue" : {
            "type" : "number",
            "description" : "Value of overpaid tax. Scale: 2.",
            "maximum" : 999999999.99,
            "minimum" : 0
          },
          "paymentPeriodStart" : {
            "type" : "string",
            "format" : "date",
            "description" : "Start date of the payment period in which the overpayment occurred."
          },
          "paymentPeriodEnd" : {
            "type" : "string",
            "format" : "date",
            "description" : "End date of the payment period in which the overpayment occurred."
          },
          "earningsPeriodStart" : {
            "type" : "string",
            "format" : "date",
            "description" : "Start date of the earnings period in which the overpayment occurred."
          },
          "earningsPeriodEnd" : {
            "type" : "string",
            "format" : "date",
            "description" : "End date of the earnings period in which the overpayment occurred."
          },
          "payday" : {
            "type" : "string",
            "format" : "date",
            "description" : "Date when the employee is assumed to receive salary."
          },
          "taxAtSourceValue" : {
            "type" : "number",
            "description" : "Tax at source value of overpaid tax.",
            "maximum" : 999999999.99,
            "minimum" : 0
          }
        },
        "required" : [ "paymentPeriodEnd", "paymentPeriodStart" ]
      },
      "SalarySlipRow" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of salary base row.",
            "readOnly" : true
          },
          "salaryTypeCode" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "The row salary type code."
          },
          "customName" : {
            "type" : "string",
            "description" : "Custom salary type name.",
            "maxLength" : 255,
            "minLength" : 0
          },
          "quantity" : {
            "type" : "number",
            "description" : "Quantity of units. Scale: 5.",
            "maximum" : 999999999.99,
            "minimum" : -999999999.99
          },
          "unitValue" : {
            "type" : "number",
            "description" : "Value of one unit. Scale: 5.",
            "maximum" : 999999999.99,
            "minimum" : -999999999.99
          },
          "paymentPercent" : {
            "type" : "number",
            "description" : "Payment percent of salary type. Scale: 2.",
            "maximum" : 2147483647,
            "minimum" : 0
          },
          "recoveryDetails" : {
            "$ref" : "#/components/schemas/SalarySlipRecoveryRowDetails",
            "description" : "Additional information about recovery row of salary slip."
          },
          "carBenefitDetails" : {
            "$ref" : "#/components/schemas/SalarySlipCarBenefitRowDetails",
            "description" : "Additional information about car benefit row of salary slip."
          },
          "baseSalaryRow" : {
            "type" : "boolean",
            "description" : "Is base salary row resulting from employee configuration.",
            "readOnly" : true
          },
          "dimensions" : {
            "type" : "array",
            "description" : "Dimension allocations for this row.",
            "items" : {
              "$ref" : "#/components/schemas/SalaryBaseRowDimension"
            }
          },
          "earningsPeriodStart" : {
            "type" : "string",
            "format" : "date",
            "description" : "Earnings period start date."
          },
          "earningsPeriodEnd" : {
            "type" : "string",
            "format" : "date",
            "description" : "Earnings period end date."
          },
          "showEarningPeriodInExport" : {
            "type" : "boolean",
            "description" : "Show earning period on salary slip export."
          },
          "unjustEnrichment" : {
            "type" : "boolean",
            "description" : "Is unjust enrichment row."
          },
          "comment" : {
            "type" : "string",
            "description" : "Comment. Information for employee.",
            "maxLength" : 200,
            "minLength" : 0
          },
          "holidayRowDetails" : {
            "$ref" : "#/components/schemas/HolidayRowDetails",
            "description" : "Additional information about holiday row of salary slip."
          },
          "workingHourReductionRowDetails" : {
            "$ref" : "#/components/schemas/WorkingHourReductionRowDetails",
            "description" : "Additional information about working hour reduction row of salary slip.",
            "readOnly" : true
          },
          "systemNotification" : {
            "type" : "string",
            "description" : "System notification.",
            "readOnly" : true
          }
        },
        "required" : [ "salaryTypeCode", "showEarningPeriodInExport", "unjustEnrichment" ]
      },
      "SalarySlipSearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "Search results.",
            "items" : {
              "$ref" : "#/components/schemas/SalarySlipBasicData"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/SearchResultMetaData",
            "description" : "Search result metadata."
          }
        }
      },
      "SalarySlipSettings" : {
        "type" : "object",
        "properties" : {
          "noObligationExceptionTypes" : {
            "type" : "array",
            "description" : "Applied insurance exception types. No obligation to provide exception types.",
            "items" : {
              "type" : "string",
              "enum" : [ "NO_OBLIGATION_TO_PROVIDE_INSURANCE_EARNINGS_RELATED_PENSION_INSURANCE", "NO_OBLIGATION_TO_PROVIDE_INSURANCE_HEALTH_INSURANCE", "NO_OBLIGATION_TO_PROVIDE_INSURANCE_UNEMPLOYMENT_INSURANCE", "NO_OBLIGATION_TO_PROVIDE_INSURANCE_ACCIDENT_AND_OCCUPATIONAL_DISEASE_INSURANCE" ]
            },
            "uniqueItems" : true
          },
          "notSubjectExceptionTypes" : {
            "type" : "array",
            "description" : "Applied insurance exception types. Not subject to Finnish social security exception types.",
            "items" : {
              "type" : "string",
              "enum" : [ "NOT_SUBJECT_TO_FINNISH_SOCIAL_SEC_EARNINGS_RELATED_PENSION_INSURANCE", "NOT_SUBJECT_TO_FINNISH_SOCIAL_SEC_HEALTH_INSURANCE", "NOT_SUBJECT_TO_FINNISH_SOCIAL_SEC_UNEMPLOYMENT_INSURANCE", "NOT_SUBJECT_TO_FINNISH_SOCIAL_SEC_ACCIDENT_AND_OCCUPATIONAL_DISEASE_INSURANCE" ]
            },
            "uniqueItems" : true
          },
          "pensionVoluntarilyPaid" : {
            "type" : "boolean",
            "description" : "Voluntary insurance in Finland. Earnings-related pension."
          },
          "accountingDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Accounting date."
          },
          "dueDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Due date."
          },
          "salaryChannel" : {
            "type" : "string",
            "description" : "Salary channel.",
            "enum" : [ "NO_SENDING", "MAIL", "EMAIL", "MOBILE", "ESALARY" ]
          },
          "additionalInformation" : {
            "type" : "string",
            "description" : "Additional information.",
            "maxLength" : 255,
            "minLength" : 0
          }
        },
        "required" : [ "accountingDate", "dueDate", "pensionVoluntarilyPaid", "salaryChannel" ]
      },
      "SalarySlipTransaction" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the transaction.",
            "readOnly" : true
          },
          "transactionType" : {
            "type" : "string",
            "description" : "Transaction type.",
            "enum" : [ "ENTRY", "RECONCILIATION_ENTRY", "REVERSING_ENTRY" ]
          },
          "account" : {
            "type" : "string",
            "description" : "Ledger account number for the transaction. Must be valid for the current Procountor environment. Use GET /coa to obtain the chart of accounts.",
            "minLength" : 1
          },
          "accountingValue" : {
            "type" : "number",
            "description" : "Transaction accounting value. This value is net. It will be automatically rounded up to scale 2."
          },
          "description" : {
            "type" : "string",
            "description" : "Transaction description.",
            "maxLength" : 255,
            "minLength" : 0
          },
          "balanceCode" : {
            "type" : "string",
            "description" : "Transaction balance code. Only available if the use balance sheet setting is enabled.",
            "maxLength" : 255,
            "minLength" : 0
          },
          "dimensionItemValues" : {
            "type" : "array",
            "description" : "Values of dimension items associated with this transaction. The number of provided dimension items must be within the dimension max count defined by the purchased Procountor license. Provided dimension pairs (dimension id - item id) must be unique within the list provided.",
            "items" : {
              "$ref" : "#/components/schemas/DimensionItemValue"
            }
          }
        },
        "required" : [ "account", "accountingValue", "transactionType" ]
      },
      "SalarySlipWorkingTimeAllocation" : {
        "type" : "object",
        "properties" : {
          "holidaysWorkingTime" : {
            "$ref" : "#/components/schemas/HolidaysWorkingTimeAllocation",
            "description" : "Holiday working time allocation. Only for employees which uses holiday module."
          },
          "workingHourReductionWorkingDays" : {
            "$ref" : "#/components/schemas/WorkingHourReductionWorkingTimeAllocation",
            "description" : "Working hour reduction working time allocation. Only for employees which uses working hour reduction module."
          }
        }
      },
      "SalaryType" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Salary type name."
          },
          "code" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Salary type code."
          },
          "category" : {
            "type" : "string",
            "description" : "Salary category.",
            "enum" : [ "SALARY_FOR_TIME_WORKED", "OTHER_TAXABLE_EARNINGS", "FRINGE_BENEFITS", "TAX_FREE_ITEMS", "TAX", "DEDUCTIONS_FROM_NET_PAY", "INFORMATIVE_ITEMS" ]
          },
          "unit" : {
            "type" : "string",
            "description" : "Salary type unit.",
            "enum" : [ "HOUR", "PIECE" ]
          },
          "unitValue" : {
            "type" : "number",
            "description" : "Unit value of Salary type."
          },
          "paymentPercent" : {
            "type" : "number",
            "description" : "Payment percent of Salary type."
          },
          "paymentPercentEditable" : {
            "type" : "boolean",
            "description" : "Is payment percent editable."
          },
          "affectsHealthInsurance" : {
            "type" : "boolean",
            "description" : "Affects health insurance."
          },
          "affectsPensionInsurance" : {
            "type" : "boolean",
            "description" : "Affects pension insurance."
          },
          "affectsUnemploymentInsurance" : {
            "type" : "boolean",
            "description" : "Affects unemployment insurance."
          },
          "affectsAccidentAndGroupLifeInsurance" : {
            "type" : "boolean",
            "description" : "Affects accident and group life insurance."
          },
          "incomeType" : {
            "type" : "string",
            "description" : "Income type name."
          },
          "incomeTypeCode" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Income type code."
          },
          "translations" : {
            "type" : "array",
            "description" : "Salary type name translations.",
            "items" : {
              "$ref" : "#/components/schemas/SalaryTypeTranslation"
            }
          }
        }
      },
      "SalaryTypeSearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "Search results.",
            "items" : {
              "$ref" : "#/components/schemas/SalaryType"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/SearchResultMetaData",
            "description" : "Search result metadata."
          }
        }
      },
      "SalaryTypeTranslation" : {
        "type" : "object",
        "properties" : {
          "languageCode" : {
            "type" : "string",
            "description" : "Language code in ISO 639-1 format."
          },
          "translation" : {
            "type" : "string",
            "description" : "Salary type name translation for the given language code."
          }
        }
      },
      "SalesRights" : {
        "type" : "object",
        "properties" : {
          "salesOrGroupInvoices" : {
            "type" : "string",
            "description" : "Access level to sales or group invoices functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "salesInvoiceSearch" : {
            "type" : "string",
            "description" : "Access level to sales invoice search functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "personalSalesInvoicesOnly" : {
            "type" : "boolean",
            "description" : "Is personal sales invoices only limitation enabled."
          },
          "customerRegister" : {
            "type" : "string",
            "description" : "Access level to customer register functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "productRegister" : {
            "type" : "string",
            "description" : "Access level to product register functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          }
        }
      },
      "SearchResultMetaData" : {
        "type" : "object",
        "properties" : {
          "pageNumber" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of the page."
          },
          "pageSize" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Size of the page."
          },
          "resultCount" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "The number of results per page."
          },
          "totalCount" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Total number of rows."
          }
        }
      },
      "SerialNumber" : {
        "type" : "object",
        "properties" : {
          "series" : {
            "type" : "string",
            "description" : "Ledger receipt series.",
            "enum" : [ "A", "B", "C", "D", "E", "F", "G", "H" ]
          },
          "number" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Ledger receipt serial number.",
            "readOnly" : true
          }
        }
      },
      "SessionInfo" : {
        "type" : "object",
        "properties" : {
          "companyId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "ID of current company."
          },
          "name" : {
            "type" : "string",
            "description" : "Name of current company."
          },
          "country" : {
            "type" : "string",
            "description" : "Country of current company.",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_INDIAN_OCEAN_TERRITORY", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORTHERN_MARIANA_ISLANDS", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_MARTIN_FRENCH_PART", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ]
          },
          "productVersion" : {
            "type" : "string",
            "description" : "Product version of current company.",
            "enum" : [ "BACKOFFICE", "BACKOFFICE_BASIC", "BACKOFFICE_PLUS", "BACKOFFICE_PREMIUM", "FINAGO_SOLO", "FINANCIALS_ALKU", "FINANCIALS_BASIC", "FINANCIALS_ENTERPRISE", "FINANCIALS_GOLD", "FINANCIALS_LIGHT", "FINANCIALS_MAX", "FINANCIALS_PLATINUM", "FINANCIALS_PLUS", "FINANCIALS_PREMIUM", "FINANCIALS_SILVER", "FINANCIALS_UNLIMITED", "FLEX", "SALES_GOLD", "SALES_PLATINUM", "SALES_SILVER" ]
          },
          "userId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Current user id."
          },
          "userName" : {
            "type" : "string",
            "description" : "Current user name."
          },
          "companySettings" : {
            "$ref" : "#/components/schemas/CompanySettings",
            "description" : "Company settings. These are settings for 3rd party client usage to identify what features are usable for current company (in order to avoid requests that are bound to fail)"
          }
        }
      },
      "SieAvailabilityResponse" : {
        "type" : "object",
        "properties" : {
          "lastValidEndDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Specifies the last valid end date."
          },
          "accountingPeriodStart" : {
            "type" : "array",
            "description" : "List of the accounting period start dates.",
            "items" : {
              "type" : "string",
              "format" : "date"
            }
          }
        }
      },
      "Status" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Name of the API"
          },
          "version" : {
            "type" : "string",
            "description" : "Version of the API"
          },
          "status" : {
            "type" : "string",
            "description" : "Status of the API health. OK - API is fine, DEGRADED - some external services are not working, FAILING - API has started, but not working properly",
            "enum" : [ "DEGRADED", "FAILING", "OK" ]
          },
          "procountorVersion" : {
            "type" : "string",
            "description" : "Current Procountor version in use"
          }
        }
      },
      "Substitution" : {
        "type" : "object",
        "properties" : {
          "userId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Substituted user."
          },
          "start" : {
            "type" : "string",
            "format" : "date",
            "description" : "Start date of substitution."
          },
          "end" : {
            "type" : "string",
            "format" : "date",
            "description" : "End date of substitution."
          },
          "substituteForVerifying" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "User substituting as verifier."
          },
          "substituteForApproving" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "User substituting as approver."
          },
          "notes" : {
            "type" : "string",
            "description" : "Additional notes for substitution."
          }
        }
      },
      "TaggableUser" : {
        "type" : "object",
        "properties" : {
          "displayName" : {
            "type" : "string",
            "description" : "Generated display name that is used in comments to tag that given user. For the most of the time this will be lower case of firstname + lastname, without spaces. Running number is used to indicate multiple people with identical names."
          },
          "fullName" : {
            "type" : "string",
            "description" : "Full name."
          }
        }
      },
      "TaggableUsers" : {
        "type" : "object",
        "properties" : {
          "taggableUsers" : {
            "type" : "array",
            "description" : "List of taggable users.",
            "items" : {
              "$ref" : "#/components/schemas/TaggableUser"
            }
          }
        }
      },
      "TaggedUser" : {
        "type" : "object",
        "properties" : {
          "userTagId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Tag identifier, given when someone is tagged in comment."
          },
          "displayName" : {
            "type" : "string",
            "description" : "Generated display name that is used in comments to tag that given user. For the most of the time this will be lower case of firstname + lastname, without spaces. Running number is used to indicate multiple people with identical names."
          },
          "fullName" : {
            "type" : "string",
            "description" : "Full name."
          },
          "read" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Time when comment was read by tagged user."
          }
        }
      },
      "TaggedUsersInfo" : {
        "type" : "object",
        "properties" : {
          "numTaggedUsers" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of users tagged in the comment."
          },
          "readByAllTaggedUsers" : {
            "type" : "boolean",
            "description" : "Returns true, if all the tagged users have read the comment."
          }
        }
      },
      "TaxCard" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of employee tax card.",
            "readOnly" : true
          },
          "type" : {
            "type" : "string",
            "description" : "Tax card type. Allowed tax card types: ONE_INCOME_LIMIT, TAX_AT_SOURCE.",
            "enum" : [ "A", "ADDITIONAL_INCOME", "FREELANCE", "GRADED_INCOME", "ONE_INCOME_LIMIT", "TAX_AT_SOURCE" ]
          },
          "revised" : {
            "type" : "boolean",
            "description" : "Revised card."
          },
          "incomeType" : {
            "type" : "string",
            "description" : "Tax card income type. Allowed tax card income types: 000024-000040, 000042."
          },
          "validFrom" : {
            "type" : "string",
            "format" : "date",
            "description" : "Valid from."
          },
          "basePercent" : {
            "type" : "number",
            "description" : "Base percent. Scale: 2.",
            "maximum" : 100,
            "minimum" : 0
          },
          "additionalPercent" : {
            "type" : "number",
            "description" : "Additional percent. Value must be set to 0 if tax card type is set to TAX_AT_SOURCE. Scale: 2.",
            "maximum" : 100,
            "minimum" : 0
          },
          "annualIncomeLimit" : {
            "type" : "number",
            "description" : "Annual income limit. Value must be set to 0 if tax card type is set to TAX_AT_SOURCE. Scale: 2.",
            "maximum" : 999999999.99,
            "minimum" : 0
          },
          "limitUsed" : {
            "type" : "number",
            "description" : "Limit used. Value must be set to 0 if tax card type is set to TAX_AT_SOURCE. Scale: 2.",
            "maximum" : 999999999.99,
            "minimum" : 0
          },
          "comments" : {
            "type" : "string",
            "description" : "Comments.",
            "maxLength" : 80,
            "minLength" : 0
          },
          "created" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Creation timestamp.",
            "readOnly" : true
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Version. Not allowed in POST. Required in PUT."
          }
        },
        "required" : [ "additionalPercent", "annualIncomeLimit", "basePercent", "revised", "type", "validFrom" ]
      },
      "TrackingPeriod" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier of the tracking period."
          },
          "startDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Start date of the tracking period."
          },
          "endDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "End date of the tracking period."
          },
          "status" : {
            "type" : "string",
            "description" : "Status of the tracking period.",
            "enum" : [ "CLOSED", "OPEN", "PENDING" ]
          },
          "modified" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Time of last edition of tracking period."
          }
        },
        "required" : [ "status" ]
      },
      "Transaction" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Unique identifier for the ledger transaction. Automatically generated by Procountor and present in the object returned.",
            "readOnly" : true
          },
          "transactionType" : {
            "type" : "string",
            "description" : "Transaction type. Depends on the transaction and the ledger account in question. Type REVERSING_ENTRY is used to indicate the first row of a ledger receipt for a specific logic on the UI. Typically, it represents a transaction for a balance sheet account. Note that ledger receipts with no transactions marked as reversing entries are possible.  Type ENTRY is the general type for transactions. It can be used even on the first rows of ledger receipts. Type RECONCILIATION_ENTRY is used for getting the sum of transactions on a receipt to reconcile (to equal zero). Generally, all ledger receipts should reconcile. Procountor can create reconciliation entries automatically  for ledger receipts when \"createReconciliation=true\" query parameter is specified.  If VAT is used, a reconciliation row might be necessary due to remainders and rounding.  For both REVERSING_ENTRY and RECONCILIATION_ENTRY transactions, vatStatus cannot be defined and vatPercent must be 0.  Additionally, a ledger can have maximum of one REVERSING_ENTRY and maximum of one RECONCILIATION_ENTRY transaction.  Transactions of these types cannot be removed from a ledger receipt using UI once created.",
            "enum" : [ "ENTRY", "RECONCILIATION_ENTRY", "REVERSING_ENTRY" ]
          },
          "account" : {
            "type" : "string",
            "description" : "Ledger account number for the transaction. Must be valid for the current Procountor environment. Use GET /coa to obtain the chart of accounts.",
            "minLength" : 1
          },
          "accountingValue" : {
            "type" : "number",
            "description" : "Transaction accounting value. This value is net. It will be automatically rounded up to scale 2."
          },
          "vatPercent" : {
            "type" : "number",
            "description" : "Transaction VAT percentage. Must be a percentage currently in use for the company."
          },
          "vatType" : {
            "type" : "string",
            "description" : "Transaction VAT type.",
            "enum" : [ "PURCHASE", "SALES" ]
          },
          "vatStatus" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Transaction VAT status. This overrides the VAT status set for the parent ledger receipt. Use here the numeric parts of VAT status codes listed in \"VAT defaults\" in Procountor. For example, for VAT status code \"vat_12\", use value 12. The VAT status used must be enabled for the current receipt type (sales/purchase)."
          },
          "description" : {
            "type" : "string",
            "description" : "Transaction description. Visible on ledger receipt printouts.",
            "maxLength" : 255,
            "minLength" : 0
          },
          "balanceCode" : {
            "type" : "string",
            "description" : "Transaction balance code. Only available if the use balance sheet setting is enabled.",
            "maxLength" : 255,
            "minLength" : 0
          },
          "allocations" : {
            "type" : "array",
            "description" : "List of allocation ids related to the transaction.",
            "items" : {
              "type" : "integer",
              "format" : "int32"
            },
            "readOnly" : true
          },
          "partnerId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Technical ID for the partner. Can be provided in Norwegian environments only. The given partner id must match a partner of type different than PERSON, existing in the current Procountor environment."
          },
          "dimensionItemValues" : {
            "type" : "array",
            "description" : "Values of dimension items associated with this transaction. The number of provided dimension items must be within the dimension max count defined by the purchased Procountor license. Provided dimension pairs (dimension id - item id) must be unique within the list provided.",
            "items" : {
              "$ref" : "#/components/schemas/DimensionItemValue"
            }
          },
          "vatDeductionPercent" : {
            "type" : "number",
            "description" : "VAT deduction percentage for the transaction."
          },
          "startDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Start date of accrual/delivery periods of transaction."
          },
          "endDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "End date of accrual/delivery periods of transaction."
          }
        },
        "required" : [ "account", "accountingValue", "transactionType", "vatPercent" ]
      },
      "TransactionIdentifier" : {
        "type" : "object",
        "properties" : {
          "transactionIdentifier" : {
            "type" : "string",
            "description" : "Value of 2-factor transaction identifier."
          },
          "confirmationApp" : {
            "type" : "string",
            "description" : "Multifactor authentication confirmation handler application."
          }
        }
      },
      "TransferNotification" : {
        "type" : "object",
        "properties" : {
          "lang" : {
            "type" : "string",
            "description" : "Transfer notification language.",
            "enum" : [ "ENGLISH", "FINNISH", "SWEDISH", "ESTONIAN" ]
          },
          "notification" : {
            "type" : "string",
            "description" : "Transfer notification message.",
            "maxLength" : 1000,
            "minLength" : 0
          }
        },
        "required" : [ "lang", "notification" ]
      },
      "TravelAndExpensesRights" : {
        "type" : "object",
        "properties" : {
          "travelAndExpenseInvoices" : {
            "type" : "string",
            "description" : "Access level to travel and expense invoices functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "travelAndExpenseInvoiceSearch" : {
            "type" : "string",
            "description" : "Access level to travel and expense invoice search functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "personalTravelAndExpenseInvoiceOnly" : {
            "type" : "boolean",
            "description" : "Is personal travel and expense invoices only limitation enabled."
          }
        }
      },
      "TravelInformationItem" : {
        "type" : "object",
        "properties" : {
          "departure" : {
            "type" : "string",
            "description" : "Travel departure date. Free text.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "arrival" : {
            "type" : "string",
            "description" : "Travel return date. Free text.",
            "maxLength" : 40,
            "minLength" : 0
          },
          "places" : {
            "type" : "string",
            "description" : "Travel destinations. Free text.",
            "maxLength" : 255,
            "minLength" : 0
          },
          "purpose" : {
            "type" : "string",
            "description" : "Travel purpose. Free text.",
            "maxLength" : 255,
            "minLength" : 0
          }
        }
      },
      "User" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "User ID of this user.",
            "readOnly" : true
          },
          "username" : {
            "type" : "string",
            "description" : "The username of this user. This is the username used to log in to Procountor.",
            "readOnly" : true
          },
          "companyId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Identifier for the company this user is logged into. NOTE! This field can also be found in /company endpoint, and that is the recommended way to use it. This field will be deprecated and removed from this endpoint at some point in the future.",
            "readOnly" : true
          },
          "countryCode" : {
            "type" : "string",
            "description" : "Country code of current company environment. NOTE! This field can also be found in /company endpoint, and that is the recommended way to use it. This field will be deprecated and removed from this endpoint at some point in the future.",
            "enum" : [ "AFGHANISTAN", "ALAND_ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN_SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA_AND_BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION_AND_TRISTAN_DA_CUNHA_SAINT_HELENA", "AUSTRALIA", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVARIAN_REPUBLIC_OF_VENEZUELA", "BOSNIA_AND_HERZEGOVINA", "BOTSWANA", "BOUVET_ISLAND", "BRAZIL", "BRITISH_INDIAN_OCEAN_TERRITORY", "BRITISH_VIRGIN_ISLANDS", "BRUNEI_DARUSSALAM", "BULGARIA", "BURKINA_FASO", "BURUNDI", "CABO_VERDE", "CAMBODIA", "CAMEROON", "CANADA", "CAYMAN_ISLANDS", "CENTRAL_AFRICAN_REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS_ISLAND", "COCOS_KEELING_ISLANDS", "COLOMBIA", "COMOROS", "CONGO", "COOK_ISLANDS", "COSTA_RICA", "COTE_D_IVOIRE", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH_REPUBLIC", "DEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN_REPUBLIC", "ECUADOR", "EGYPT", "EL_SALVADOR", "EQUATORIAL_GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND_ISLANDS_MALVINAS", "FAROE_ISLANDS", "FEDERATED_STATES_OF_MICRONESIA", "FIJI", "FINLAND", "FRANCE", "FRENCH_GUIANA", "FRENCH_POLYNESIA", "FRENCH_SOUTHERN_TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA_BISSAU", "GUYANA", "HAITI", "HEARD_ISLAND_AND_MCDONALD_ISLANDS", "HOLY_SEE_VATICAN_CITY_STATE", "HONDURAS", "HONG_KONG", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAQ", "IRELAND", "ISLAMIC_REPUBLIC_OF_IRAN", "ISLE_OF_MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JERSEY", "JORDAN", "KAZAKHSTAN", "KENYA", "KIRIBATI", "KOSOVO_TEMPORARY", "KUWAIT", "KYRGYZSTAN", "LAO_PEOPLE_S_DEMOCRATIC_REPUBLIC", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAO", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL_ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "MYANMAR", "NAMIBIA", "NAURU", "NEPAL", "NETHERLANDS", "NEW_CALEDONIA", "NEW_ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK_ISLAND", "NORTHERN_IRELAND_TEMPORARY", "NORTHERN_MARIANA_ISLANDS", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PANAMA", "PAPUA_NEW_GUINEA", "PARAGUAY", "PERU", "PHILIPPINES", "PITCAIRN", "PLURINATIONAL_STATE_OF_BOLIVIA", "POLAND", "PORTUGAL", "PROVINCE_OF_CHINA_TAIWAN", "PUERTO_RICO", "QATAR", "REPUBLIC_OF_KOREA", "REPUBLIC_OF_MOLDOVA", "REUNION", "ROMANIA", "RUSSIAN_FEDERATION", "RWANDA", "SAINT_BARTHELEMY", "SAINT_KITTS_AND_NEVIS", "SAINT_LUCIA", "SAINT_MARTIN_FRENCH_PART", "SAINT_PIERRE_AND_MIQUELON", "SAINT_VINCENT_AND_THE_GRENADINES", "SAMOA", "SAN_MARINO", "SAO_TOME_AND_PRINCIPE", "SAUDI_ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA_LEONE", "SINGAPORE", "SINT_EUSTATIUS_AND_SABA_BONAIRE", "SINT_MAARTEN_DUTCH_PART", "SLOVAKIA", "SLOVENIA", "SOLOMON_ISLANDS", "SOMALIA", "SOUTH_AFRICA", "SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS", "SOUTH_SUDAN", "SPAIN", "SRI_LANKA", "STATE_OF_PALESTINE", "SUDAN", "SURINAME", "SVALBARD_AND_JAN_MAYEN", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIAN_ARAB_REPUBLIC", "TAJIKISTAN", "THAILAND", "THE_DEMOCRATIC_REPUBLIC_OF_THE_CONGO", "THE_FORMER_YUGOSLAV_REPUBLIC_OF_MACEDONIA", "TIMOR_LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD_AND_TOBAGO", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS_AND_CAICOS_ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED_ARAB_EMIRATES", "UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND", "UNITED_REPUBLIC_OF_TANZANIA", "UNITED_STATES_MINOR_OUTLYING_ISLANDS", "UNITED_STATES_OF_AMERICA", "URUGUAY", "UZBEKISTAN", "U_S_VIRGIN_ISLANDS", "VANUATU", "VIET_NAM", "WALLIS_AND_FUTUNA", "WESTERN_SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE" ],
            "examples" : [ "FINLAND" ],
            "readOnly" : true
          },
          "street" : {
            "type" : "string",
            "description" : "Street",
            "maxLength" : 80,
            "minLength" : 0
          },
          "zip" : {
            "type" : "string",
            "description" : "Zip",
            "maxLength" : 8,
            "minLength" : 0
          },
          "city" : {
            "type" : "string",
            "description" : "City",
            "maxLength" : 80,
            "minLength" : 0
          },
          "partnerId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Business partner ID of the current user.",
            "readOnly" : true
          },
          "loginMethod" : {
            "type" : "string",
            "description" : "Indicates the login method chosen by the user.",
            "enum" : [ "FINAGO_KEY", "PASSWORDLIST", "PROCOUNTOR_KEY" ],
            "readOnly" : true
          },
          "firstName" : {
            "type" : "string",
            "description" : "The first name of the user.",
            "maxLength" : 80,
            "minLength" : 1
          },
          "lastName" : {
            "type" : "string",
            "description" : "The last name of the user.",
            "maxLength" : 80,
            "minLength" : 1
          },
          "email" : {
            "type" : "string",
            "description" : "The email address of the user.",
            "maxLength" : 2147483647,
            "minLength" : 1
          },
          "mobilePhone" : {
            "type" : "string",
            "description" : "The mobile phone number of the user."
          },
          "secondaryPhone" : {
            "type" : "string",
            "description" : "The secondary phone number of the user.",
            "maxLength" : 20,
            "minLength" : 0
          },
          "socialSecurityNumber" : {
            "type" : "string",
            "description" : "The social security number of the user."
          }
        },
        "required" : [ "email", "firstName", "lastName", "mobilePhone" ]
      },
      "UserPermissions" : {
        "type" : "object",
        "properties" : {
          "management" : {
            "$ref" : "#/components/schemas/ManagementRights",
            "description" : "Contains rights for management functionalities."
          },
          "user" : {
            "$ref" : "#/components/schemas/UserRights",
            "description" : "Contains rights for user functionalities."
          },
          "sales" : {
            "$ref" : "#/components/schemas/SalesRights",
            "description" : "Contains rights for sales functionalities."
          },
          "purchases" : {
            "$ref" : "#/components/schemas/PurchasesRights",
            "description" : "Contains rights for purchases functionalities."
          },
          "travelAndExpenses" : {
            "$ref" : "#/components/schemas/TravelAndExpensesRights",
            "description" : "Contains rights for travel and expenses functionalities."
          },
          "invoiceCirculation" : {
            "$ref" : "#/components/schemas/InvoiceCirculationRights",
            "description" : "Contains rights for invoice circulation functionalities."
          },
          "salaries" : {
            "$ref" : "#/components/schemas/SalariesRights",
            "description" : "Contains rights for salaries functionalities."
          },
          "payments" : {
            "$ref" : "#/components/schemas/PaymentRights",
            "description" : "Contains rights for payment transactions functionalities."
          },
          "accounting" : {
            "$ref" : "#/components/schemas/AccountingRights",
            "description" : "Contains rights for accounting functionalities."
          }
        }
      },
      "UserPrivileges" : {
        "type" : "object",
        "properties" : {
          "role" : {
            "type" : "string",
            "description" : "Role of a current user"
          },
          "rights" : {
            "$ref" : "#/components/schemas/UserPermissions",
            "description" : "User rights in environment"
          }
        }
      },
      "UserProfile" : {
        "type" : "object",
        "properties" : {
          "firstname" : {
            "type" : "string",
            "description" : "First name of the user."
          },
          "surname" : {
            "type" : "string",
            "description" : "Surname (last name) of the user."
          }
        }
      },
      "UserRights" : {
        "type" : "object",
        "properties" : {
          "editPersonalInfo" : {
            "type" : "string",
            "description" : "Access level to edit personal info functionality.",
            "enum" : [ "ALL_RIGHTS", "NOT_ENABLED", "NO_ACCESS", "VIEWING_RIGHTS" ]
          },
          "limitedDimensions" : {
            "type" : "boolean",
            "description" : "Is limited dimensions limitation enabled."
          },
          "blockSoloLoginToProcountor" : {
            "type" : "boolean",
            "description" : "Is login limitation enabled."
          }
        }
      },
      "VatCountryInfo" : {
        "type" : "object",
        "properties" : {
          "country" : {
            "type" : "string",
            "description" : "VAT country name",
            "examples" : [ "Finland" ]
          },
          "percentages" : {
            "type" : "array",
            "description" : "List of VAT percentages",
            "items" : {
              "$ref" : "#/components/schemas/VatInfo"
            }
          }
        }
      },
      "VatInfo" : {
        "type" : "object",
        "properties" : {
          "vatPercent" : {
            "type" : "number",
            "format" : "double",
            "description" : "VAT percentage value"
          },
          "sales" : {
            "type" : "boolean",
            "description" : "Is VAT percentage allowed for sales"
          },
          "purchase" : {
            "type" : "boolean",
            "description" : "Is VAT percentage allowed for purchase"
          }
        }
      },
      "VatInformation" : {
        "type" : "object",
        "properties" : {
          "vatInformation" : {
            "type" : "array",
            "description" : "List of available VATs in different countries.",
            "items" : {
              "$ref" : "#/components/schemas/VatCountryInfo"
            }
          },
          "vatStatuses" : {
            "type" : "array",
            "description" : "List of available VAT statuses.",
            "items" : {
              "$ref" : "#/components/schemas/VatStatusInfo"
            }
          }
        }
      },
      "VatPercentages" : {
        "type" : "object",
        "properties" : {
          "vatPercentages" : {
            "type" : "array",
            "description" : "List of available VAT percentages.",
            "items" : {
              "type" : "number",
              "format" : "double"
            }
          }
        }
      },
      "VatSettings" : {
        "type" : "object",
        "properties" : {
          "unitPricesIncludeVatSales" : {
            "type" : "boolean"
          },
          "unitPricesIncludeVatPurchase" : {
            "type" : "boolean"
          }
        }
      },
      "VatStatusInfo" : {
        "type" : "object",
        "properties" : {
          "vatStatus" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "VAT status ID"
          },
          "description" : {
            "type" : "string",
            "description" : "VAT status description"
          },
          "sales" : {
            "type" : "boolean",
            "description" : "Is VAT status allowed for sales"
          },
          "purchase" : {
            "type" : "boolean",
            "description" : "Is VAT status allowed for purchase"
          }
        }
      },
      "Verifier" : {
        "type" : "object",
        "properties" : {
          "firstname" : {
            "type" : "string",
            "description" : "First name of the user."
          },
          "surname" : {
            "type" : "string",
            "description" : "Surname (last name) of the user."
          },
          "userId" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Id of the user."
          },
          "orderNo" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Order number of the verifier."
          }
        }
      },
      "VerifierList" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Id of the verifier list."
          },
          "name" : {
            "type" : "string",
            "description" : "Name the verifier list."
          },
          "verifiers" : {
            "type" : "array",
            "description" : "List of verifiers.",
            "items" : {
              "$ref" : "#/components/schemas/Verifier"
            }
          },
          "acceptors" : {
            "type" : "array",
            "description" : "List of acceptors.",
            "items" : {
              "$ref" : "#/components/schemas/Verifier"
            }
          }
        }
      },
      "VerifierListBasic" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Id of the verifier list."
          },
          "name" : {
            "type" : "string",
            "description" : "Name the verifier list."
          },
          "verifiers" : {
            "type" : "array",
            "description" : "List of user ids set as verifier.",
            "items" : {
              "type" : "integer",
              "format" : "int32"
            }
          },
          "acceptors" : {
            "type" : "array",
            "description" : "List of user ids set as acceptor.",
            "items" : {
              "type" : "integer",
              "format" : "int32"
            }
          }
        }
      },
      "Webhook" : {
        "type" : "object",
        "properties" : {
          "uuid" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Generated webhook UUID.",
            "readOnly" : true
          },
          "url" : {
            "type" : "string",
            "format" : "url",
            "description" : "Provided URL, for receiving notifications."
          },
          "authenticationType" : {
            "type" : "string",
            "description" : "Webhook's authentication type.",
            "enum" : [ "HMAC", "NONE" ]
          },
          "authenticationMeta" : {
            "type" : "object",
            "additionalProperties" : { },
            "description" : "Webhook's authentication meta."
          },
          "subscriptions" : {
            "type" : "array",
            "description" : "Collection of subscribed event types.",
            "items" : {
              "type" : "string",
              "enum" : [ "DIRECTBANKDATATRANSFER_PAYMENT_CREATED", "DIRECT_SALARY_PAYMENTS_CANCELED", "DIRECT_SALARY_PAYMENTS_CREATED", "INVOICE_PAYMENTEVENTS_DELETED", "INVOICE_PAYMENT_CREATED", "PAYMENT_DELETED", "PAYMENT_UPDATED", "TRACKING_PERIOD_STATUS_UPDATED", "USER_UPDATED" ]
            },
            "minItems" : 1
          }
        },
        "required" : [ "authenticationType", "subscriptions", "url" ]
      },
      "WebhookSearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "Search results.",
            "items" : {
              "$ref" : "#/components/schemas/Webhook"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/SearchResultMetaData",
            "description" : "Search result metadata."
          }
        }
      },
      "WorkHours" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Unique identifier of work hours.",
            "readOnly" : true
          },
          "monthly" : {
            "type" : "number",
            "description" : "Work hours per month."
          },
          "weekly" : {
            "type" : "number",
            "description" : "Work hours per week."
          },
          "version" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Version."
          }
        }
      },
      "WorkingHourReduction" : {
        "type" : "object",
        "properties" : {
          "startDate" : {
            "type" : "string",
            "format" : "date",
            "description" : "Working hour reduction usage start date."
          },
          "totalRemainingWorkingHourReductionHours" : {
            "type" : "number",
            "description" : "Total remaining working hour reduction hours."
          },
          "totalRemainingWorkingHourReductionDays" : {
            "type" : "number",
            "description" : "Total remaining working hour reduction days."
          }
        }
      },
      "WorkingHourReductionPayData" : {
        "type" : "object",
        "properties" : {
          "workingHourReductionDays" : {
            "type" : "number",
            "description" : "Number of working hour reduction days to create working hour reduction row.",
            "minimum" : 0.5
          },
          "workingHourReductionHours" : {
            "type" : "number",
            "description" : "Number of working hour reduction hours to create working hour reduction row.",
            "minimum" : 0.00001
          }
        }
      },
      "WorkingHourReductionRowDetails" : {
        "type" : "object",
        "properties" : {
          "year" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Year.",
            "readOnly" : true
          }
        }
      },
      "WorkingHourReductionWorkingTimeAllocation" : {
        "type" : "object",
        "properties" : {
          "workingDaysInFirstYear" : {
            "type" : "number",
            "description" : "Working days in first year.",
            "maximum" : 500,
            "minimum" : -500
          },
          "workingDaysInSecondYear" : {
            "type" : "number",
            "description" : "Working days in second year. Only if salary slip payment period covers two years.",
            "maximum" : 500,
            "minimum" : -500
          }
        },
        "required" : [ "workingDaysInFirstYear" ]
      },
      "YearlyFigures" : {
        "type" : "object",
        "properties" : {
          "year" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Year."
          },
          "paidSalariesSum" : {
            "type" : "number",
            "description" : "Salaries paid during year."
          },
          "pensionInsuranceContributionPercent" : {
            "type" : "number",
            "description" : "Employer's Employees' Pension Act contribution percent."
          },
          "unemploymentInsurancePercentBasic" : {
            "type" : "number",
            "description" : "Unemployment insurance payment base percent."
          },
          "unemploymentInsurancePercentAdditional" : {
            "type" : "number",
            "description" : "Unemployment insurance payment additional percent."
          },
          "accidentInsurancePercent" : {
            "type" : "number",
            "description" : "Occupational accident insurance percent."
          },
          "groupLifeInsurancePercent" : {
            "type" : "number",
            "description" : "Group life insurance charge percent."
          },
          "healthCareInsurancePercent" : {
            "type" : "number",
            "description" : "Health care insurance contribution percent."
          }
        }
      }
    },
    "securitySchemes" : {
      "bearerAuth" : {
        "type" : "http",
        "scheme" : "bearer"
      }
    }
  }
}