{
  "openapi": "3.0.4",
  "info": {
    "title": "Vsp.PayrollComponent",
    "description": "## Introduction\n\n### 1. Payroll Period Data (NL: VariabeleGegevens)\nSmart Paste on Payroll Period Data for automated processing of clipboard data (text or files) to create payroll period data entries.<br/>\nManages variable payroll data for employees during specific payroll periods (future<sup>*</sup>).\n\n---\n\n### 2. Benefits and Deductions (NL: Toeslagen) (future<sup>*</sup>)\nHandles employee benefits and deductions (such as allowances, bonuses, or other payroll adjustments).\n\n---\n\n### 3. Payroll Component Sets (NL: LooncomponentSet) (future<sup>*</sup>)\nManages sets of payroll components used within payroll administrations.\n\n---\n\n### 4. Provider Payroll Component Sets (NL: ProviderLooncomponentSet) (future<sup>*</sup>)\nManages payroll component sets at the provider level (across multiple employers).\n\n---\n_* Will become available in future releases_",
    "version": "v1"
  },
  "servers": [
    {
      "url": "/payrollcomponent"
    }
  ],
  "paths": {
    "/payrolladministrations/years/{yearId}/attachmentofearningspayrollcomponents": {
      "get": {
        "tags": [
          "Attachment Of Earnings Payroll Component"
        ],
        "summary": "List of attachments of earnings payroll component",
        "description": "**Activity names**:\n   - `GetAttachmentOfEarningsPayrollComponentsByPayrollAdministrationYearId`\nRetrieves the list of entities on the given year of a PA inheritance level.",
        "parameters": [
          {
            "name": "yearId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.ListResult`1[[Vsp.PayrollComponent.Domain.AttachmentOfEarningsPayrollComponent.Models.AttachmentOfEarningsPayrollComponentModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.ListResult`1[[Vsp.PayrollComponent.Domain.AttachmentOfEarningsPayrollComponent.Models.AttachmentOfEarningsPayrollComponentModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.ListResult`1[[Vsp.PayrollComponent.Domain.AttachmentOfEarningsPayrollComponent.Models.AttachmentOfEarningsPayrollComponentModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.ListResult`1[[Vsp.PayrollComponent.Domain.AttachmentOfEarningsPayrollComponent.Models.AttachmentOfEarningsPayrollComponentModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.ListResult`1[[Vsp.PayrollComponent.Domain.AttachmentOfEarningsPayrollComponent.Models.AttachmentOfEarningsPayrollComponentModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.ApiBase.OpenApi.Examples.BadRequestListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.ApiBase.OpenApi.Examples.UnauthorizedResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.ApiBase.OpenApi.Examples.ForbiddenResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "patch": {
        "tags": [
          "Attachment Of Earnings Payroll Component"
        ],
        "summary": "Edit an attachment of earnings payroll component",
        "description": "**Activity names**:\n   - `PatchAttachmentOfEarningsPayrollComponentsByPayrollAdministrationYearId`\nModifies an existing entity with the given id – defined on a PA inheritance level.\n\n`!!! UNDER CONSTRUCTION !!!`",
        "parameters": [
          {
            "name": "yearId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.AttachmentOfEarningsPayrollComponent.Models.AttachmentOfEarningsPayrollComponentPatchInnerModel"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.ListResult`1[[Vsp.PayrollComponent.Domain.AttachmentOfEarningsPayrollComponent.Models.AttachmentOfEarningsPayrollComponentModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.ListResult`1[[Vsp.PayrollComponent.Domain.AttachmentOfEarningsPayrollComponent.Models.AttachmentOfEarningsPayrollComponentModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.ListResult`1[[Vsp.PayrollComponent.Domain.AttachmentOfEarningsPayrollComponent.Models.AttachmentOfEarningsPayrollComponentModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.ListResult`1[[Vsp.PayrollComponent.Domain.AttachmentOfEarningsPayrollComponent.Models.AttachmentOfEarningsPayrollComponentModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.ListResult`1[[Vsp.PayrollComponent.Domain.AttachmentOfEarningsPayrollComponent.Models.AttachmentOfEarningsPayrollComponentModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.ApiBase.OpenApi.Examples.BadRequestDetailResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.ApiBase.OpenApi.Examples.UnauthorizedResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.ApiBase.OpenApi.Examples.ForbiddenResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/providers/employers/payrolladministrations/{payrollAdministrationId}/payrollperioddatareport": {
      "get": {
        "tags": [
          "PayrollPeriodDataExport"
        ],
        "parameters": [
          {
            "name": "payrollAdministrationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "payrollPeriodId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.ListResult`1[[Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.PayrollPeriodData.PayrollPeriodDataModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.ListResult`1[[Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.PayrollPeriodData.PayrollPeriodDataModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.ListResult`1[[Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.PayrollPeriodData.PayrollPeriodDataModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.ListResult`1[[Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.PayrollPeriodData.PayrollPeriodDataModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.ListResult`1[[Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.PayrollPeriodData.PayrollPeriodDataModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          }
        }
      }
    },
    "/providers/employers/payrolladministrations/payrollperiods/payrollperioddata/smartpaste/{smartPasteId}": {
      "get": {
        "tags": [
          "Smart Paste Payroll Period Data"
        ],
        "summary": "Results of Smart Paste",
        "description": "**Activity name**:\n  - `GetPayrollPeriodDataSmartPasteResultsBySmartPasteId`\n\nRetrieves the results of a Smart Paste by Smart Paste ID and employer ID.",
        "parameters": [
          {
            "name": "smartPasteId",
            "in": "path",
            "description": "The unique identifier of the SmartPaste operation.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "example": "e94fe740-f155-4f91-b947-0f9775cbd59a"
          },
          {
            "name": "employerId",
            "in": "query",
            "description": "The unique identifier of the employer.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "example": "0d5327ae-0298-49ae-93b7-19cc9d2acb2f"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.DetailResult`1[[Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.SmartPasteResultModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.DetailResult`1[[Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.SmartPasteResultModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.DetailResult`1[[Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.SmartPasteResultModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.ApiBase.OpenApi.Examples.BadRequestDetailResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.ApiBase.OpenApi.Examples.UnauthorizedResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.ApiBase.OpenApi.Examples.ForbiddenResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/providers/employers/payrolladministrations/{payrollAdministrationId}/payrollperiods/{payrollPeriodId}/payrollperioddata/smartpaste": {
      "post": {
        "tags": [
          "Smart Paste Payroll Period Data"
        ],
        "summary": "Initiate Smart Paste",
        "description": "**Activity name**:\n  - `PostInitiateSmartPasteByPayrollAdministrationIdAndPayrollPeriodId`\n\nInitiates a new SmartPaste operation for a specific payroll administration and period.\nAccepts clipboard data (text or files) along with payroll data and context.\n<details>\n   <summary>Validation errors</summary>\n   <ul>\n     <li>\n         <code>API_PayrollComponent_SmartPastePayrollPeriodData_BothClipboardTextAndClipboardFilesEmpty</code><br/>\n         Either ClipboardText must have a value or ClipboardFiles must contain at least one file.\n     </li>\n     <li>\n         <code>API_PayrollComponent_SmartPastePayrollPeriodData_Insert_Exception</code><br/>\n         Exception occurred inserting SmartPaste PayrollPeriodData.\n     </li>\n   </ul>\n</details>",
        "parameters": [
          {
            "name": "payrollAdministrationId",
            "in": "path",
            "description": "The unique identifier of the payroll administration.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "example": "7ac37672-e04b-48bc-95ce-c6ace069f150"
          },
          {
            "name": "payrollPeriodId",
            "in": "path",
            "description": "The identifier of the payroll period.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 202501
          }
        ],
        "requestBody": {
          "description": "The SmartPaste initialization data including context, payroll data, and clipboard content.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.InitiateSmartPastePostModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.InitiateSmartPastePostModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.InitiateSmartPastePostModel"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.DetailResult`1[[Vsp.SystemNotifications.Models.TransactionInitiatedResult, Vsp.SystemNotifications, Version=9.1.2.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.DetailResult`1[[Vsp.SystemNotifications.Models.TransactionInitiatedResult, Vsp.SystemNotifications, Version=9.1.2.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.Infrastructure.DetailResult`1[[Vsp.SystemNotifications.Models.TransactionInitiatedResult, Vsp.SystemNotifications, Version=9.1.2.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.ApiBase.OpenApi.Examples.BadRequestDetailResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.ApiBase.OpenApi.Examples.UnauthorizedResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vsp.ApiBase.OpenApi.Examples.ForbiddenResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Vsp.ApiBase.OpenApi.Examples.BadRequestDetailResponse": {
        "type": "object",
        "properties": {
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Vsp.ApiBase.OpenApi.Examples.BadRequestOperationMessage"
            },
            "nullable": true
          },
          "content": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "version": {
            "$ref": "#/components/schemas/Vsp.Infrastructure.ResourceVersionModel"
          }
        },
        "additionalProperties": false
      },
      "Vsp.ApiBase.OpenApi.Examples.BadRequestListResponse": {
        "type": "object",
        "properties": {
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Vsp.ApiBase.OpenApi.Examples.BadRequestOperationMessage"
            },
            "nullable": true
          },
          "_embedded": {
            "type": "array",
            "items": { },
            "nullable": true
          },
          "totalSize": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "currentPage": {
            "type": "integer",
            "format": "int32"
          },
          "version": {
            "$ref": "#/components/schemas/Vsp.Infrastructure.ResourceVersionModel"
          }
        },
        "additionalProperties": false
      },
      "Vsp.ApiBase.OpenApi.Examples.BadRequestOperationMessage": {
        "type": "object",
        "properties": {
          "messageCode": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "properties": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Vsp.ApiBase.OpenApi.Examples.ForbiddenResponse": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "nullable": true
          },
          "errorCode": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Vsp.ApiBase.OpenApi.Examples.UnauthorizedResponse": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Vsp.Infrastructure.DetailResult`1[[Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.SmartPasteResultModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": {
        "type": "object",
        "properties": {
          "version": {
            "$ref": "#/components/schemas/Vsp.Infrastructure.ResourceVersionModel"
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Vsp.Infrastructure.OperationMessage"
            },
            "nullable": true
          },
          "content": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.SmartPasteResultModel"
          }
        },
        "additionalProperties": false
      },
      "Vsp.Infrastructure.DetailResult`1[[Vsp.SystemNotifications.Models.TransactionInitiatedResult, Vsp.SystemNotifications, Version=9.1.2.0, Culture=neutral, PublicKeyToken=null]]": {
        "type": "object",
        "properties": {
          "version": {
            "$ref": "#/components/schemas/Vsp.Infrastructure.ResourceVersionModel"
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Vsp.Infrastructure.OperationMessage"
            },
            "nullable": true
          },
          "content": {
            "$ref": "#/components/schemas/Vsp.SystemNotifications.Models.TransactionInitiatedResult"
          }
        },
        "additionalProperties": false
      },
      "Vsp.Infrastructure.ListResult`1[[Vsp.PayrollComponent.Domain.AttachmentOfEarningsPayrollComponent.Models.AttachmentOfEarningsPayrollComponentModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": {
        "type": "object",
        "properties": {
          "totalSize": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "currentPage": {
            "type": "integer",
            "format": "int32"
          },
          "version": {
            "$ref": "#/components/schemas/Vsp.Infrastructure.ResourceVersionModel"
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Vsp.Infrastructure.OperationMessage"
            },
            "nullable": true
          },
          "_embedded": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.AttachmentOfEarningsPayrollComponent.Models.AttachmentOfEarningsPayrollComponentModel"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Vsp.Infrastructure.ListResult`1[[Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.PayrollPeriodData.PayrollPeriodDataModel, Vsp.PayrollComponent.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": {
        "type": "object",
        "properties": {
          "totalSize": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "currentPage": {
            "type": "integer",
            "format": "int32"
          },
          "version": {
            "$ref": "#/components/schemas/Vsp.Infrastructure.ResourceVersionModel"
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Vsp.Infrastructure.OperationMessage"
            },
            "nullable": true
          },
          "_embedded": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.PayrollPeriodData.PayrollPeriodDataModel"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Vsp.Infrastructure.OperationMessage": {
        "type": "object",
        "properties": {
          "messageCode": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "properties": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Vsp.Infrastructure.ResourceVersionModel": {
        "type": "object",
        "properties": {
          "obsoleteDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "resourceVersion": {
            "type": "string",
            "format": "date"
          }
        },
        "additionalProperties": false
      },
      "Vsp.PayrollComponent.Domain.AttachmentOfEarningsPayrollComponent.Models.AttachmentOfEarningsPayrollComponentModel": {
        "type": "object",
        "properties": {
          "payrollComponent": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.Shared.Models.PayrollComponentMinimizedModel"
          },
          "isExempt": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Vsp.PayrollComponent.Domain.AttachmentOfEarningsPayrollComponent.Models.AttachmentOfEarningsPayrollComponentPatchInnerModel": {
        "required": [
          "isExempt",
          "payrollComponent"
        ],
        "type": "object",
        "properties": {
          "payrollComponent": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.Shared.Models.KeyModel"
          },
          "isExempt": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.PayrollPeriodData.PayrollPeriodDataModel": {
        "type": "object",
        "properties": {
          "employerId": {
            "type": "integer",
            "format": "int32"
          },
          "employerName": {
            "type": "string",
            "nullable": true
          },
          "clientNumber": {
            "type": "integer",
            "format": "int32"
          },
          "employeeNumber": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "payrollEmployeeNumber": {
            "type": "integer",
            "format": "int32"
          },
          "year": {
            "type": "integer",
            "format": "int32"
          },
          "period": {
            "type": "integer",
            "format": "int32"
          },
          "payrollPeriodDescription": {
            "type": "string",
            "nullable": true
          },
          "distributionUnitId": {
            "type": "integer",
            "format": "int32"
          },
          "distributionUnitDescription": {
            "type": "string",
            "nullable": true
          },
          "shiftId": {
            "type": "integer",
            "format": "int32"
          },
          "shiftDescription": {
            "type": "string",
            "nullable": true
          },
          "payslipTypeCode": {
            "type": "integer",
            "format": "int32"
          },
          "payslipTypeDescription": {
            "type": "string",
            "nullable": true
          },
          "componentId": {
            "type": "integer",
            "format": "int32"
          },
          "componentDescription": {
            "type": "string",
            "nullable": true
          },
          "mutation": {
            "type": "number",
            "format": "double"
          },
          "attributeCode": {
            "type": "integer",
            "format": "int32"
          },
          "attributeDescription": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.ClipboardFilePostModel": {
        "required": [
          "base64Content",
          "mimeType"
        ],
        "type": "object",
        "properties": {
          "base64Content": {
            "type": "string",
            "description": "Base64 encoded string of a screenshot or file from the clipboard.",
            "nullable": true,
            "example": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAAAEklEQVR4nGP8z4APMOGVHbHSAEEsAROxCnMTAAAAAElFTkSuQmCC"
          },
          "mimeType": {
            "type": "string",
            "description": "MIME type which indicates the type of data contained in the base64 encoded string contained in `base64Content`.",
            "nullable": true,
            "example": "image/png"
          }
        },
        "additionalProperties": false,
        "description": "Contents of the clipboard in means of screenshot(s) or copied file(s)."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.ClipboardPostModel": {
        "type": "object",
        "properties": {
          "clipboardText": {
            "type": "string",
            "description": "Contents of the clipboard in text format.",
            "nullable": true,
            "example": "Mark heeft 8 uur gewerkt op 2025-10-07. Boek 4 uur op component YRWN G3WERLT voor Susan diezelfde dag."
          },
          "clipboardFiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.ClipboardFilePostModel"
            },
            "description": "Contents of the clipboard in means of screenshot(s) or copied file(s).",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The contents of the clipboard to be processed.\n\n<strong>Warning</strong>: `clipboardText` and `clipboardFiles` cannot both be empty."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.ContextPostModel": {
        "required": [
          "employerId",
          "payslipType"
        ],
        "type": "object",
        "properties": {
          "employerId": {
            "type": "string",
            "description": "The unique identifier of the employer.",
            "format": "uuid",
            "example": "0d5327ae-0298-49ae-93b7-19cc9d2acb2f"
          },
          "payrollComponentSet": {
            "type": "string",
            "description": "A predefined set of payroll components to filter which payroll components are returned.",
            "format": "uuid",
            "nullable": true,
            "example": "ef6d4fec-9118-4dad-9971-3264c6da4ce0"
          },
          "payrollComponentCategory": {
            "type": "integer",
            "description": "A predefined category of payroll components to filter which payroll components are returned.",
            "format": "int32",
            "nullable": true,
            "example": 8
          },
          "payslipType": {
            "type": "integer",
            "description": "The type of payslip (as defined by the Dutch tax authorities).",
            "format": "int32",
            "example": 1
          },
          "pageNumber": {
            "type": "integer",
            "description": "The page number of the result which is viewed in payroll period browser when initiating a Smart Paste operation.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size of the result which is used in payroll period browser when initiating a Smart Paste operation.",
            "format": "int32",
            "nullable": true,
            "example": 250
          },
          "orderBy": {
            "type": "string",
            "description": "The ordering of the result which is used in payroll period browser when initiating a Smart Paste operation.",
            "nullable": true,
            "example": "employee.formattedName,employment.incomeRelationshipNumber"
          },
          "language": {
            "type": "string",
            "description": "The language which is set in Loket when initiating a Smart Paste operation.",
            "nullable": true,
            "example": "NL"
          }
        },
        "additionalProperties": false,
        "description": "The context in which the Smart Paste operation is executed."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.ContextResultModel": {
        "type": "object",
        "properties": {
          "employerId": {
            "type": "string",
            "description": "The unique identifier of the employer.",
            "format": "uuid",
            "example": "0d5327ae-0298-49ae-93b7-19cc9d2acb2f"
          },
          "payrollAdministrationId": {
            "type": "string",
            "description": "The unique identifier of an administration.",
            "format": "uuid",
            "example": "7ac37672-e04b-48bc-95ce-c6ace069f150"
          },
          "payrollPeriodId": {
            "type": "integer",
            "description": "The unique identifier of the payroll period.",
            "format": "int32",
            "example": 202510
          },
          "payrollComponentSet": {
            "type": "string",
            "description": "A predefined set of payroll components to filter which payroll components are returned.",
            "format": "uuid",
            "nullable": true,
            "example": "ef6d4fec-9118-4dad-9971-3264c6da4ce0"
          },
          "payrollComponentCategory": {
            "type": "integer",
            "description": "A predefined category of payroll components to filter which payroll components are returned.",
            "format": "int32",
            "nullable": true,
            "example": 8
          },
          "payslipType": {
            "type": "integer",
            "description": "The type of payslip (as defined by the Dutch tax authorities).",
            "format": "int32",
            "example": 1
          },
          "pageNumber": {
            "type": "integer",
            "description": "The page number of the result which was viewed in payroll period browser at time of initiation of the Smart Paste operation.",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size of the result which was used in payroll period browser at time of initiation of the Smart Paste operation.",
            "format": "int32",
            "nullable": true,
            "example": 250
          },
          "orderBy": {
            "type": "string",
            "description": "The ordering of the result which was used in payroll period browser at time of initiation of the Smart Paste operation.",
            "nullable": true,
            "example": "employee.formattedName,employment.incomeRelationshipNumber"
          },
          "language": {
            "type": "string",
            "description": "The language which was used at time of initiation of the Smart Paste operation.",
            "nullable": true,
            "example": "NL"
          }
        },
        "additionalProperties": false,
        "description": "The context in which the Smart Paste operation was executed."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.CostCenterPostModel": {
        "required": [
          "code",
          "description",
          "key"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "integer",
            "description": "The cost center identifier.",
            "format": "int32",
            "example": 2
          },
          "code": {
            "type": "string",
            "description": "The cost center code.",
            "nullable": true,
            "example": "SAL073"
          },
          "description": {
            "type": "string",
            "description": "The cost center description.",
            "nullable": true,
            "example": "Sales Den Bosch"
          }
        },
        "additionalProperties": false,
        "description": "The cost center on which the payroll period data for this record will be booked for the ledger."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.CostCenterResultModel": {
        "type": "object",
        "properties": {
          "key": {
            "type": "integer",
            "description": "The cost center identifier.",
            "format": "int32",
            "example": 2
          },
          "code": {
            "type": "string",
            "description": "The cost center code.",
            "nullable": true,
            "example": "SAL073"
          },
          "description": {
            "type": "string",
            "description": "The cost center description.",
            "nullable": true,
            "example": "Sales Den Bosch"
          }
        },
        "additionalProperties": false,
        "description": "The cost center on which the payroll period data for this record will be booked for the ledger."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.CostUnitPostModel": {
        "required": [
          "code",
          "description",
          "key"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "integer",
            "description": "The cost unit identifier.",
            "format": "int32",
            "example": 2
          },
          "code": {
            "type": "string",
            "description": "The cost unit code.",
            "nullable": true,
            "example": "01"
          },
          "description": {
            "type": "string",
            "description": "The cost unit description.",
            "nullable": true,
            "example": "Cars"
          }
        },
        "additionalProperties": false,
        "description": "The cost unit on which the data for this record will be booked for the ledger."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.CostUnitResultModel": {
        "type": "object",
        "properties": {
          "key": {
            "type": "integer",
            "description": "The cost unit identifier.",
            "format": "int32",
            "example": 2
          },
          "code": {
            "type": "string",
            "description": "The cost unit code.",
            "nullable": true,
            "example": "01"
          },
          "description": {
            "type": "string",
            "description": "The cost unit description.",
            "nullable": true,
            "example": "Cars"
          }
        },
        "additionalProperties": false,
        "description": "The cost unit on which the data for this record will be booked for the ledger."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.DistributionUnitPostModel": {
        "required": [
          "code",
          "description",
          "key"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "The unique identifier of the distribution unit.",
            "format": "uuid",
            "example": "03095e3d-c7a9-4d3e-b53c-15d301c71a00"
          },
          "code": {
            "type": "integer",
            "description": "The distribution unit code.",
            "format": "int32",
            "example": 2
          },
          "description": {
            "type": "string",
            "description": "The distribution unit description.",
            "nullable": true,
            "example": "Sales"
          }
        },
        "additionalProperties": false,
        "description": "Distribution unit, used in several reports and the \"basic wage journal\" functionality. Commonly used as a cost center."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.DistributionUnitResultModel": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "The unique identifier of the distribution unit.",
            "format": "uuid",
            "example": "03095e3d-c7a9-4d3e-b53c-15d301c71a00"
          },
          "code": {
            "type": "integer",
            "description": "The distribution unit code.",
            "format": "int32",
            "example": 2
          },
          "description": {
            "type": "string",
            "description": "The distribution unit description.",
            "nullable": true,
            "example": "Sales"
          }
        },
        "additionalProperties": false,
        "description": "Distribution unit, used in several reports and the \"basic wage journal\" functionality. Commonly used as a cost center."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.EmployeePostModel": {
        "required": [
          "employeeNumber",
          "formattedName"
        ],
        "type": "object",
        "properties": {
          "formattedName": {
            "type": "string",
            "description": "Preformatted user name for displaying. Syntax: `<lastname>, <initials> <prefix>`",
            "nullable": true,
            "example": "Jong, I"
          },
          "employeeNumber": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "The employee number to uniquely identify an employee within an employer.",
            "format": "int32",
            "example": 156
          },
          "firstName": {
            "maxLength": 28,
            "minLength": 1,
            "type": "string",
            "description": "The first name, given name, forename or Christian name as part of a persons personal name.",
            "nullable": true,
            "example": "Susan"
          }
        },
        "additionalProperties": false,
        "description": "Employee information."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.EmployeeResultModel": {
        "type": "object",
        "properties": {
          "formattedName": {
            "type": "string",
            "description": "Preformatted user name for displaying. Syntax: `<lastname>, <initials> <prefix>`",
            "nullable": true,
            "example": "Jong, I"
          },
          "employeeNumber": {
            "type": "integer",
            "description": "The employee number to uniquely identify an employee within an employer.",
            "format": "int32",
            "example": 156
          },
          "firstName": {
            "type": "string",
            "description": "The first name, given name, forename or Christian name as part of a persons personal name.",
            "nullable": true,
            "example": "Susan"
          }
        },
        "additionalProperties": false,
        "description": "Employee information."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.EmploymentPostModel": {
        "required": [
          "id",
          "incomeRelationshipNumber",
          "payrollId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the employment.",
            "format": "uuid",
            "example": "645e61a4-353d-4cf8-9bec-e2d24058701a"
          },
          "payrollId": {
            "type": "integer",
            "description": "The payrolling number for this employment of the employee. Used by the payroll engine. This number is automatically generated and cannot be changed by the user.",
            "format": "int32",
            "example": 2
          },
          "incomeRelationshipNumber": {
            "maximum": 9999,
            "minimum": 0,
            "type": "integer",
            "description": "The income relationship number that is required in the tax return. Together with the citizen service number (burgerservicenummer, BSN) and wage tax number, the income relationship number uniquely identifies an employment.",
            "format": "int32",
            "example": 12
          }
        },
        "additionalProperties": false,
        "description": "Employment information."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.EmploymentResultModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the employment.",
            "format": "uuid",
            "example": "645e61a4-353d-4cf8-9bec-e2d24058701a"
          },
          "payrollId": {
            "type": "integer",
            "description": "The payrolling number for this employment of the employee. Used by the payroll engine. This number is automatically generated and cannot be changed by the user.",
            "format": "int32",
            "example": 2
          },
          "incomeRelationshipNumber": {
            "type": "integer",
            "description": "The income relationship number that is required in the tax return. Together with the citizen service number (burgerservicenummer, BSN) and wage tax number, the income relationship number uniquely identifies an employment.",
            "format": "int32",
            "example": 12
          }
        },
        "additionalProperties": false,
        "description": "Employment information."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.InitiateSmartPastePostModel": {
        "required": [
          "clipboard",
          "context",
          "payrollData"
        ],
        "type": "object",
        "properties": {
          "context": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.ContextPostModel"
          },
          "payrollData": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollDataPostModel"
            },
            "description": "The current state of the payroll period browser when initiating a Smart Paste operation. This is the results of endpoint `GetPayrollPeriodDataByPayrollAdministrationIdAndPayrollPeriodId` shown in payroll period browser.",
            "nullable": true
          },
          "clipboard": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.ClipboardPostModel"
          }
        },
        "additionalProperties": false,
        "description": "Smart Paste data to be processed."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollComponentCategoryPostModel": {
        "required": [
          "key",
          "value"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "integer",
            "description": "The category key.",
            "format": "int32",
            "example": 1
          },
          "value": {
            "type": "string",
            "description": "The category description.",
            "nullable": true,
            "example": "Uren"
          }
        },
        "additionalProperties": false,
        "description": "The category of the payroll component. Example categories are, hours/extra hours/net payment/net deduction etc."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollComponentCategoryResultModel": {
        "type": "object",
        "properties": {
          "key": {
            "type": "integer",
            "description": "The category key.",
            "format": "int32",
            "example": 1
          },
          "value": {
            "type": "string",
            "description": "The category description.",
            "nullable": true,
            "example": "Uren"
          }
        },
        "additionalProperties": false,
        "description": "The category of the payroll component. Example categories are, hours/extra hours/net payment/net deduction etc."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollComponentDeductionOrPaymentPostModel": {
        "required": [
          "key",
          "value"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "integer",
            "description": "The deduction or payment type key.",
            "format": "int32",
            "example": 2
          },
          "value": {
            "type": "string",
            "description": "The deduction or payment type description.",
            "nullable": true,
            "example": "Betaling"
          }
        },
        "additionalProperties": false,
        "description": "Indicates if the value of the payroll component will be deducted from or added to the salary. In case the component is neither a deduction or a payment, NULL is returned."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollComponentDeductionOrPaymentResultModel": {
        "type": "object",
        "properties": {
          "key": {
            "type": "integer",
            "description": "The deduction or payment type key.",
            "format": "int32",
            "example": 2
          },
          "value": {
            "type": "string",
            "description": "The deduction or payment type description.",
            "nullable": true,
            "example": "Betaling"
          }
        },
        "additionalProperties": false,
        "description": "Indicates if the value of the payroll component will be deducted from or added to the salary. In case the component is neither a deduction or a payment, NULL is returned."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollComponentDetailPostModel": {
        "required": [
          "canBeSupplemented",
          "category",
          "description",
          "key"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "integer",
            "description": "The number for the payroll component. This number has meaning to payroll professionals using Loket.nl who often know it by heart.",
            "format": "int32",
            "example": 1
          },
          "description": {
            "maxLength": 14,
            "minLength": 0,
            "type": "string",
            "description": "The description of the payroll component.",
            "nullable": true,
            "example": "Uren gewerkt"
          },
          "deviatingDescription": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "A longer and more user-friendly description of the payroll component.",
            "nullable": true,
            "example": "Hoeveelheid uren productief"
          },
          "category": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollComponentCategoryPostModel"
          },
          "deductionOrPayment": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollComponentDeductionOrPaymentPostModel"
          },
          "canBeSupplemented": {
            "type": "boolean",
            "description": "Indicates whether the atribute for this payroll component can have the value `supplement`. Refer to the description of the attribute field for an explanation.",
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Detailed payroll component information."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollComponentDetailResultModel": {
        "type": "object",
        "properties": {
          "key": {
            "type": "integer",
            "description": "The number for the payroll component. This number has meaning to payroll professionals using Loket.nl who often know it by heart.",
            "format": "int32",
            "example": 1
          },
          "description": {
            "type": "string",
            "description": "The description of the payroll component.",
            "nullable": true,
            "example": "Uren gewerkt"
          },
          "deviatingDescription": {
            "type": "string",
            "description": "A longer and more user-friendly description of the payroll component.",
            "nullable": true,
            "example": "Hoeveelheid uren productief"
          },
          "category": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollComponentCategoryResultModel"
          },
          "deductionOrPayment": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollComponentDeductionOrPaymentResultModel"
          },
          "canBeSupplemented": {
            "type": "boolean",
            "description": "Indicates whether the atribute for this payroll component can have the value `supplement`. Refer to the description of the attribute field for an explanation.",
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Detailed payroll component information."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollComponentPostModel": {
        "required": [
          "payrollComponent"
        ],
        "type": "object",
        "properties": {
          "payrollComponent": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollComponentDetailPostModel"
          },
          "value": {
            "type": "number",
            "description": "The value for the payroll component.",
            "format": "double",
            "nullable": true,
            "example": 144
          },
          "isSupplement": {
            "type": "boolean",
            "description": "Whether this is a supplement.",
            "nullable": true,
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "A payroll component is the link to the salary calculation.\nBy setting the value of a component the salary calculation will take this value into account when calculating the wage of the employment for the given payroll period.\n\nPlease note: Business rules may differ per component! Understanding these business rules and corresponding validations requires functional knowledge of Loket."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollComponentResultModel": {
        "type": "object",
        "properties": {
          "payrollComponent": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollComponentDetailResultModel"
          },
          "value": {
            "type": "number",
            "description": "The value for the payroll component.",
            "format": "double",
            "nullable": true,
            "example": 144
          },
          "isSupplement": {
            "type": "boolean",
            "description": "Whether this is a supplement.",
            "nullable": true,
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "A payroll component is the link to the salary calculation.\nBy setting the value of a component the salary calculation will take this value into account when calculating the wage of the employment for the given payroll period.\n\nPlease note: Business rules may differ per component! Understanding these business rules and corresponding validations requires functional knowledge of Loket."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollDataPostModel": {
        "required": [
          "distributionUnit",
          "employee",
          "employment",
          "payrollComponents",
          "payrollPeriod",
          "payslipType",
          "shift"
        ],
        "type": "object",
        "properties": {
          "employment": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.EmploymentPostModel"
          },
          "employee": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.EmployeePostModel"
          },
          "payrollPeriod": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollPeriodPostModel"
          },
          "shift": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.ShiftPostModel"
          },
          "payslipType": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayslipTypePostModel"
          },
          "distributionUnit": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.DistributionUnitPostModel"
          },
          "costCenter": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.CostCenterPostModel"
          },
          "costUnit": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.CostUnitPostModel"
          },
          "payrollComponents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollComponentPostModel"
            },
            "description": "The payroll components.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Payroll data entry for SmartPaste processing.\nRepresents the current state of an employment in the payroll period browser."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollDataResultModel": {
        "type": "object",
        "properties": {
          "employment": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.EmploymentResultModel"
          },
          "employee": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.EmployeeResultModel"
          },
          "payrollPeriod": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollPeriodResultModel"
          },
          "shift": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.ShiftResultModel"
          },
          "payslipType": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayslipTypeResultModel"
          },
          "distributionUnit": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.DistributionUnitResultModel"
          },
          "costCenter": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.CostCenterResultModel"
          },
          "costUnit": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.CostUnitResultModel"
          },
          "payrollComponents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollComponentResultModel"
            },
            "description": "The payroll components.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Processed payroll data entry with employee, employment, and payroll component information."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollPeriodPostModel": {
        "required": [
          "periodEndDate",
          "periodNumber",
          "periodStartDate",
          "year"
        ],
        "type": "object",
        "properties": {
          "year": {
            "maximum": 9999,
            "minimum": 2000,
            "type": "integer",
            "description": "The year of the payroll period in which the payroll data is to be processed.",
            "format": "int32",
            "example": 2025
          },
          "periodNumber": {
            "maximum": 53,
            "minimum": 1,
            "type": "integer",
            "description": "The period (month [1 to 12] , 4 weeks [1 to 13] or week [1 to 53]) of the payroll period in which the payroll data is to be processed.",
            "format": "int32",
            "example": 10
          },
          "periodStartDate": {
            "type": "string",
            "description": "The first day of the period to which the payroll period data applies.",
            "format": "date",
            "example": "2025-10-01"
          },
          "periodEndDate": {
            "type": "string",
            "description": "The last day of the period to which the payroll period data applies.",
            "format": "date",
            "example": "2025-10-31"
          }
        },
        "additionalProperties": false,
        "description": "Payroll period information."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollPeriodResultModel": {
        "type": "object",
        "properties": {
          "year": {
            "type": "integer",
            "description": "The year of the payroll period in which the payroll data is to be processed.",
            "format": "int32",
            "example": 2025
          },
          "periodNumber": {
            "type": "integer",
            "description": "The period (month [1 to 12] , 4 weeks [1 to 13] or week [1 to 53]) of the payroll period in which the payroll data is to be processed.",
            "format": "int32",
            "example": 10
          },
          "periodStartDate": {
            "type": "string",
            "description": "The first day of the period to which the payroll period data applies.",
            "format": "date",
            "example": "2025-10-01"
          },
          "periodEndDate": {
            "type": "string",
            "description": "The last day of the period to which the payroll period data applies.",
            "format": "date",
            "example": "2025-10-31"
          }
        },
        "additionalProperties": false,
        "description": "Payroll period information."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayslipTypePostModel": {
        "required": [
          "key",
          "value"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "integer",
            "description": "The payslip type key.",
            "format": "int32",
            "example": 2
          },
          "value": {
            "type": "string",
            "description": "The payslip type description.",
            "nullable": true,
            "example": "Bijzonder tarief strook"
          }
        },
        "additionalProperties": false,
        "description": "The type of payslip (as defined by the Dutch tax authorities)."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayslipTypeResultModel": {
        "type": "object",
        "properties": {
          "key": {
            "type": "integer",
            "description": "The payslip type key.",
            "format": "int32",
            "example": 2
          },
          "value": {
            "type": "string",
            "description": "The payslip type description.",
            "nullable": true,
            "example": "Bijzonder tarief strook"
          }
        },
        "additionalProperties": false,
        "description": "The type of payslip (as defined by the Dutch tax authorities)."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.RemarkResultModel": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.RemarkTypeResultModel"
          },
          "message": {
            "type": "string",
            "description": "The remark message.",
            "nullable": true,
            "example": "Kon component 'YRWN G3WERLT' niet verwerken"
          }
        },
        "additionalProperties": false,
        "description": "Remark generated during SmartPaste processing."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.RemarkTypeResultModel": {
        "type": "object",
        "properties": {
          "key": {
            "type": "integer",
            "description": "The code of the remark type.",
            "format": "int32",
            "example": 2
          },
          "value": {
            "type": "string",
            "description": "The description of the remark type.",
            "nullable": true,
            "example": "Warning"
          }
        },
        "additionalProperties": false,
        "description": "The type of remark.  \n`1 = Info, 2 = Warning, 3 = Error`"
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.ShiftPostModel": {
        "required": [
          "bonusPercentage",
          "fullTimeHoursPerWeek",
          "shiftNumber"
        ],
        "type": "object",
        "properties": {
          "shiftNumber": {
            "type": "integer",
            "description": "The number for the shift. Loket.nl supports a maximum of 15 shifts per payroll administration.",
            "format": "int32",
            "example": 1
          },
          "fullTimeHoursPerWeek": {
            "type": "number",
            "description": "The full time hours for an employment that is linked to this shift.",
            "format": "double",
            "example": 40
          },
          "bonusPercentage": {
            "type": "number",
            "description": "The bonus percentage used in wage calculations for the hours made in this shift.",
            "format": "double",
            "example": 12
          }
        },
        "additionalProperties": false,
        "description": "The shift determines the full-time hours and bonus percentage."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.ShiftResultModel": {
        "type": "object",
        "properties": {
          "shiftNumber": {
            "type": "integer",
            "description": "The number for the shift. Loket.nl supports a maximum of 15 shifts per payroll administration.",
            "format": "int32",
            "example": 1
          },
          "fullTimeHoursPerWeek": {
            "type": "number",
            "description": "The full time hours for an employment that is linked to this shift.",
            "format": "double",
            "example": 40
          },
          "bonusPercentage": {
            "type": "number",
            "description": "The bonus percentage used in wage calculations for the hours made in this shift.",
            "format": "double",
            "example": 12
          }
        },
        "additionalProperties": false,
        "description": "The shift determines the full-time hours and bonus percentage."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.SmartPasteResultModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the Smart Paste operation.",
            "format": "uuid",
            "example": "e94fe740-f155-4f91-b947-0f9775cbd59a"
          },
          "context": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.ContextResultModel"
          },
          "status": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.StatusResultModel"
          },
          "remarks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.RemarkResultModel"
            },
            "description": "A collection of remarks that were generated processing the Smart Paste operation.",
            "nullable": true
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.PayrollDataResultModel"
            },
            "description": "Results of the processed Smart Paste operation.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The results of a Smart Paste operation on payroll period data."
      },
      "Vsp.PayrollComponent.Domain.PayrollPeriodData.v20180101.Models.SmartPaste.StatusResultModel": {
        "type": "object",
        "properties": {
          "key": {
            "type": "integer",
            "description": "The code of the Smart Paste operation status.",
            "format": "int32",
            "example": 4
          },
          "value": {
            "type": "string",
            "description": "The description of the Smart Paste operation status.",
            "nullable": true,
            "example": "SuccessfulWithRemarks"
          }
        },
        "additionalProperties": false,
        "description": "The status of the Smart Paste operation.  \n`0 = Unknown, 1 = Requested, 2 = Processing, 3 = Successful, 4 = SuccessfulWithRemarks, 5 = Failed`"
      },
      "Vsp.PayrollComponent.Domain.Shared.Models.KeyModel": {
        "required": [
          "key"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Vsp.PayrollComponent.Domain.Shared.Models.KeyValueModel": {
        "required": [
          "key"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "integer",
            "format": "int32"
          },
          "value": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Vsp.PayrollComponent.Domain.Shared.Models.PayrollComponentMinimizedModel": {
        "required": [
          "key"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "$ref": "#/components/schemas/Vsp.PayrollComponent.Domain.Shared.Models.KeyValueModel"
          }
        },
        "additionalProperties": false
      },
      "Vsp.SystemNotifications.Models.TransactionInitiatedResult": {
        "type": "object",
        "properties": {
          "transactionId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "oauth2": {
        "type": "oauth2",
        "flows": {
          "password": {
            "tokenUrl": "https://oauth.loket.nl/token",
            "scopes": { }
          }
        }
      },
      "Bearer": {
        "type": "apiKey",
        "description": "Authorization header using the Bearer scheme. \n Enter 'Bearer' [space] and then your token in the text input below.\nExample: \"Bearer 12345abcdef\"",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "oauth2": [ ]
    },
    {
      "Bearer": [ ]
    }
  ],
  "tags": [
    {
      "name": "Attachment Of Earnings Payroll Component",
      "description": "Attachment Of Earnings Payroll Component (NL: ComponentLoonbeslagVrijgesteldeVergoeding)\n\n**Entity characteristics**:\n - Inheritance entity: No\n - Inheritance levels: PA\n - Time relation: Year"
    },
    {
      "name": "Smart Paste Payroll Period Data",
      "description": "Smart Paste on Payroll Period Data (NL: Slimme Plakken op variabele gegevens)\n\nSmartPaste allows automated processing of clipboard data (text or files) to create payroll period data entries."
    }
  ]
}