{ "openapi": "3.0.4", "info": { "title": "Spiris Lön API V1", "description": "Visit our complete [Spiris Lön/Cloud Payroll API docs](https://developer.vismaonline.com) for how to get started, more information about authentication, error handling, query customization and more.", "contact": { "email": "api@spiris.se" }, "version": "v1" }, "servers": [ { "url": "https://vlsapi.vismaonline.com/" } ], "paths": { "/v1/agreements": { "get": { "tags": [ "Agreements" ], "summary": "Get agreements", "description": "Get all agreements or add query parameters to filter the results. The response will include a paginated list of agreements.\r\n \r\n\r\n", "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaginatedResponseOfAgreementApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/agreements/{agreementId}": { "get": { "tags": [ "Agreements" ], "summary": "Get agreement by id", "description": " Gets an agreement by specified id.\r\n\r\n", "parameters": [ { "name": "agreementId", "in": "path", "description": "Id of the agreement", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgreementApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/breakrules": { "get": { "tags": [ "BreakRule" ], "summary": "Get break rules", "description": "Get all break rules or add query parameters to filter the results. The response will include a paginated list of break rules.\r\n\r\n\r\n", "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaginatedResponseOfBreakRuleApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/breakrules/{breakRuleId}": { "get": { "tags": [ "BreakRule" ], "summary": "Get break rule by id", "description": "Gets a specific break rule by ID. Query options can be applied to customize the response. The response contains the requested break rule.\r\n\r\n\r\n", "parameters": [ { "name": "breakRuleId", "in": "path", "description": "The Id of the break rule", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BreakRuleApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/careofsickchild": { "post": { "tags": [ "CareOfSickChildren" ], "summary": "Create a care of sick child shortcut", "description": "Create a new care of sick child shortcut for an employee. The shortcut will be registered based on the specified registration method (time, hours, or percentage). If the end date is in a different month than the start date, the shortcut will be split into separate shortcuts for each month.\r\n\r\n", "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/CareOfSickChildApi" } ] } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CareOfSickChildApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/careofsickchild/{careOfSickChildId}": { "get": { "tags": [ "CareOfSickChildren" ], "summary": "Get a care of sick child shortcut by id", "description": "Get a specific care of sick child shortcut by its unique identifier. Use query parameters to select specific properties in the response.\r\n\r\n", "parameters": [ { "name": "careOfSickChildId", "in": "path", "description": "The care of sick child shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CareOfSickChildApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/careofsickchild/{startDate}/{endDate}": { "get": { "tags": [ "CareOfSickChildren" ], "summary": "Get care of sick child shortcuts between dates", "description": "Get all care of sick child shortcuts within a specified date range. Use query parameters to filter the results or include only shortcuts created by the same client.\r\n\r\n", "parameters": [ { "name": "startDate", "in": "path", "description": "Start date in format yyyy-MM-dd", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "endDate", "in": "path", "description": "End date in format yyyy-MM-dd", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "includeOnlySameClientShortcuts", "in": "query", "description": "If true, only includes shortcuts created by the same client", "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CareOfSickChildApi" } } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/careofsickchild/{id}": { "put": { "tags": [ "CareOfSickChildren" ], "summary": "Update a care of sick child shortcut", "description": "Update an existing care of sick child shortcut by replacing its content. Only shortcuts that have not been read (imported by a payroll administrator) can be updated. The shortcut must belong to the same third-party client that created it.\r\n\r\n", "parameters": [ { "name": "id", "in": "path", "description": "The shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/CareOfSickChildApi" } ] } } } }, "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CareOfSickChildApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/companysettings": { }, "/v1/employees": { "get": { "tags": [ "Employees" ], "summary": "Get all employees", "description": "Retrieves a paginated list of all employees in the company. \r\nYou can use query options ($filter, $select, $orderby, $top, $skip) to customize your request.\r\nThe endpoint includes both active and draft employees but excludes deleted employees. Limited employees are also included in the results.\r\n\r\n\r\n", "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaginatedResponseOfEmployeeApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/employees/{employeeId}": { "get": { "tags": [ "Employees" ], "summary": "Get employee by id", "description": "Retrieves a specific employee by their unique identifier. The response includes comprehensive employee information such as personal details, contact information, address, employment status and other associated information.\nYou can use OData query options like `$select` to retrieve only specific fields from the employee record.\n\n\r\n\r\n", "parameters": [ { "name": "employeeId", "in": "path", "description": "Id of the employee", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmployeeApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/employees/{employeeId}/workschedules": { }, "/v1/employees/{employeeId}/agreements": { }, "/v1/externalperiod/{employeeId}/{deviationDate}": { }, "/v1/externalperiod": { }, "/v1/externalperiod/{externalPeriodId}": { }, "/v1/heartbeat": { }, "/v1/shortcuts/holiday": { "post": { "tags": [ "Holiday" ], "summary": "Create a holiday shortcut", "description": "Create a new holiday shortcut for an employee. The shortcut will be registered based on the specified registration method (time, hours or percentage).\r\n\r\n", "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/HolidayApi" } ] } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HolidayApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/holiday/{holidayId}": { "get": { "tags": [ "Holiday" ], "summary": "Get a holiday shortcut by id", "description": "Get a specific holiday shortcut by its unique identifier. Use query parameters to select specific properties in the response.\r\n\r\n", "parameters": [ { "name": "holidayId", "in": "path", "description": "The holiday shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HolidayApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/holiday/{startDate}/{endDate}": { "get": { "tags": [ "Holiday" ], "summary": "Get holiday shortcuts between dates", "description": "Get all holiday shortcuts within a specified date range. Use query parameters to filter the results or include only shortcuts created by the same client.\r\n\r\n", "parameters": [ { "name": "startDate", "in": "path", "description": "Start date in format yyyy-MM-dd", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "endDate", "in": "path", "description": "End date in format yyyy-MM-dd", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "includeOnlySameClientShortcuts", "in": "query", "description": "If true, only includes shortcuts created by the same client", "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/HolidayApi" } } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/holiday/{id}": { "put": { "tags": [ "Holiday" ], "summary": "Update a holiday shortcut", "description": "Update an existing holiday shortcut by replacing its content. Only shortcuts that have not been read (imported by a payroll administrator) can be updated. The shortcut must belong to the same third-party client that created it.\r\n\r\n", "parameters": [ { "name": "id", "in": "path", "description": "The shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/HolidayApi" } ] } } } }, "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HolidayApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/hoursworked": { "post": { "tags": [ "HoursWorked" ], "summary": "Create a hours worked shortcut", "description": "Create a new hours worked shortcut for an employee. The shortcut will be registered based on the specified registration method (time or hours).\r\n\r\n", "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/HoursWorkedApi" } ] } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HoursWorkedApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/hoursworked/{hoursWorkedId}": { "get": { "tags": [ "HoursWorked" ], "summary": "Get a hours worked shortcut by id", "description": "Get a specific hours worked shortcut by its unique identifier. Use query parameters to select specific properties in the response.\r\n\r\n", "parameters": [ { "name": "hoursWorkedId", "in": "path", "description": "The hours worked shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HoursWorkedApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/hoursworked/{startDate}/{endDate}": { "get": { "tags": [ "HoursWorked" ], "summary": "Get hours worked shortcuts between dates", "description": "Get all hours worked shortcuts within a specified date range. Use query parameters to filter the results or include only shortcuts created by the same client.\r\n\r\n", "parameters": [ { "name": "startDate", "in": "path", "description": "Start date in format yyyy-MM-dd", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "endDate", "in": "path", "description": "End date in format yyyy-MM-dd", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "includeOnlySameClientShortcuts", "in": "query", "description": "If true, only includes shortcuts created by the same client", "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/HoursWorkedApi" } } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/hoursworked/{id}": { "put": { "tags": [ "HoursWorked" ], "summary": "Update a hours worked shortcut", "description": "Update an existing hours worked shortcut by replacing its content. Only shortcuts that have not been read (imported by a payroll administrator) can be updated. The shortcut must belong to the same third-party client that created it.\r\n\r\n", "parameters": [ { "name": "id", "in": "path", "description": "The shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/HoursWorkedApi" } ] } } } }, "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HoursWorkedApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/migrationStatus": { }, "/v1/notifications/failed": { }, "/v1/shortcuts/otherabsence": { "post": { "tags": [ "OtherAbsence" ], "summary": "Create an other absence shortcut", "description": "Create a new other absence shortcut for an employee. The shortcut will be registered based on the specified registration method (time, hours or percentage).\r\n\r\n", "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/OtherAbsenceApi" } ] } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OtherAbsenceApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/otherabsence/{otherAbsenceId}": { "get": { "tags": [ "OtherAbsence" ], "summary": "Get an other absence shortcut by id", "description": "Get a specific other absence shortcut by its unique identifier. Use query parameters to select specific properties in the response.\r\n\r\n", "parameters": [ { "name": "otherAbsenceId", "in": "path", "description": "The other absence shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OtherAbsenceApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/otherabsence/{startDate}/{endDate}": { "get": { "tags": [ "OtherAbsence" ], "summary": "Get other absence shortcuts between dates", "description": "Get all other absence shortcuts within a specified date range. Use query parameters to filter the results or include only shortcuts created by the same client.\r\n\r\n", "parameters": [ { "name": "startDate", "in": "path", "description": "Start date in format yyyy-MM-dd", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "endDate", "in": "path", "description": "End date in format yyyy-MM-dd", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "includeOnlySameClientShortcuts", "in": "query", "description": "If true, only includes shortcuts created by the same client", "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/OtherAbsenceApi" } } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/otherabsence/{id}": { "put": { "tags": [ "OtherAbsence" ], "summary": "Update an other absence shortcut", "description": "Update an existing other absence shortcut by replacing its content. Only shortcuts that have not been read (imported by a payroll administrator) can be updated. The shortcut must belong to the same third-party client that created it.\r\n\r\n", "parameters": [ { "name": "id", "in": "path", "description": "The shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/OtherAbsenceApi" } ] } } } }, "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OtherAbsenceApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/otheradditiondeduction": { "post": { "tags": [ "OtherAdditionDeduction" ], "summary": "Create an other addition deduction shortcut", "description": "Create a new other addition and deduction shortcut for an employee. The shortcut will be registered for specified date based on provided rows.\r\n\r\n", "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/OtherAdditionDeductionApi" } ] } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OtherAdditionDeductionApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/otheradditiondeduction/{otheradditiondeductionId}": { "get": { "tags": [ "OtherAdditionDeduction" ], "summary": "Get an other addition deduction shortcut by id", "description": "Get a specific other addition and deduction shortcut by its unique identifier. Use query parameters to select specific properties in the response.\r\n\r\n", "parameters": [ { "name": "otherAdditionDeductionId", "in": "path", "description": "The other addition deduction shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OtherAdditionDeductionApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/otheradditiondeduction/{startDate}/{endDate}": { "get": { "tags": [ "OtherAdditionDeduction" ], "summary": "Get other addition deduction shortcuts between dates", "description": "Get all other addition and deduction shortcuts within a specified date range. Use query parameters to filter the results or include only shortcuts created by the same client.\r\n\r\n", "parameters": [ { "name": "startDate", "in": "path", "description": "Start date in format yyyy-MM-dd", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "endDate", "in": "path", "description": "End date in format yyyy-MM-dd", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "includeOnlySameClientShortcuts", "in": "query", "description": "If true, only includes shortcuts created by the same client", "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/OtherAdditionDeductionApi" } } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/otherAdditionDeduction/{id}": { "put": { "tags": [ "OtherAdditionDeduction" ], "summary": "Update an other addition deduction shortcut", "description": "Update an existing other addition and deduction shortcut by replacing its content. Only shortcuts that have not been read (imported by a payroll administrator) can be updated. The shortcut must belong to the same third-party client that created it.\r\n\r\n", "parameters": [ { "name": "id", "in": "path", "description": "The shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/OtherAdditionDeductionApi" } ] } } } }, "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OtherAdditionDeductionApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/overtime": { "post": { "tags": [ "Overtime" ], "summary": "Create an overtime shortcut", "description": "Create a new overtime shortcut for an employee. The shortcut will be registered based on the specified registration method (time or hours).\r\n\r\n", "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/OvertimeApi" } ] } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OvertimeApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/overtime/{overtimeId}": { "get": { "tags": [ "Overtime" ], "summary": "Get an overtime shortcut by id", "description": "Get a specific overtime shortcut by its unique identifier. Use query parameters to select specific properties in the response.\r\n\r\n", "parameters": [ { "name": "overtimeId", "in": "path", "description": "The overtime shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OvertimeApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/overtime/{startDate}/{endDate}": { "get": { "tags": [ "Overtime" ], "summary": "Get overtime shortcuts between dates", "description": "Get all overtime shortcuts within a specified date range. Use query parameters to filter the results or include only shortcuts created by the same client.\r\n\r\n", "parameters": [ { "name": "startDate", "in": "path", "description": "Start date in format yyyy-MM-dd", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "endDate", "in": "path", "description": "End date in format yyyy-MM-dd", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "includeOnlySameClientShortcuts", "in": "query", "description": "If true, only includes shortcuts created by the same client", "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/OvertimeApi" } } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/overtime/{id}": { "put": { "tags": [ "Overtime" ], "summary": "Update an overtime shortcut", "description": "Update an existing overtime shortcut by replacing its content. Only shortcuts that have not been read (imported by a payroll administrator) can be updated. The shortcut must belong to the same third-party client that created it.\r\n\r\n", "parameters": [ { "name": "id", "in": "path", "description": "The shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/OvertimeApi" } ] } } } }, "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OvertimeApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/parentalLeave": { "post": { "tags": [ "ParentalLeave" ], "summary": "Create a parental leave shortcut", "description": "Create a new parental leave shortcut for an employee. The shortcut will be registered based on the specified registration method (time, hours or percentage).\r\n\r\n", "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ParentalLeaveApi" } ] } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ParentalLeaveApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/parentalLeave/{parentalLeaveId}": { "get": { "tags": [ "ParentalLeave" ], "summary": "Get a parental leave shortcut by id", "description": "Get a specific parental leave shortcut by its unique identifier. Use query parameters to select specific properties in the response.\r\n\r\n", "parameters": [ { "name": "parentalLeaveId", "in": "path", "description": "The parental leave shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ParentalLeaveApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/parentalLeave/{startDate}/{endDate}": { "get": { "tags": [ "ParentalLeave" ], "summary": "Get parental leave shortcuts between dates", "description": "Get all parental leave shortcuts within a specified date range. Use query parameters to filter the results or include only shortcuts created by the same client.\r\n\r\n", "parameters": [ { "name": "startDate", "in": "path", "description": "Start date in format yyyy-MM-dd", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "endDate", "in": "path", "description": "End date in format yyyy-MM-dd", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "includeOnlySameClientShortcuts", "in": "query", "description": "If true, only includes shortcuts created by the same client", "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ParentalLeaveApi" } } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/parentalLeave/{id}": { "put": { "tags": [ "ParentalLeave" ], "summary": "Update a parental leave shortcut", "description": "Update an existing parental leave shortcut by replacing its content. Only shortcuts that have not been read (imported by a payroll administrator) can be updated. The shortcut must belong to the same third-party client that created it.\r\n\r\n", "parameters": [ { "name": "id", "in": "path", "description": "The shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/ParentalLeaveApi" } ] } } } }, "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ParentalLeaveApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/paycodes": { "get": { "tags": [ "Paycodes" ], "summary": "Gets paycodes", "description": "Get all paycodes. Use query parameters to filter the results.\r\n\r\n\r\n", "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaginatedResponseOfPaycodeApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/paycodes/{paycodeId}": { "get": { "tags": [ "Paycodes" ], "summary": "Gets a paycode by id", "description": "Get a specific paycode by its unique identifier. Use query parameters to select specific properties in the response.\r\n\r\n\r\n", "parameters": [ { "name": "paycodeId", "in": "path", "description": "Id of desired paycode", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaycodeApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/paycodes/travelandexpense": { "get": { "tags": [ "Paycodes" ], "summary": "Gets paycodes to use for travel and expense shortcut.", "description": "Gets paycodes to use for travel and expense shortcut.\r\nUse query parameters to select specific properties in the response.\r\nResponse containing lists of paycodes grouped by these categories: ReimbursmentPaycodes, AllowancePaycodes, BenefitPaycodes, CompensationPaycodes.\r\n\r\n\r\n", "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TravelAndExpensePaycodesApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/paycodes/otheradditiondeduction": { "get": { "tags": [ "Paycodes" ], "summary": "Gets paycodes to use for other addition deduction shortcut.", "description": "Gets paycodes to use for other addition deduction shortcut. \r\nUse query parameters to select specific properties in the response.\r\nResponse containing lists of paycodes grouped by these categories: CompensationPaycodes, DeductionPaycodes, BenefitPaycodes, AdjustmentTaxPaycodes\r\n\r\n\r\n", "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OtherAdditionDeductionPaycodesApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/payrollsettings": { "get": { "tags": [ "PayrollSettings" ], "summary": "Get payroll settings.", "description": "Get the payroll settings or NotFound status if using modifiedSinceUtc parameter and no results have been found after that date.\r\n\r\n", "parameters": [ { "name": "modifiedSinceUtc", "in": "query", "description": "Only return payroll settings if they have been changed after the date. Otherwise returns NotFound status.", "schema": { "type": "string", "format": "date-time" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PayrollSettingsApi" } } } }, "404": { "description": "Not found" }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/payslips/wagerun/{wagerunId}": { "get": { "tags": [ "Payslips" ], "summary": "Gets payslips for specified wage run", "description": "Gets the payslips for a wagerun. Use query options ($filter, $select, $orderby, $top, $skip) to customize your request.\r\n \r\n\r\n", "parameters": [ { "name": "wagerunId", "in": "path", "description": "Id of wage run which payslips to return.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaginatedResponseOfPayslipApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/payslips/{payslipId}": { "get": { "tags": [ "Payslips" ], "summary": "Gets payslip by id", "description": "Gets a payslip by id. Use query parameters to select specific properties in the response.\r\n\r\n\r\n", "parameters": [ { "name": "payslipId", "in": "path", "description": "Id of wanted payslip.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PayslipApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/payslips/{employeeId}/withdetails": { }, "/v1/shortcutsoperations/{shortcutId}": { "delete": { "tags": [ "Shortcuts" ], "summary": "Delete a shortcut", "description": "Delete a shortcut.\r\n\r\n", "parameters": [ { "name": "shortcutId", "in": "path", "description": "The shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful" }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/sickleave": { "post": { "tags": [ "SickLeave" ], "summary": "Create a sick leave shortcut", "description": "Create a new sick leave shortcut for an employee. The shortcut will be registered based on the specified registration method (time, hours, or percentage). If the end date is in a different month than the start date, the shortcut will be split into separate shortcuts for each month.\r\n\r\n\r\n", "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/SickLeaveApi" } ] } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SickLeaveApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/sickleave/{sickLeaveId}": { "get": { "tags": [ "SickLeave" ], "summary": "Get a sick leave shortcut by id", "description": "Get a specific sick leave shortcut by its unique identifier. Use query parameters to select specific properties in the response.\r\n\r\n\r\n", "parameters": [ { "name": "sickLeaveId", "in": "path", "description": "The sick leave shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SickLeaveApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/sickleave/{startDate}/{endDate}": { "get": { "tags": [ "SickLeave" ], "summary": "Get sick leave shortcuts between dates", "description": "Get all sick leave shortcuts within a specified date range. Use query parameters to filter the results or include only shortcuts created by the same client.\r\n\r\n\r\n", "parameters": [ { "name": "startDate", "in": "path", "description": "Start date in format yyyy-MM-dd", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "endDate", "in": "path", "description": "End date in format yyyy-MM-dd", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "includeOnlySameClientShortcuts", "in": "query", "description": "If true, only includes shortcuts created by the same client", "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SickLeaveApi" } } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/sickleave/{id}": { "put": { "tags": [ "SickLeave" ], "summary": "Update a sick leave shortcut", "description": "Update an existing sick leave shortcut by replacing its content. Only shortcuts that have not been read (imported by a payroll administrator) can be updated. The shortcut must belong to the same third-party client that created it.\r\n\r\n\r\n", "parameters": [ { "name": "id", "in": "path", "description": "The shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/SickLeaveApi" } ] } } } }, "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SickLeaveApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/timebank": { "post": { "tags": [ "Timebank" ], "summary": "Create a timebank shortcut", "description": "Create a new timebank shortcut for an employee. The shortcut will be registered based on the specified registration method (time or hours).\r\n\r\n", "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/TimebankApi" } ] } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TimebankApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/timebank/{timebankId}": { "get": { "tags": [ "Timebank" ], "summary": "Get a timebank shortcut by id", "description": "Get a specific timebank shortcut by its unique identifier. Use query parameters to select specific properties in the response.\r\n\r\n", "parameters": [ { "name": "timebankId", "in": "path", "description": "The timebank shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TimebankApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/timebank/{startDate}/{endDate}": { "get": { "tags": [ "Timebank" ], "summary": "Get timebank shortcuts between dates", "description": "Get all timebank shortcuts within a specified date range. Use query parameters to filter the results or include only shortcuts created by the same client.\r\n\r\n", "parameters": [ { "name": "startDate", "in": "path", "description": "Start date in format yyyy-MM-dd", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "endDate", "in": "path", "description": "End date in format yyyy-MM-dd", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "includeOnlySameClientShortcuts", "in": "query", "description": "If true, only includes shortcuts created by the same client", "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TimebankApi" } } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/timebank/{id}": { "put": { "tags": [ "Timebank" ], "summary": "Update a timebank shortcut", "description": "Update an existing timebank shortcut by replacing its content. Only shortcuts that have not been read (imported by a payroll administrator) can be updated. The shortcut must belong to the same third-party client that created it.\r\n\r\n", "parameters": [ { "name": "id", "in": "path", "description": "The shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/TimebankApi" } ] } } } }, "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TimebankApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/timeruleannualdates": { "get": { "tags": [ "TimeRuleAnnualDates" ], "summary": "Get time rule annual dates", "description": "Get all time rule annual dates or add query parameters to filter the results. The response will include a collection of matched time rule annual dates with their information such as unique identifier, name, etc.\r\n\r\n", "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaginatedResponseOfTimeRuleAnnualDateApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/timeruleannualdates/{timeRuleAnnualDateId}": { "get": { "tags": [ "TimeRuleAnnualDates" ], "summary": "Get time rule annual date by unique identifier", "description": "Get time rule annual date by specific identifier. The response will include a time rule annual date (if it's found) information such as unique identifier, name, etc.\r\n\r\n", "parameters": [ { "name": "timeRuleAnnualDateId", "in": "path", "description": "Time rule annual date unique identifier", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TimeRuleAnnualDateApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/travelandexpense": { "post": { "tags": [ "TravelAndExpense" ], "summary": "Create a travel and expense shortcut", "description": "Create a new travel and expense shortcut for an employee. The shortcut will be registered for specified date based on provided rows.\r\n\r\n", "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/TravelAndExpenseApi" } ] } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TravelAndExpenseApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/travelandexpense/{travelAndExpenseId}": { "get": { "tags": [ "TravelAndExpense" ], "summary": "Get a travel and expense shortcut by id", "description": "Get a specific travel and expense shortcut by its unique identifier. Use query parameters to select specific properties in the response.\r\n\r\n", "parameters": [ { "name": "travelAndExpenseId", "in": "path", "description": "The travel and expense shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TravelAndExpenseApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/travelandexpense/{startDate}/{endDate}": { "get": { "tags": [ "TravelAndExpense" ], "summary": "Get travel and expense shortcuts between dates", "description": "Get all travel and expense shortcuts within a specified date range. Use query parameters to filter the results or include only shortcuts created by the same client.\r\n\r\n", "parameters": [ { "name": "startDate", "in": "path", "description": "Start date in format yyyy-MM-dd", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "endDate", "in": "path", "description": "End date in format yyyy-MM-dd", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "includeOnlySameClientShortcuts", "in": "query", "description": "If true, only includes shortcuts created by the same client", "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TravelAndExpenseApi" } } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/shortcuts/travelandexpense/{id}": { "put": { "tags": [ "TravelAndExpense" ], "summary": "Update a travel and expense shortcut", "description": "Update an existing travel and expense shortcut by replacing its content. Only shortcuts that have not been read (imported by a payroll administrator) can be updated. The shortcut must belong to the same third-party client that created it.\r\n\r\n", "parameters": [ { "name": "id", "in": "path", "description": "The shortcut id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/TravelAndExpenseApi" } ] } } } }, "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TravelAndExpenseApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/wageruns": { "get": { "tags": [ "Wageruns" ], "summary": "Get wage runs", "description": "Get all wage runs or add query parameters to filter the results. The response will include a collection of matched wage runs with their information such as wage run unique identifier, payment period dates, associated payslips, etc.\r\n\r\n", "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaginatedResponseOfWagerunApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/wageruns/{wagerunId}": { "get": { "tags": [ "Wageruns" ], "summary": "Get wage run by unique identifier", "description": "Get wage run by specific identifier. The response will include a wage run (if it's found) information such as wage run unique identifier, payment period dates, associated payslips, etc.\r\n\r\n", "parameters": [ { "name": "wagerunId", "in": "path", "description": "Wage run unique identifier", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WagerunApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/workdayoverrides": { "get": { "tags": [ "WorkDayOverride" ], "summary": "Get work day overrides", "description": "Get all work day overrides or add query parameters to filter the results. The response will include a collection of matched work day overrides with their information such as unique identifier, date, working times/duration, etc.\r\n\r\n", "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaginatedResponseOfWorkDayOverrideApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/workschedules": { "get": { "tags": [ "WorkSchedules" ], "summary": "Get work schedules", "description": "Get all work schedules or add query parameters to filter the results. The response will include a collection of matched work schedules with their information such as unique identifier, date, working days, seasons, etc.\r\n\r\n", "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaginatedResponseOfWorkScheduleApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/workschedules/{workScheduleId}": { "get": { "tags": [ "WorkSchedules" ], "summary": "Get work schedule by unique identifier", "description": "Get work schedule by specific identifier. The response will include a work schedule (if it's found) information such as unique identifier, date, working days, seasons, etc.\r\n\r\n", "parameters": [ { "name": "workScheduleId", "in": "path", "description": "Work schedule unique identifier", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkScheduleApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/workscheduletimeadjustments": { "get": { "tags": [ "WorkScheduleTimeAdjustment" ], "summary": "Get work schedule time adjustments", "description": "Get all work schedule time adjustments or add query parameters to filter the results. The response will include a collection of matched work schedule time adjustments with their information such as unique identifier, name, work days, etc.\r\n\r\n", "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaginatedResponseOfWorkScheduleTimeAdjustmentApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } }, "/v1/workscheduletimeadjustments/{workScheduleTimeAdjustmentId}": { "get": { "tags": [ "WorkScheduleTimeAdjustment" ], "summary": "Get work schedule time adjustment by unique identifier", "description": "Get work schedule time adjustment by specific identifier. The response will include a work schedule time adjustment (if it's found) information such as unique identifier, name, work days, etc.\r\n\r\n", "parameters": [ { "name": "workScheduleTimeAdjustmentId", "in": "path", "description": "Work schedule time adjustment unique identifier", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Request successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkScheduleTimeAdjustmentApi" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommonExtendedBadRequest" } } } } } } } }, "components": { "schemas": { "AddAgreementToEmployeeBatchRequest": { "type": "object", "properties": { "Agreements": { "type": "array", "items": { "$ref": "#/components/schemas/AddAgreementToEmployeeRequest" }, "nullable": true } }, "additionalProperties": false }, "AddAgreementToEmployeeBatchResponse": { "type": "object", "properties": { "NumberOfAgreementsAdded": { "type": "integer", "description": "Number of agreements successfully added to employees", "format": "int32", "readOnly": true }, "Agreements": { "type": "array", "items": { "$ref": "#/components/schemas/AddAgreementToEmployeeResponse" }, "description": "List of individual agreement assignment results", "nullable": true } }, "additionalProperties": false }, "AddAgreementToEmployeeRequest": { "required": [ "ActiveFromUtc", "AgreementId", "HasConfidenceTime", "Id" ], "type": "object", "properties": { "Id": { "type": "string", "format": "uuid" }, "AgreementId": { "type": "string", "format": "uuid" }, "ActiveFromUtc": { "type": "string", "format": "date-time" }, "HasConfidenceTime": { "type": "boolean" } }, "additionalProperties": false }, "AddAgreementToEmployeeResponse": { "type": "object", "properties": { "AgreementId": { "type": "string", "description": "Unique identifier of the agreement that was assigned", "format": "uuid" }, "Success": { "type": "boolean", "description": "Indicates whether the agreement was successfully added to the employee" }, "ValidationError": { "allOf": [ { "$ref": "#/components/schemas/CommonValidationError" } ], "description": "Validation error details if the operation was not successful", "nullable": true } }, "additionalProperties": false }, "AddWorkScheduleToEmployeeBatchRequest": { "type": "object", "properties": { "WorkSchedules": { "type": "array", "items": { "$ref": "#/components/schemas/AddWorkScheduleToEmployeeRequest" }, "nullable": true } }, "additionalProperties": false }, "AddWorkScheduleToEmployeeBatchResponse": { "type": "object", "properties": { "NumberOfWorkSchedulesAdded": { "type": "integer", "description": "Number of work schedules successfully added to employees", "format": "int32", "readOnly": true }, "WorkSchedules": { "type": "array", "items": { "$ref": "#/components/schemas/AddWorkScheduleToEmployeeResponse" }, "description": "List of individual work schedule assignment results", "nullable": true } }, "additionalProperties": false }, "AddWorkScheduleToEmployeeRequest": { "required": [ "ActiveSince", "Id", "WorkScheduleId", "WorkWeekCycleStart" ], "type": "object", "properties": { "Id": { "type": "string", "format": "uuid" }, "WorkScheduleId": { "type": "string", "format": "uuid" }, "WorkWeekCycleStart": { "type": "integer", "format": "int32" }, "ActiveSince": { "type": "string", "format": "date-time" } }, "additionalProperties": false }, "AddWorkScheduleToEmployeeResponse": { "type": "object", "properties": { "WorkScheduleId": { "type": "string", "description": "Unique identifier of the work schedule that was assigned", "format": "uuid" }, "Success": { "type": "boolean", "description": "Indicates whether the work schedule was successfully added to the employee" }, "ValidationError": { "allOf": [ { "$ref": "#/components/schemas/CommonValidationError" } ], "description": "Validation error details if the operation was not successful", "nullable": true } }, "additionalProperties": false }, "AgreementApi": { "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier for the agreement", "format": "uuid" }, "Name": { "type": "string", "description": "Name of the agreement", "nullable": true }, "UsesFlex": { "type": "boolean", "description": "Indicates whether flex time is enabled for this agreement" }, "UsesTimeBalance": { "type": "boolean", "description": "Indicates whether time balance tracking is enabled for this agreement" }, "RegisteredTimeRoundOffBeforeStartInMinutes": { "type": "integer", "description": "Number of minutes to round off registered time before the schedule start", "format": "int32", "nullable": true }, "RegisteredTimeRoundOffAfterEndInMinutes": { "type": "integer", "description": "Number of minutes to round off registered time after the schedule end", "format": "int32", "nullable": true }, "UsesOvertime": { "type": "boolean", "description": "Indicates whether overtime compensation is enabled for this agreement" }, "Overtime1CompensationAfterMinutes": { "type": "integer", "description": "Number of minutes after which overtime level 1 compensation begins", "format": "int32", "nullable": true }, "Overtime2CompensationAfterMinutes": { "type": "integer", "description": "Number of minutes after which overtime level 2 compensation begins", "format": "int32", "nullable": true }, "Overtime3CompensationAfterMinutes": { "type": "integer", "description": "Number of minutes after which overtime level 3 compensation begins", "format": "int32", "nullable": true }, "Overtime4CompensationAfterMinutes": { "type": "integer", "description": "Number of minutes after which overtime level 4 compensation begins", "format": "int32", "nullable": true }, "UsesInconvenientTime": { "type": "boolean", "description": "Indicates whether inconvenient time is enabled for this agreement" }, "Discriminator": { "type": "string", "description": "Type discriminator for the agreement.", "nullable": true }, "CreatedUtc": { "type": "string", "description": "UTC timestamp when the agreement was created", "format": "date-time" }, "ModifiedUtc": { "type": "string", "description": "UTC timestamp when the agreement was last modified", "format": "date-time" }, "IsActive": { "type": "boolean", "description": "Indicates whether the agreement is currently active and can be used" }, "CompensateInMoney": { "type": "boolean", "description": "Indicates whether overtime can be compensated in money" }, "CompensateInTime": { "type": "boolean", "description": "Indicates whether overtime can be compensated in time off" }, "CompensateInTimeAndMoney": { "type": "boolean", "description": "Indicates whether overtime can be compensated in a combination of time off and money" }, "OrdinaryScheduleStartTime": { "type": "string", "description": "Start time of the ordinary work schedule (format: HH:mm)", "nullable": true }, "ExtraTimeCompensationAfterMinutes": { "type": "integer", "description": "Number of minutes after which extra time compensation begins", "format": "int32", "nullable": true }, "FlexMinInHoursAndMinutes": { "type": "string", "description": "Minimum flex time balance in hours and minutes format (HH:mm)", "nullable": true }, "FlexMaxInHoursAndMinutes": { "type": "string", "description": "Maximum flex time balance in hours and minutes format (HH:mm)", "nullable": true }, "CompMinInHoursAndMinutes": { "type": "string", "description": "Minimum compensation limit in hours and minutes format (HH:mm)", "nullable": true }, "CompMaxInHoursAndMinutes": { "type": "string", "description": "Maximum compensation limit in hours and minutes format (HH:mm)", "nullable": true }, "CompensationTime1Multiplier": { "type": "number", "description": "Multiplier factor for calculating time compensation at level 1 (e.g., 1.5 means 150%)", "format": "double" }, "CompensationTime2Multiplier": { "type": "number", "description": "Multiplier factor for calculating time compensation at level 2 (e.g., 2.0 means 200%)", "format": "double" }, "CompensationTime3Multiplier": { "type": "number", "description": "Multiplier factor for calculating time compensation at level 3 (e.g., 2.5 means 250%)", "format": "double" }, "CompensationTime4Multiplier": { "type": "number", "description": "Multiplier factor for calculating time compensation at level 4", "format": "double" }, "UsesTwoHoursRule": { "type": "boolean", "description": "Indicates whether the two-hour rule is applied" }, "UsesExtraTime": { "type": "boolean", "description": "Indicates whether extra time compensation is enabled for this agreement" }, "IsDefault": { "type": "boolean", "description": "Indicates whether this is the default agreement", "nullable": true }, "IsDeleted": { "type": "boolean", "description": "Indicates whether the agreement is marked as deleted" }, "OvertimeCodeBeforeTwoHours": { "type": "integer", "description": "Overtime code to use before the two-hour threshold is reached. For possible enum values see https://developer.vismaonline.com/docs/enums#overtimecode", "format": "int32", "nullable": true }, "OvertimeCodeAfterTwoHours": { "type": "integer", "description": "Overtime code to use after the two-hour threshold is reached. For possible enum values see https://developer.vismaonline.com/docs/enums#overtimecode", "format": "int32", "nullable": true }, "CompensationCodeBeforeTwoHours": { "type": "integer", "description": "Compensation code to use before the two-hour threshold is reached. For possible enum values see https://developer.vismaonline.com/docs/enums#compensationtimecode", "format": "int32", "nullable": true }, "CompensationCodeAfterTwoHours": { "type": "integer", "description": "Compensation code to use after the two-hour threshold is reached. For possible enum values see https://developer.vismaonline.com/docs/enums#compensationtimecode", "format": "int32", "nullable": true }, "ManageTravelTime": { "type": "boolean", "description": "Only used by Visma Lön Anställd", "nullable": true }, "TravelTimeDifferentAllowanceForWeekends": { "type": "boolean", "description": "Only used by Visma Lön Anställd", "nullable": true }, "TravelTimeCompleteMinutes": { "type": "integer", "description": "Only used by Visma Lön Anställd", "format": "int32", "nullable": true }, "InconvenientTimeRules": { "type": "array", "items": { "$ref": "#/components/schemas/InconvenientTimeRuleApi" }, "description": "Collection of inconvenient time rules associated with this agreement", "nullable": true }, "OverTimeRules": { "type": "array", "items": { "$ref": "#/components/schemas/OverTimeRuleApi" }, "description": "Collection of overtime rules associated with this agreement", "nullable": true } }, "additionalProperties": false }, "BreakRuleApi": { "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier for the break rule", "format": "uuid" }, "Name": { "type": "string", "description": "Name of the break rule", "nullable": true }, "StartTime": { "type": "string", "description": "Start time of the break period in HH:mm format", "nullable": true }, "EndTime": { "type": "string", "description": "End time of the break period in HH:mm format", "nullable": true }, "MinLengthInMinutes": { "type": "integer", "description": "Minimum length of the break in minutes", "format": "int32" }, "NormalLengthInMinutes": { "type": "integer", "description": "Normal expected length of the break in minutes", "format": "int32" }, "Type": { "type": "integer", "description": "Type of break
Possible values: 0 - Lunch, 1 - FirstBreak, 2 - SecondBreak", "format": "int32", "nullable": true }, "Comment": { "type": "string", "description": "Additional comments or notes about the break rule", "nullable": true }, "CreatedUtc": { "type": "string", "description": "Timestamp when the break rule was created (UTC)", "format": "date-time" }, "ModifiedUtc": { "type": "string", "description": "Timestamp when the break rule was last modified (UTC)", "format": "date-time" }, "IsDeleted": { "type": "boolean", "description": "Indicates whether the break rule is marked as deleted" } }, "additionalProperties": false }, "CPWorkScheduleSeasonRequest": { "required": [ "EndDay", "EndMonth", "Id", "PeriodIndex", "StartDay", "StartMonth" ], "type": "object", "properties": { "Id": { "type": "string", "format": "uuid" }, "StartDay": { "type": "integer", "format": "int32" }, "StartMonth": { "type": "integer", "format": "int32" }, "EndDay": { "type": "integer", "format": "int32" }, "EndMonth": { "type": "integer", "format": "int32" }, "PeriodIndex": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "CPWorkScheduleWorkDayRequest": { "required": [ "DayIndex", "Id", "PeriodIndex", "WeekIndex" ], "type": "object", "properties": { "Id": { "type": "string", "format": "uuid" }, "PeriodIndex": { "type": "integer", "format": "int32" }, "WeekIndex": { "type": "integer", "format": "int32" }, "DayIndex": { "maximum": 6, "minimum": 0, "type": "integer", "format": "int32" }, "StartTime": { "type": "string", "nullable": true }, "EndTime": { "type": "string", "nullable": true }, "LunchBreakId": { "type": "string", "format": "uuid", "nullable": true }, "FirstCoffeeBreakId": { "type": "string", "format": "uuid", "nullable": true }, "SecondCoffeeBreakId": { "type": "string", "format": "uuid", "nullable": true }, "AverageMinutesToWork": { "maximum": 1440, "minimum": 0, "type": "integer", "format": "int32" } }, "additionalProperties": false }, "CareOfSickChildApi": { "required": [ "EmployeeId", "EndDate", "ShortcutRegistrationMethod", "StartDate" ], "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier provided by VLS", "format": "uuid", "readOnly": true }, "EmployeeId": { "type": "string", "description": "The ID of the employee that the shortcut is registered for. Source: Get from /v1/employees", "format": "uuid" }, "StartDate": { "type": "string", "description": "Start date for the shortcut", "format": "date-time" }, "EndDate": { "type": "string", "description": "End date for the shortcut", "format": "date-time" }, "ShortcutRegistrationMethod": { "type": "integer", "description": "Registration method for the shortcut
Possible values: 0 - Time, 1 - Hours, 2 - Percentage", "format": "int32" }, "PercentOfDay": { "type": "number", "description": "The percentage of the day that the shortcut is registered for. Required when ShortcutRegistrationMethod is Percentage.", "format": "double" }, "MinutesOfDay": { "type": "integer", "description": "The number of minutes the shortcut is registered for. Required when ShortcutRegistrationMethod is Hours.", "format": "int32" }, "StartTime": { "type": "string", "description": "The start time the shortcut is registered for (format: HH:mm). Required when ShortcutRegistrationMethod is Time.", "nullable": true }, "EndTime": { "type": "string", "description": "The end time the shortcut is registered for (format: HH:mm). Required when ShortcutRegistrationMethod is Time.", "nullable": true }, "IsRead": { "type": "boolean", "description": "Indicates whether or not the shortcut has been read by the system. This happens when a payroll administrator has imported it.", "readOnly": true }, "Comment": { "type": "string", "description": "Optional comment for the shortcut", "nullable": true }, "ProjectId": { "type": "string", "description": "Project ID. Source: Get from eAccounting API, /v2/projects", "format": "uuid", "nullable": true }, "CostCenterItemId1": { "type": "string", "description": "Cost center item ID 1. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "CostCenterItemId2": { "type": "string", "description": "Cost center item ID 2. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "CostCenterItemId3": { "type": "string", "description": "Cost center item ID 3. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "ProjectCostCenterDistribution": { "allOf": [ { "$ref": "#/components/schemas/ProjectCostCenterDistributionApi" } ], "description": "Percentage based distribution across projects and cost centers. When supplied on a request, ProjectId and CostCenterItemId1-3 are ignored. In a response, each of ProjectId and CostCenterItemId1-3 is only returned when its dimension holds a single allocation of 100%, and is null when the dimension is split across several allocations or allocated less than 100%. The percentages within each of Project, CostCenter1, CostCenter2 and CostCenter3 must total at most 100%.", "nullable": true } }, "additionalProperties": false }, "CommonError": { "type": "object", "properties": { "Field": { "type": "string", "nullable": true }, "ErrorCode": { "type": "string", "nullable": true }, "Message": { "type": "string", "nullable": true }, "Key": { "type": "string", "nullable": true } }, "additionalProperties": false }, "CommonExtendedBadRequest": { "type": "object", "properties": { "ErrorCode": { "type": "integer", "format": "int32" }, "DeveloperErrorMessage": { "type": "string", "nullable": true }, "ErrorId": { "type": "string", "format": "uuid" }, "Errors": { "type": "array", "items": { "$ref": "#/components/schemas/CommonError" }, "nullable": true } }, "additionalProperties": false }, "CommonPaginationMetadata": { "required": [ "CurrentPage", "PageSize", "ServerTimeUtc", "TotalNumberOfPages", "TotalNumberOfResults" ], "type": "object", "properties": { "CurrentPage": { "type": "integer", "description": "The current page number", "format": "int32" }, "PageSize": { "type": "integer", "description": "The number of results per page", "format": "int32" }, "TotalNumberOfPages": { "type": "integer", "description": "The total number of pages available", "format": "int32" }, "TotalNumberOfResults": { "type": "integer", "description": "The total number of results available for the query", "format": "int32" }, "ServerTimeUtc": { "type": "string", "description": "The date-time notation as defined by RFC 3339, section 5.6 2017-07-21T17:32:28Z", "format": "date-time" } }, "additionalProperties": false }, "CommonValidationError": { "type": "object", "properties": { "ErrorCode": { "type": "string", "description": "Error code identifying the type of validation error", "nullable": true }, "ErrorMessage": { "type": "string", "description": "Human-readable description of the validation error", "nullable": true } }, "additionalProperties": false }, "CreateAgreementBatchRequest": { "type": "object", "properties": { "Agreements": { "type": "array", "items": { "$ref": "#/components/schemas/CreateAgreementRequest" }, "nullable": true } }, "additionalProperties": false }, "CreateAgreementBatchResponse": { "type": "object", "properties": { "NumberOfAgreementsCreated": { "type": "integer", "description": "Number of agreements successfully created", "format": "int32", "readOnly": true }, "Agreements": { "type": "array", "items": { "$ref": "#/components/schemas/CreateAgreementResponse" }, "description": "List of individual agreement creation results", "nullable": true } }, "additionalProperties": false }, "CreateAgreementRequest": { "type": "object", "properties": { "Id": { "type": "string", "format": "uuid" }, "Name": { "type": "string", "nullable": true }, "UsesFlex": { "type": "boolean" }, "UsesTimeBalance": { "type": "boolean" }, "RegisteredTimeRoundOffBeforeStartInMinutes": { "type": "integer", "format": "int32", "nullable": true }, "RegisteredTimeRoundOffAfterEndInMinutes": { "type": "integer", "format": "int32", "nullable": true }, "UsesOvertime": { "type": "boolean" }, "Overtime1CompensationAfterMinutes": { "type": "integer", "format": "int32", "nullable": true }, "Overtime2CompensationAfterMinutes": { "type": "integer", "format": "int32", "nullable": true }, "Overtime3CompensationAfterMinutes": { "type": "integer", "format": "int32", "nullable": true }, "Overtime4CompensationAfterMinutes": { "type": "integer", "format": "int32", "nullable": true }, "UsesInconvenientTime": { "type": "boolean" }, "Discriminator": { "type": "string", "nullable": true }, "IsActive": { "type": "boolean" }, "CompensateInMoney": { "type": "boolean" }, "CompensateInTime": { "type": "boolean" }, "CompensateInTimeAndMoney": { "type": "boolean" }, "OrdinaryScheduleStartTime": { "type": "string", "nullable": true }, "ExtraTimeCompensationAfterMinutes": { "type": "integer", "format": "int32", "nullable": true }, "FlexMinInHoursAndMinutes": { "type": "string", "nullable": true }, "FlexMaxInHoursAndMinutes": { "type": "string", "nullable": true }, "CompMinInHoursAndMinutes": { "type": "string", "nullable": true }, "CompMaxInHoursAndMinutes": { "type": "string", "nullable": true }, "CompensationTime1Multiplier": { "type": "number", "format": "double" }, "CompensationTime2Multiplier": { "type": "number", "format": "double" }, "CompensationTime3Multiplier": { "type": "number", "format": "double" }, "CompensationTime4Multiplier": { "type": "number", "format": "double" }, "UsesTwoHoursRule": { "type": "boolean" }, "UsesExtraTime": { "type": "boolean" }, "IsDefault": { "type": "boolean", "nullable": true }, "IsDeleted": { "type": "boolean" }, "OvertimeCodeBeforeTwoHours": { "type": "integer", "format": "int32", "nullable": true }, "OvertimeCodeAfterTwoHours": { "type": "integer", "format": "int32", "nullable": true }, "CompensationCodeBeforeTwoHours": { "type": "integer", "format": "int32", "nullable": true }, "CompensationCodeAfterTwoHours": { "type": "integer", "format": "int32", "nullable": true }, "ManageTravelTime": { "type": "boolean", "nullable": true }, "TravelTimeDifferentAllowanceForWeekends": { "type": "boolean", "nullable": true }, "TravelTimeCompleteMinutes": { "type": "integer", "format": "int32", "nullable": true }, "InconvenientTimeRules": { "type": "array", "items": { "$ref": "#/components/schemas/InconvenientTimeRuleApi" }, "nullable": true }, "OverTimeRules": { "type": "array", "items": { "$ref": "#/components/schemas/OverTimeRuleApi" }, "nullable": true } }, "additionalProperties": false }, "CreateAgreementResponse": { "type": "object", "properties": { "AgreementId": { "type": "string", "description": "Unique identifier of the created agreement", "format": "uuid" }, "Success": { "type": "boolean", "description": "Indicates whether the agreement was successfully created" }, "Name": { "type": "string", "description": "Name of the created agreement", "nullable": true }, "ValidationErrors": { "type": "array", "items": { "$ref": "#/components/schemas/CommonValidationError" }, "description": "List of validation errors if the operation was not successful", "nullable": true } }, "additionalProperties": false }, "CreateBreakRuleBatchRequest": { "type": "object", "properties": { "Breakrules": { "type": "array", "items": { "$ref": "#/components/schemas/CreateBreakRuleRequest" }, "nullable": true } }, "additionalProperties": false }, "CreateBreakRuleBatchResponse": { "type": "object", "properties": { "NumberOfBreakRulesCreated": { "type": "integer", "description": "Number of break rules successfully created", "format": "int32", "readOnly": true }, "BreakRules": { "type": "array", "items": { "$ref": "#/components/schemas/CreateBreakRuleResponse" }, "description": "List of individual break rule creation results", "nullable": true } }, "additionalProperties": false }, "CreateBreakRuleRequest": { "type": "object", "properties": { "Id": { "type": "string", "format": "uuid" }, "Name": { "type": "string", "nullable": true }, "StartTime": { "type": "string", "nullable": true }, "EndTime": { "type": "string", "nullable": true }, "MinLengthInMinutes": { "type": "integer", "format": "int32" }, "NormalLengthInMinutes": { "type": "integer", "format": "int32" }, "Type": { "type": "integer", "description": "Possible values: 0 - Lunch, 1 - FirstBreak, 2 - SecondBreak", "format": "int32", "nullable": true }, "Comment": { "type": "string", "nullable": true } }, "additionalProperties": false }, "CreateBreakRuleResponse": { "type": "object", "properties": { "BreakRuleId": { "type": "string", "description": "Unique identifier of the created break rule", "format": "uuid" }, "Success": { "type": "boolean", "description": "Indicates whether the break rule was successfully created" }, "Name": { "type": "string", "description": "Name of the created break rule", "nullable": true }, "ValidationErrors": { "type": "array", "items": { "$ref": "#/components/schemas/CommonValidationError" }, "description": "List of validation errors if the operation was not successful", "nullable": true } }, "additionalProperties": false }, "CreateCompanySettingsRequest": { "type": "object", "properties": { "HourlyWagePaymentPeriod": { "type": "integer", "description": "Possible values: 1 - PreviousMonth, 2 - UntilDateOfMonth", "format": "int32" }, "HourlyWageDeviationPeriod": { "type": "integer", "description": "Possible values: 1 - PreviousMonth, 2 - UntilDateOfMonth", "format": "int32" }, "HourlyWagePaymentPeriodUntilDay": { "type": "integer", "format": "int32", "nullable": true }, "MonthlySalaryPaymentPeriod": { "type": "integer", "description": "Possible values: 1 - CurrentMonth, 2 - PreviousMonth, 3 - UntilDateOfMonth", "format": "int32" }, "MonthlySalaryDeviationPeriod": { "type": "integer", "description": "Possible values: 1 - PreviousMonth, 2 - UntilDateOfMonth", "format": "int32" }, "MonthlySalaryPaymentPeriodUntilDay": { "type": "integer", "format": "int32", "nullable": true }, "UsesVLA": { "type": "boolean", "nullable": true }, "HolidayIntermittentMethod": { "type": "integer", "description": "Possible values: 0 - Net, 1 - Gross", "format": "int32", "nullable": true }, "UsesDifferentPeriodsForBlueCollar": { "type": "boolean", "nullable": true }, "HourlyWagePaymentPeriodBlueCollar": { "type": "integer", "description": "Possible values: 1 - PreviousMonth, 2 - UntilDateOfMonth", "format": "int32", "nullable": true }, "HourlyWageDeviationPeriodBlueCollar": { "type": "integer", "description": "Possible values: 1 - PreviousMonth, 2 - UntilDateOfMonth", "format": "int32", "nullable": true }, "HourlyWagePaymentPeriodUntilDayBlueCollar": { "type": "integer", "format": "int32", "nullable": true }, "MonthlySalaryPaymentPeriodBlueCollar": { "type": "integer", "description": "Possible values: 1 - CurrentMonth, 2 - PreviousMonth, 3 - UntilDateOfMonth", "format": "int32", "nullable": true }, "MonthlySalaryDeviationPeriodBlueCollar": { "type": "integer", "description": "Possible values: 1 - PreviousMonth, 2 - UntilDateOfMonth", "format": "int32", "nullable": true }, "MonthlySalaryPaymentPeriodUntilDayBlueCollar": { "type": "integer", "format": "int32", "nullable": true } }, "additionalProperties": false }, "CreateCompanySettingsResponse": { "type": "object", "properties": { "Success": { "type": "boolean", "description": "Indicates whether the company settings were successfully updated" }, "ValidationErrors": { "type": "array", "items": { "$ref": "#/components/schemas/CommonValidationError" }, "description": "List of validation errors if the operation was not successful", "nullable": true } }, "additionalProperties": false }, "CreateEmployeeBatchRequest": { "type": "object", "properties": { "Employees": { "type": "array", "items": { "$ref": "#/components/schemas/CreateEmployeeRequest" }, "nullable": true } }, "additionalProperties": false }, "CreateEmployeeBatchResponse": { "type": "object", "properties": { "NumberOfEmployeesCreated": { "type": "integer", "description": "Number of employees successfully created", "format": "int32", "readOnly": true }, "Employees": { "type": "array", "items": { "$ref": "#/components/schemas/CreateEmployeeResponse" }, "description": "List of individual employee creation results", "nullable": true } }, "additionalProperties": false }, "CreateEmployeeContractRequest": { "required": [ "SalaryType" ], "type": "object", "properties": { "EmployeeCategory": { "type": "integer", "description": "Possible values: 0 - WhiteCollar, 1 - BlueCollar", "format": "int32", "nullable": true }, "SalaryType": { "type": "integer", "description": "Possible values: 1 - Monthly, 2 - Hourly", "format": "int32" }, "ContractStartDate": { "type": "string", "format": "date-time", "nullable": true }, "ContractEndDate": { "type": "string", "format": "date-time", "nullable": true }, "UsesVLAFromDate": { "type": "string", "format": "date-time", "nullable": true }, "UsesVLA": { "type": "boolean" }, "TimeReserveType": { "type": "integer", "description": "Possible values: 1 - WorkingTimeReserve, 2 - WorkingTimeAcount", "format": "int32", "nullable": true } }, "additionalProperties": false }, "CreateEmployeeRequest": { "required": [ "FirstName", "IdentificationNumber", "LastName" ], "type": "object", "properties": { "FirstName": { "minLength": 1, "type": "string" }, "LastName": { "minLength": 1, "type": "string" }, "EmployeeNumber": { "type": "string", "nullable": true }, "IdentificationNumber": { "minLength": 1, "type": "string" }, "EmailWork": { "type": "string", "nullable": true }, "PhoneMobile": { "type": "string", "nullable": true }, "VismaUserId": { "type": "string", "format": "uuid", "nullable": true }, "VismaEmployeeId": { "type": "string", "format": "uuid", "nullable": true }, "PayslipSendMethod": { "type": "integer", "description": "Possible values: 1 - Pdf, 2 - MyPayslip", "format": "int32", "nullable": true }, "PayslipLanguage": { "type": "integer", "description": "Possible values: 1 - Swedish, 2 - English", "format": "int32" }, "Contract": { "allOf": [ { "$ref": "#/components/schemas/CreateEmployeeContractRequest" } ], "nullable": true } }, "additionalProperties": false }, "CreateEmployeeResponse": { "type": "object", "properties": { "EmployeeId": { "type": "string", "description": "Unique identifier of the created employee", "format": "uuid" }, "Success": { "type": "boolean", "description": "Indicates whether the employee was successfully created" }, "Name": { "type": "string", "description": "Full name of the created employee", "nullable": true }, "IdentificationNumber": { "type": "string", "description": "Personal identification number (personnummer) of the employee", "nullable": true }, "ValidationErrors": { "type": "array", "items": { "$ref": "#/components/schemas/CommonValidationError" }, "description": "List of validation errors if the operation was not successful", "nullable": true } }, "additionalProperties": false }, "CreateTimeRuleAnnualDateBatchRequest": { "type": "object", "properties": { "TimeRuleAnnualDates": { "type": "array", "items": { "$ref": "#/components/schemas/TimeRuleAnnualDateApi" }, "nullable": true } }, "additionalProperties": false }, "CreateTimeRuleAnnualDateBatchResponse": { "type": "object", "properties": { "NumberOfTimeRuleAnnualDatesCreated": { "type": "integer", "description": "Number of time rule annual dates successfully created", "format": "int32", "readOnly": true }, "TimeRuleAnnualDates": { "type": "array", "items": { "$ref": "#/components/schemas/CreateTimeRuleAnnualDateResponse" }, "description": "List of individual time rule annual date creation results", "nullable": true } }, "additionalProperties": false }, "CreateTimeRuleAnnualDateResponse": { "type": "object", "properties": { "TimeRuleAnnualDateId": { "type": "string", "description": "Unique identifier of the created time rule annual date", "format": "uuid" }, "Success": { "type": "boolean", "description": "Indicates whether the time rule annual date was successfully created" }, "Name": { "type": "string", "description": "Name of the created time rule annual date", "nullable": true }, "ValidationErrors": { "type": "array", "items": { "$ref": "#/components/schemas/CommonValidationError" }, "description": "List of validation errors if the operation was not successful", "nullable": true } }, "additionalProperties": false }, "CreateWorkDayOverrideBatchRequest": { "type": "object", "properties": { "WorkDayOverrides": { "type": "array", "items": { "$ref": "#/components/schemas/CreateWorkDayOverrideRequest" }, "nullable": true } }, "additionalProperties": false }, "CreateWorkDayOverrideBatchResponse": { "type": "object", "properties": { "NumberOfWorkDaysOverridesCreated": { "type": "integer", "description": "Number of work day overrides successfully created", "format": "int32", "readOnly": true }, "WorkDayOverrides": { "type": "array", "items": { "$ref": "#/components/schemas/CreateWorkDayOverrideResponse" }, "description": "List of individual work day override creation results", "nullable": true } }, "additionalProperties": false }, "CreateWorkDayOverrideRequest": { "required": [ "DateToOverride", "EmployeeId", "Id" ], "type": "object", "properties": { "Id": { "type": "string", "format": "uuid" }, "EmployeeId": { "type": "string", "format": "uuid" }, "DateToOverride": { "type": "string", "format": "date-time" }, "StartTime": { "type": "string", "nullable": true }, "EndTime": { "type": "string", "nullable": true }, "LunchBreakId": { "type": "string", "format": "uuid", "nullable": true }, "FirstCoffeeBreakId": { "type": "string", "format": "uuid", "nullable": true }, "SecondCoffeeBreakId": { "type": "string", "format": "uuid", "nullable": true }, "FullTimeLunchBreakId": { "type": "string", "format": "uuid", "nullable": true }, "FullTimeFirstCoffeeBreakId": { "type": "string", "format": "uuid", "nullable": true }, "FullTimeSecondCoffeeBreakId": { "type": "string", "format": "uuid", "nullable": true }, "FullTimeStartTime": { "type": "string", "nullable": true }, "FullTimeEndTime": { "type": "string", "nullable": true }, "IsDeleted": { "type": "boolean", "nullable": true } }, "additionalProperties": false }, "CreateWorkDayOverrideResponse": { "type": "object", "properties": { "WorkDayOverrideId": { "type": "string", "description": "Unique identifier of the created work day override", "format": "uuid" }, "Success": { "type": "boolean", "description": "Indicates whether the work day override was successfully created" }, "ValidationErrors": { "type": "array", "items": { "$ref": "#/components/schemas/CommonValidationError" }, "description": "List of validation errors if the operation was not successful", "nullable": true } }, "additionalProperties": false }, "CreateWorkScheduleBatchRequest": { "type": "object", "properties": { "WorkSchedules": { "type": "array", "items": { "$ref": "#/components/schemas/CreateWorkScheduleRequest" }, "nullable": true } }, "additionalProperties": false }, "CreateWorkScheduleBatchResponse": { "type": "object", "properties": { "NumberOfWorkSchedulesCreated": { "type": "integer", "description": "Number of work schedules successfully created", "format": "int32", "readOnly": true }, "WorkSchedules": { "type": "array", "items": { "$ref": "#/components/schemas/CreateWorkScheduleResponse" }, "description": "List of individual work schedule creation results", "nullable": true } }, "additionalProperties": false }, "CreateWorkScheduleRequest": { "required": [ "HandleBreakRules", "Id", "IsActive", "IsFullTime", "Name", "ScheduleType" ], "type": "object", "properties": { "Id": { "type": "string", "format": "uuid" }, "Name": { "minLength": 1, "type": "string" }, "IsActive": { "type": "boolean" }, "ScheduleType": { "type": "integer", "description": "Possible values: 0 - Scheduled, 1 - Irregular", "format": "int32" }, "HandleBreakRules": { "type": "boolean" }, "IsFullTime": { "type": "boolean" }, "FullTimeWorkScheduleId": { "type": "string", "format": "uuid", "nullable": true }, "WorkScheduleTimeAdjustmentId": { "type": "string", "format": "uuid", "nullable": true }, "FullTimeDaysToWork": { "type": "number", "format": "double", "nullable": true }, "WorkScheduleWorkDaysIrregularWorkingHours": { "allOf": [ { "$ref": "#/components/schemas/CreateWorkScheduleWorkDayIrregularWorkingHoursRequest" } ], "nullable": true }, "WorkScheduleWorkDays": { "type": "array", "items": { "$ref": "#/components/schemas/CPWorkScheduleWorkDayRequest" }, "nullable": true }, "WorkScheduleSeasons": { "type": "array", "items": { "$ref": "#/components/schemas/CPWorkScheduleSeasonRequest" }, "nullable": true } }, "additionalProperties": false }, "CreateWorkScheduleResponse": { "type": "object", "properties": { "WorkScheduleId": { "type": "string", "description": "Unique identifier of the created work schedule", "format": "uuid" }, "Success": { "type": "boolean", "description": "Indicates whether the work schedule was successfully created" }, "Name": { "type": "string", "description": "Name of the created work schedule", "nullable": true }, "ValidationErrors": { "type": "array", "items": { "$ref": "#/components/schemas/CommonValidationError" }, "description": "List of validation errors if the operation was not successful", "nullable": true } }, "additionalProperties": false }, "CreateWorkScheduleTimeAdjustmentBatchRequest": { "type": "object", "properties": { "WorkScheduleTimeAdjustments": { "type": "array", "items": { "$ref": "#/components/schemas/CreateWorkScheduleTimeAdjustmentRequest" }, "nullable": true } }, "additionalProperties": false }, "CreateWorkScheduleTimeAdjustmentBatchResponse": { "type": "object", "properties": { "NumberOfWorkScheduleTimeAdjustmentsCreated": { "type": "integer", "description": "Number of work schedule time adjustments successfully created", "format": "int32", "readOnly": true }, "WorkScheduleTimeAdjustments": { "type": "array", "items": { "$ref": "#/components/schemas/CreateWorkScheduleTimeAdjustmentResponse" }, "description": "List of individual work schedule time adjustment creation results", "nullable": true } }, "additionalProperties": false }, "CreateWorkScheduleTimeAdjustmentRequest": { "type": "object", "properties": { "Id": { "type": "string", "format": "uuid" }, "Name": { "type": "string", "nullable": true }, "IsDeleted": { "type": "boolean" }, "IsActive": { "type": "boolean" }, "WorkScheduleTimeAdjustmentWorkDays": { "type": "array", "items": { "$ref": "#/components/schemas/CreateWorkScheduleTimeAdjustmentWorkDayRequest" }, "nullable": true } }, "additionalProperties": false }, "CreateWorkScheduleTimeAdjustmentResponse": { "type": "object", "properties": { "WorkScheduleTimeAdjustmentId": { "type": "string", "description": "Unique identifier of the created work schedule time adjustment", "format": "uuid" }, "Success": { "type": "boolean", "description": "Indicates whether the work schedule time adjustment was successfully created" }, "Name": { "type": "string", "description": "Name of the created work schedule time adjustment", "nullable": true }, "ValidationErrors": { "type": "array", "items": { "$ref": "#/components/schemas/CommonValidationError" }, "description": "List of validation errors if the operation was not successful", "nullable": true } }, "additionalProperties": false }, "CreateWorkScheduleTimeAdjustmentWorkDayRequest": { "type": "object", "properties": { "Id": { "type": "string", "format": "uuid" }, "CodedDay": { "type": "integer", "format": "int32", "nullable": true }, "AnnualDate": { "type": "string", "nullable": true }, "MinutesToWork": { "type": "integer", "format": "int32", "nullable": true }, "Note": { "type": "string", "nullable": true } }, "additionalProperties": false }, "CreateWorkScheduleWorkDayIrregularWorkingHoursRequest": { "required": [ "Id", "MinutesToWorkFullTime" ], "type": "object", "properties": { "Id": { "type": "string", "format": "uuid" }, "MinutesToWorkFullTime": { "maximum": 10080, "minimum": 0, "type": "integer", "format": "int32" }, "WorkingDaysFullTime": { "maximum": 7, "minimum": 0, "type": "number", "format": "double", "nullable": true }, "MinutesToWorkPartTime": { "maximum": 10080, "minimum": 0, "type": "integer", "format": "int32", "nullable": true }, "WorkingDaysPartTime": { "maximum": 7, "minimum": 0, "type": "number", "format": "double", "nullable": true } }, "additionalProperties": false }, "EmployeeAgreementApi": { "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier for the employee agreement assignment", "format": "uuid" }, "Name": { "type": "string", "description": "Name of the agreement", "nullable": true }, "AgreementId": { "type": "string", "description": "Reference to the agreement definition", "format": "uuid" }, "ActiveSince": { "type": "string", "description": "Date when this agreement became active for the employee", "format": "date-time" }, "HasConfidenceTime": { "type": "boolean", "description": "Indicates whether the agreement includes confidence time provisions" }, "IsDeleted": { "type": "boolean", "description": "Indicates whether the employee agreement is marked as deleted" } }, "additionalProperties": false }, "EmployeeApi": { "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier for the employee", "format": "uuid" }, "VismaEmployeeId": { "type": "string", "description": "Unique identifier of the employee in the Visma system", "format": "uuid", "nullable": true }, "FirstName": { "type": "string", "description": "Employee's first name", "nullable": true }, "LastName": { "type": "string", "description": "Employee's last name", "nullable": true }, "IdentificationNumber": { "type": "string", "description": "Personal identification number (personnummer) of the employee", "nullable": true }, "EmployeeNumber": { "type": "string", "description": "Employee number assigned by the company", "nullable": true }, "PhoneMobile": { "type": "string", "description": "Employee's mobile phone number", "nullable": true }, "PhoneWork": { "type": "string", "description": "Employee's work phone number", "nullable": true }, "EmailWork": { "type": "string", "description": "Employee's work email address. Can be null", "nullable": true }, "PrimaryAddress": { "type": "string", "description": "Primary street address line of the employee's residence", "nullable": true }, "SecondaryAddress": { "type": "string", "description": "Secondary address line (apartment number, floor, etc.)", "nullable": true }, "City": { "type": "string", "description": "City of the employee's residence", "nullable": true }, "Zip": { "type": "string", "description": "Postal code of the employee's residence", "nullable": true }, "Country": { "type": "string", "description": "Country of the employee's residence", "nullable": true }, "UsesHolidayDays": { "type": "boolean", "description": "Indicates whether the employee uses holiday days" }, "UsesPayslip": { "type": "boolean", "description": "Indicates whether the employee receives digital payslips" }, "UsesWorkingTimeAccountOrReserve": { "type": "boolean", "description": "Indicates whether the employee uses working time account or reserve functionality" }, "EmployeeCategory": { "type": "integer", "description": "Employee category
Possible values: 0 - WhiteCollar, 1 - BlueCollar", "format": "int32", "nullable": true }, "TypeOfPayment": { "type": "integer", "description": "Salary type for the employee
Possible values: 1 - Monthly, 2 - Hourly", "format": "int32" }, "Type": { "type": "integer", "description": "Employee type. Only regular employees can use shortcuts
Possible values: 0 - Regular, 1 - Limited", "format": "int32" }, "ContractEndDate": { "type": "string", "description": "The end date of the employee's contract, if applicable", "format": "date-time", "nullable": true }, "LastLockedDeviationDate": { "type": "string", "description": "Last date when deviations were locked for this employee", "format": "date-time", "nullable": true }, "ModifiedUtc": { "type": "string", "description": "Timestamp when the employee record was last modified (UTC)", "format": "date-time" }, "HolidayRemainingUnpayed": { "type": "number", "description": "Remaining unpaid holiday days in decimal format", "format": "double", "nullable": true }, "HolidayRemainingSaved": { "type": "number", "description": "Remaining saved holiday days in decimal format", "format": "double", "nullable": true }, "HolidayRemainingPayed": { "type": "number", "description": "Remaining paid holiday days in decimal format", "format": "double", "nullable": true }, "HolidayRemainingAdvance": { "type": "number", "description": "Remaining advance holiday days in decimal format", "format": "double", "nullable": true }, "CompensationTimeBalanceInMinutes": { "type": "number", "description": "Compensation time balance in minutes", "format": "double", "nullable": true }, "TimeReserveType": { "type": "integer", "description": "Type of time bank reserve
Possible values: 1 - WorkingTimeReserve, 2 - WorkingTimeAcount", "format": "int32", "nullable": true }, "TimeReserveInMinutes": { "type": "number", "description": "Amount of minutes accumulated in the time bank reserve", "format": "double", "nullable": true }, "UsesVLAFromDate": { "type": "string", "description": "Date from which the employee uses VLA (Visma Leave Application)", "format": "date-time", "nullable": true }, "UsesVLA": { "type": "boolean", "description": "Indicates whether the employee uses VLA (Visma Leave Application)" }, "UsesCompanyExpenseFromDate": { "type": "string", "description": "Date from which the employee uses company expense management", "format": "date-time", "nullable": true }, "EmployeeAgreements": { "type": "array", "items": { "$ref": "#/components/schemas/EmployeeAgreementApi" }, "description": "List of agreements associated with the employee", "nullable": true }, "EmployeeWorkingSchedules": { "type": "array", "items": { "$ref": "#/components/schemas/EmployeeWorkingScheduleApi" }, "description": "List of working schedules associated with the employee", "nullable": true }, "IsDeleted": { "type": "boolean", "description": "Indicates whether the employee is marked as deleted" } }, "additionalProperties": false }, "EmployeeWorkingScheduleApi": { "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier for the employee working schedule assignment", "format": "uuid" }, "WorkScheduleId": { "type": "string", "description": "Reference to the work schedule definition", "format": "uuid" }, "WorkWeekCycleStart": { "type": "integer", "description": "Starting week number in the work week cycle, if the schedule uses a rotating pattern", "format": "int32", "nullable": true }, "Name": { "type": "string", "description": "Name of the work schedule", "nullable": true }, "IsDeleted": { "type": "boolean", "description": "Indicates whether the employee working schedule is marked as deleted" }, "ActiveSince": { "type": "string", "description": "Date when this work schedule became active for the employee", "format": "date-time" } }, "additionalProperties": false }, "ExternalPeriodApi": { "required": [ "DeviationPeriodToDate", "EmployeeId" ], "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier provided by VLS", "format": "uuid", "readOnly": true }, "EmployeeId": { "type": "string", "description": "The ID of the employee. Source: Get from /v1/employees", "format": "uuid" }, "PayslipId": { "type": "string", "description": "If the period is picked up on a payslip, the payslip ID will be here", "format": "uuid", "nullable": true, "readOnly": true }, "DeviationPeriodToDate": { "type": "string", "description": "End date of the deviation period", "format": "date-time" }, "FlexInMinutes": { "type": "integer", "description": "Flex time balance in minutes", "format": "int32", "nullable": true }, "TimeBalanceInMinutes": { "type": "integer", "description": "Time balance in minutes", "format": "int32", "nullable": true }, "ProjectCostCenterDistribution": { "allOf": [ { "$ref": "#/components/schemas/ProjectCostCenterDistributionApi" } ], "description": "Project/cost-center distribution for worked-time salary rows. The percentages within each of Project, CostCenter1, CostCenter2 and CostCenter3 must total at most 100%.", "nullable": true }, "CreatedUtc": { "type": "string", "description": "Timestamp when the external period was created (UTC)", "format": "date-time", "readOnly": true }, "ModifiedUtc": { "type": "string", "description": "Timestamp when the external period was last modified (UTC)", "format": "date-time", "readOnly": true } }, "additionalProperties": false }, "HolidayApi": { "required": [ "EmployeeId", "EndDate", "ShortcutRegistrationMethod", "StartDate" ], "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier provided by VLS", "format": "uuid", "readOnly": true }, "EmployeeId": { "type": "string", "description": "The ID of the employee that the shortcut is registered for. Source: Get from /v1/employees", "format": "uuid" }, "StartDate": { "type": "string", "description": "Start date for the shortcut", "format": "date-time" }, "EndDate": { "type": "string", "description": "End date for the shortcut", "format": "date-time" }, "ShortcutRegistrationMethod": { "type": "integer", "description": "Registration method for the shortcut
Possible values: 0 - Time, 1 - Hours, 2 - Percentage", "format": "int32" }, "PercentOfDay": { "type": "number", "description": "The percentage of the day that the shortcut is registered for. Required when ShortcutRegistrationMethod is Percentage.", "format": "double" }, "MinutesOfDay": { "type": "integer", "description": "The number of minutes the shortcut is registered for. Required when ShortcutRegistrationMethod is Hours.", "format": "int32" }, "StartTime": { "type": "string", "description": "The start time the shortcut is registered for (format: HH:mm). Required when ShortcutRegistrationMethod is Time.", "nullable": true }, "EndTime": { "type": "string", "description": "The end time the shortcut is registered for (format: HH:mm). Required when ShortcutRegistrationMethod is Time.", "nullable": true }, "IsRead": { "type": "boolean", "description": "Indicates whether or not the shortcut has been read by the system. This happens when a payroll administrator has imported it.", "readOnly": true }, "Comment": { "type": "string", "description": "Optional comment for the shortcut", "nullable": true }, "ProjectId": { "type": "string", "description": "Project ID. Source: Get from eAccounting API, /v2/projects", "format": "uuid", "nullable": true }, "CostCenterItemId1": { "type": "string", "description": "Cost center item ID 1. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "CostCenterItemId2": { "type": "string", "description": "Cost center item ID 2. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "CostCenterItemId3": { "type": "string", "description": "Cost center item ID 3. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "ProjectCostCenterDistribution": { "allOf": [ { "$ref": "#/components/schemas/ProjectCostCenterDistributionApi" } ], "description": "Percentage based distribution across projects and cost centers. When supplied on a request, ProjectId and CostCenterItemId1-3 are ignored. In a response, each of ProjectId and CostCenterItemId1-3 is only returned when its dimension holds a single allocation of 100%, and is null when the dimension is split across several allocations or allocated less than 100%. The percentages within each of Project, CostCenter1, CostCenter2 and CostCenter3 must total at most 100%.", "nullable": true } }, "additionalProperties": false }, "HoursWorkedApi": { "required": [ "EmployeeId", "EndDate", "ShortcutRegistrationMethod", "StartDate" ], "type": "object", "properties": { "InconvenientHoursOne": { "type": "integer", "description": "Inconvenient time duration in minutes. Used only when ShortcutRegistrationMethod is set to hour.", "format": "int32", "nullable": true }, "InconvenientHoursTwo": { "type": "integer", "description": "Inconvenient time duration in minutes. Used only when ShortcutRegistrationMethod is set to hour.", "format": "int32", "nullable": true }, "InconvenientHoursThree": { "type": "integer", "description": "Inconvenient time duration in minutes. Used only when ShortcutRegistrationMethod is set to hour.", "format": "int32", "nullable": true }, "InconvenientHoursFour": { "type": "integer", "description": "Inconvenient time duration in minutes. Used only when ShortcutRegistrationMethod is set to hour.", "format": "int32", "nullable": true }, "BreakTime": { "type": "integer", "description": "Break duration in minutes", "format": "int32", "nullable": true }, "Id": { "type": "string", "description": "Unique identifier provided by VLS", "format": "uuid", "readOnly": true }, "EmployeeId": { "type": "string", "description": "The ID of the employee that the shortcut is registered for. Source: Get from /v1/employees", "format": "uuid" }, "StartDate": { "type": "string", "description": "Start date for the shortcut", "format": "date-time" }, "EndDate": { "type": "string", "description": "End date for the shortcut", "format": "date-time" }, "ShortcutRegistrationMethod": { "type": "integer", "description": "Registration method for the shortcut
Possible values: 0 - Time, 1 - Hours, 2 - Percentage", "format": "int32" }, "PercentOfDay": { "type": "number", "description": "The percentage of the day that the shortcut is registered for. Required when ShortcutRegistrationMethod is Percentage.", "format": "double" }, "MinutesOfDay": { "type": "integer", "description": "The number of minutes the shortcut is registered for. Required when ShortcutRegistrationMethod is Hours.", "format": "int32" }, "StartTime": { "type": "string", "description": "The start time the shortcut is registered for (format: HH:mm). Required when ShortcutRegistrationMethod is Time.", "nullable": true }, "EndTime": { "type": "string", "description": "The end time the shortcut is registered for (format: HH:mm). Required when ShortcutRegistrationMethod is Time.", "nullable": true }, "IsRead": { "type": "boolean", "description": "Indicates whether or not the shortcut has been read by the system. This happens when a payroll administrator has imported it.", "readOnly": true }, "Comment": { "type": "string", "description": "Optional comment for the shortcut", "nullable": true }, "ProjectId": { "type": "string", "description": "Project ID. Source: Get from eAccounting API, /v2/projects", "format": "uuid", "nullable": true }, "CostCenterItemId1": { "type": "string", "description": "Cost center item ID 1. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "CostCenterItemId2": { "type": "string", "description": "Cost center item ID 2. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "CostCenterItemId3": { "type": "string", "description": "Cost center item ID 3. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "ProjectCostCenterDistribution": { "allOf": [ { "$ref": "#/components/schemas/ProjectCostCenterDistributionApi" } ], "description": "Percentage based distribution across projects and cost centers. When supplied on a request, ProjectId and CostCenterItemId1-3 are ignored. In a response, each of ProjectId and CostCenterItemId1-3 is only returned when its dimension holds a single allocation of 100%, and is null when the dimension is split across several allocations or allocated less than 100%. The percentages within each of Project, CostCenter1, CostCenter2 and CostCenter3 must total at most 100%.", "nullable": true } }, "additionalProperties": false }, "InconvenientTimeRuleApi": { "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier for the inconvenient time rule", "format": "uuid" }, "DayFilter": { "type": "integer", "description": "Code indicating which day the rule applies to. For possible enum values see https://developer.vismaonline.com/docs/enums#dayfilter", "format": "int32", "nullable": true }, "CodedDay": { "type": "integer", "description": "Numeric code corresponding to a specific holiday or related day. For possible enum values see https://developer.vismaonline.com/docs/enums#codedday", "format": "int32", "nullable": true }, "InconvenientTimeCode": { "type": "integer", "description": "Code representing the type of inconvenient time compensation. For possible enum values see https://developer.vismaonline.com/docs/enums#inconvenienttimecode", "format": "int32" }, "StartTime": { "type": "string", "description": "Start time of the inconvenient time period (format: HH:mm)", "nullable": true }, "EndTime": { "type": "string", "description": "End time of the inconvenient time period (format: HH:mm)", "nullable": true }, "CreatedUtc": { "type": "string", "description": "UTC timestamp when the rule was created", "format": "date-time" }, "ModifiedUtc": { "type": "string", "description": "UTC timestamp when the rule was last modified", "format": "date-time" }, "OrderNumber": { "type": "integer", "description": "Order in which this rule should be evaluated relative to other rules", "format": "int32" }, "TimeRuleAnnualDateId": { "type": "string", "description": "Reference to a specific annual date for this rule. Source: Get from /v1/timeruleannualdates", "format": "uuid", "nullable": true } }, "additionalProperties": false }, "MigrationStatusApi": { "required": [ "ServiceId", "Status" ], "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier of the migration status", "format": "uuid", "readOnly": true }, "ServiceId": { "type": "string", "description": "Unique identifier of the service running the migration", "format": "uuid" }, "Status": { "type": "integer", "description": "Migration status
Possible values: 0 - Initialized, 1 - Started, 2 - Completed, 3 - Failed", "format": "int32" }, "HttpStatusCode": { "type": "integer", "description": "HTTP status code of the migration result", "format": "int32" }, "ErrorId": { "type": "string", "description": "Identifier of the error if the migration failed", "format": "uuid", "nullable": true }, "MigrationType": { "type": "integer", "description": "Type of entity being migrated
Possible values: 0 - Employee, 1 - BreakRule, 2 - WorkSchedule, 3 - WorkScheduleTimeAdjustment, 4 - WorkDayOverride, 5 - Agreement, 6 - CompanySetting", "format": "int32", "nullable": true }, "MigrationVariant": { "type": "integer", "description": "Variant of the migration
Possible values: 0 - PayslipEmployeesMigration, 1 - FullMigration", "format": "int32", "nullable": true }, "ResponseObjectJson": { "type": "string", "description": "JSON response of the migration result; contains validation errors if the migration failed", "nullable": true }, "CreatedUtc": { "type": "string", "description": "Timestamp when the migration status was created (UTC)", "format": "date-time", "readOnly": true }, "ModifiedUtc": { "type": "string", "description": "Timestamp when the migration status was last modified (UTC)", "format": "date-time", "readOnly": true } }, "additionalProperties": false }, "MigrationStatusResponse": { "type": "object", "properties": { "Status": { "type": "integer", "description": "Current status of the migration
Possible values: 0 - Initialized, 1 - Started, 2 - Completed, 3 - Failed", "format": "int32" } }, "additionalProperties": false }, "OtherAbsenceApi": { "required": [ "EmployeeId", "EndDate", "OtherAbsenceGroup", "ShortcutRegistrationMethod", "StartDate" ], "type": "object", "properties": { "OtherAbsenceGroup": { "type": "integer", "description": "Absence group/category
Possible values: 0 - OnLeave, 1 - Other", "format": "int32" }, "IsHolidayAccruing": { "type": "boolean", "description": "Is absence holiday accruing. Optional in requests: when omitted or null on create it defaults to true (the same default as manual registration in the UI); when omitted or null on update the shortcut's current value is kept. Always populated in responses. Has no effect when OtherAbsenceGroup is OnLeave.", "nullable": true }, "OtherAbsenceQuantityType": { "type": "integer", "description": "Type of absence time unit
Possible values: 1 - Days, 2 - CalendarDay, 6 - Hours, 8 - CalendarMonth", "format": "int32" }, "Id": { "type": "string", "description": "Unique identifier provided by VLS", "format": "uuid", "readOnly": true }, "EmployeeId": { "type": "string", "description": "The ID of the employee that the shortcut is registered for. Source: Get from /v1/employees", "format": "uuid" }, "StartDate": { "type": "string", "description": "Start date for the shortcut", "format": "date-time" }, "EndDate": { "type": "string", "description": "End date for the shortcut", "format": "date-time" }, "ShortcutRegistrationMethod": { "type": "integer", "description": "Registration method for the shortcut
Possible values: 0 - Time, 1 - Hours, 2 - Percentage", "format": "int32" }, "PercentOfDay": { "type": "number", "description": "The percentage of the day that the shortcut is registered for. Required when ShortcutRegistrationMethod is Percentage.", "format": "double" }, "MinutesOfDay": { "type": "integer", "description": "The number of minutes the shortcut is registered for. Required when ShortcutRegistrationMethod is Hours.", "format": "int32" }, "StartTime": { "type": "string", "description": "The start time the shortcut is registered for (format: HH:mm). Required when ShortcutRegistrationMethod is Time.", "nullable": true }, "EndTime": { "type": "string", "description": "The end time the shortcut is registered for (format: HH:mm). Required when ShortcutRegistrationMethod is Time.", "nullable": true }, "IsRead": { "type": "boolean", "description": "Indicates whether or not the shortcut has been read by the system. This happens when a payroll administrator has imported it.", "readOnly": true }, "Comment": { "type": "string", "description": "Optional comment for the shortcut", "nullable": true }, "ProjectId": { "type": "string", "description": "Project ID. Source: Get from eAccounting API, /v2/projects", "format": "uuid", "nullable": true }, "CostCenterItemId1": { "type": "string", "description": "Cost center item ID 1. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "CostCenterItemId2": { "type": "string", "description": "Cost center item ID 2. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "CostCenterItemId3": { "type": "string", "description": "Cost center item ID 3. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "ProjectCostCenterDistribution": { "allOf": [ { "$ref": "#/components/schemas/ProjectCostCenterDistributionApi" } ], "description": "Percentage based distribution across projects and cost centers. When supplied on a request, ProjectId and CostCenterItemId1-3 are ignored. In a response, each of ProjectId and CostCenterItemId1-3 is only returned when its dimension holds a single allocation of 100%, and is null when the dimension is split across several allocations or allocated less than 100%. The percentages within each of Project, CostCenter1, CostCenter2 and CostCenter3 must total at most 100%.", "nullable": true } }, "additionalProperties": false }, "OtherAdditionDeductionApi": { "required": [ "Date", "EmployeeId", "Rows" ], "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier provided by VLS", "format": "uuid", "readOnly": true }, "EmployeeId": { "type": "string", "description": "The ID of the employee that the shortcut is registered for. Source: Get from /v1/employees", "format": "uuid" }, "Date": { "type": "string", "description": "The date for the shortcut", "format": "date-time" }, "Comment": { "maxLength": 2000, "minLength": 0, "type": "string", "description": "Optional comment for the shortcut", "nullable": true }, "Rows": { "type": "array", "items": { "$ref": "#/components/schemas/OtherAdditionDeductionRowApi" }, "description": "Additions and/or deductions" } }, "additionalProperties": false }, "OtherAdditionDeductionPaycodesApi": { "type": "object", "properties": { "CompensationPaycodes": { "type": "array", "items": { "$ref": "#/components/schemas/PaycodeApi" }, "description": "Paycodes used for other compensation additions", "nullable": true }, "DeductionPaycodes": { "type": "array", "items": { "$ref": "#/components/schemas/PaycodeApi" }, "description": "Paycodes used for salary deductions", "nullable": true }, "BenefitPaycodes": { "type": "array", "items": { "$ref": "#/components/schemas/PaycodeApi" }, "description": "Paycodes used for employee benefits", "nullable": true }, "AdjustmentTaxPaycodes": { "type": "array", "items": { "$ref": "#/components/schemas/PaycodeApi" }, "description": "Paycodes used for tax adjustments", "nullable": true } }, "additionalProperties": false }, "OtherAdditionDeductionRowApi": { "required": [ "PaycodeNumber" ], "type": "object", "properties": { "PaycodeNumber": { "minLength": 1, "type": "string", "description": "Pay code number. Source: Get from /v1/paycodes" }, "Quantity": { "type": "number", "description": "Addition/deduction quantity. Only required for allowance, mile compensation and benefit paycodes. Must be left empty otherwise. Max 2 decimals.", "format": "double" }, "UnitPrice": { "type": "number", "description": "Addition/deduction unit price. Only for allowance and benefit paycodes, if not mile compensation and the paycode doesn't have a formula set. Must be left empty otherwise. If paycode is mile compensation, unit price can be overridden. Max 2 decimals.", "format": "double" }, "Amount": { "type": "number", "description": "Addition/deduction amount. Only required for reimbursement paycodes. Must be left empty otherwise. Max 2 decimals.", "format": "double" }, "VatAmount": { "maximum": 1000000000, "minimum": 0, "type": "number", "description": "Value-added tax amount. Only for reimbursement paycodes when the company uses VAT on outlay. Max 2 decimals.", "format": "double" }, "CostCenterItemId1": { "type": "string", "description": "Cost center item ID 1. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "CostCenterItemId2": { "type": "string", "description": "Cost center item ID 2. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "CostCenterItemId3": { "type": "string", "description": "Cost center item ID 3. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "ProjectId": { "type": "string", "description": "Project ID. Source: Get from eAccounting API, /v2/projects", "format": "uuid", "nullable": true } }, "additionalProperties": false }, "OverTimeRuleApi": { "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier for the overtime rule", "format": "uuid" }, "DayFilter": { "type": "integer", "description": "Code indicating which day the rule applies to. For possible enum values see https://developer.vismaonline.com/docs/enums#dayfilter", "format": "int32", "nullable": true }, "CodedDay": { "type": "integer", "description": "Numeric code corresponding to a specific holiday or related day. For possible enum values see https://developer.vismaonline.com/docs/enums#codedday", "format": "int32", "nullable": true }, "StartTime": { "type": "string", "description": "Start time of the overtime period (format: HH:mm)", "nullable": true }, "EndTime": { "type": "string", "description": "End time of the overtime period (format: HH:mm)", "nullable": true }, "OvertimeCode": { "type": "integer", "description": "Code indicating the classification of overtime based on defined compensation categories. For possible enum values see https://developer.vismaonline.com/docs/enums#overtimecode", "format": "int32" }, "CompensationTimeCode": { "type": "integer", "description": "Code indicating the classification of time compensation based on defined compensation categories. For possible enum values see https://developer.vismaonline.com/docs/enums#compensationtimecode", "format": "int32" }, "CreatedUtc": { "type": "string", "description": "UTC timestamp when the rule was created", "format": "date-time" }, "ModifiedUtc": { "type": "string", "description": "UTC timestamp when the rule was last modified", "format": "date-time" }, "OrderNumber": { "type": "integer", "description": "Order in which this rule should be evaluated relative to other rules", "format": "int32" }, "TimeRuleAnnualDateId": { "type": "string", "description": "Reference to a specific annual date for this rule. Source: Get from /v1/timeruleannualdates", "format": "uuid", "nullable": true } }, "additionalProperties": false }, "OvertimeApi": { "required": [ "EmployeeId", "EndDate", "ShortcutRegistrationMethod", "StartDate" ], "type": "object", "properties": { "OvertimePayOutMethod": { "type": "integer", "description": "Type of overtime pay out method
Possible values: 1 - Money, 2 - Time", "format": "int32" }, "ScheduleStartTime": { "type": "string", "description": "Start time of the schedule. Used only if the employee has irregular working schedule. Format - HH:mm", "nullable": true }, "ScheduleEndTime": { "type": "string", "description": "End time of the schedule. Used only if the employee has irregular working schedule. Format - HH:mm", "nullable": true }, "ScheduledDayBreakTime": { "type": "integer", "description": "Break duration in minutes. Used only if the employee has irregular working schedule.", "format": "int32" }, "ExtraBreakTime": { "type": "integer", "description": "Extra break duration in minutes", "format": "int32" }, "OvertimeOne": { "type": "integer", "description": "Overtime duration in minutes. Used only when ShortcutRegistrationMethod is set to hour.", "format": "int32", "nullable": true }, "OvertimeTwo": { "type": "integer", "description": "Overtime duration in minutes. Used only when ShortcutRegistrationMethod is set to hour.", "format": "int32", "nullable": true }, "OvertimeThree": { "type": "integer", "description": "Overtime duration in minutes. Used only when ShortcutRegistrationMethod is set to hour.", "format": "int32", "nullable": true }, "OvertimeFour": { "type": "integer", "description": "Overtime duration in minutes at level 4. Used only when ShortcutRegistrationMethod is set to hour.", "format": "int32", "nullable": true }, "AdditionalHoursInMinutes": { "type": "integer", "description": "Additional hours duration in minutes. Used only for part-time employees when ShortcutRegistrationMethod is set to hour.", "format": "int32", "nullable": true }, "Id": { "type": "string", "description": "Unique identifier provided by VLS", "format": "uuid", "readOnly": true }, "EmployeeId": { "type": "string", "description": "The ID of the employee that the shortcut is registered for. Source: Get from /v1/employees", "format": "uuid" }, "StartDate": { "type": "string", "description": "Start date for the shortcut", "format": "date-time" }, "EndDate": { "type": "string", "description": "End date for the shortcut", "format": "date-time" }, "ShortcutRegistrationMethod": { "type": "integer", "description": "Registration method for the shortcut
Possible values: 0 - Time, 1 - Hours, 2 - Percentage", "format": "int32" }, "PercentOfDay": { "type": "number", "description": "The percentage of the day that the shortcut is registered for. Required when ShortcutRegistrationMethod is Percentage.", "format": "double" }, "MinutesOfDay": { "type": "integer", "description": "The number of minutes the shortcut is registered for. Required when ShortcutRegistrationMethod is Hours.", "format": "int32" }, "StartTime": { "type": "string", "description": "The start time the shortcut is registered for (format: HH:mm). Required when ShortcutRegistrationMethod is Time.", "nullable": true }, "EndTime": { "type": "string", "description": "The end time the shortcut is registered for (format: HH:mm). Required when ShortcutRegistrationMethod is Time.", "nullable": true }, "IsRead": { "type": "boolean", "description": "Indicates whether or not the shortcut has been read by the system. This happens when a payroll administrator has imported it.", "readOnly": true }, "Comment": { "type": "string", "description": "Optional comment for the shortcut", "nullable": true }, "ProjectId": { "type": "string", "description": "Project ID. Source: Get from eAccounting API, /v2/projects", "format": "uuid", "nullable": true }, "CostCenterItemId1": { "type": "string", "description": "Cost center item ID 1. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "CostCenterItemId2": { "type": "string", "description": "Cost center item ID 2. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "CostCenterItemId3": { "type": "string", "description": "Cost center item ID 3. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "ProjectCostCenterDistribution": { "allOf": [ { "$ref": "#/components/schemas/ProjectCostCenterDistributionApi" } ], "description": "Percentage based distribution across projects and cost centers. When supplied on a request, ProjectId and CostCenterItemId1-3 are ignored. In a response, each of ProjectId and CostCenterItemId1-3 is only returned when its dimension holds a single allocation of 100%, and is null when the dimension is split across several allocations or allocated less than 100%. The percentages within each of Project, CostCenter1, CostCenter2 and CostCenter3 must total at most 100%.", "nullable": true } }, "additionalProperties": false }, "PaginatedResponseOfAgreementApi": { "required": [ "Data", "Meta" ], "type": "object", "properties": { "Meta": { "allOf": [ { "$ref": "#/components/schemas/CommonPaginationMetadata" } ] }, "Data": { "type": "array", "items": { "$ref": "#/components/schemas/AgreementApi" } } }, "additionalProperties": false }, "PaginatedResponseOfBreakRuleApi": { "required": [ "Data", "Meta" ], "type": "object", "properties": { "Meta": { "allOf": [ { "$ref": "#/components/schemas/CommonPaginationMetadata" } ] }, "Data": { "type": "array", "items": { "$ref": "#/components/schemas/BreakRuleApi" } } }, "additionalProperties": false }, "PaginatedResponseOfEmployeeApi": { "required": [ "Data", "Meta" ], "type": "object", "properties": { "Meta": { "allOf": [ { "$ref": "#/components/schemas/CommonPaginationMetadata" } ] }, "Data": { "type": "array", "items": { "$ref": "#/components/schemas/EmployeeApi" } } }, "additionalProperties": false }, "PaginatedResponseOfExternalPeriodApi": { "required": [ "Data", "Meta" ], "type": "object", "properties": { "Meta": { "allOf": [ { "$ref": "#/components/schemas/CommonPaginationMetadata" } ] }, "Data": { "type": "array", "items": { "$ref": "#/components/schemas/ExternalPeriodApi" } } }, "additionalProperties": false }, "PaginatedResponseOfPaycodeApi": { "required": [ "Data", "Meta" ], "type": "object", "properties": { "Meta": { "allOf": [ { "$ref": "#/components/schemas/CommonPaginationMetadata" } ] }, "Data": { "type": "array", "items": { "$ref": "#/components/schemas/PaycodeApi" } } }, "additionalProperties": false }, "PaginatedResponseOfPayslipApi": { "required": [ "Data", "Meta" ], "type": "object", "properties": { "Meta": { "allOf": [ { "$ref": "#/components/schemas/CommonPaginationMetadata" } ] }, "Data": { "type": "array", "items": { "$ref": "#/components/schemas/PayslipApi" } } }, "additionalProperties": false }, "PaginatedResponseOfTimeRuleAnnualDateApi": { "required": [ "Data", "Meta" ], "type": "object", "properties": { "Meta": { "allOf": [ { "$ref": "#/components/schemas/CommonPaginationMetadata" } ] }, "Data": { "type": "array", "items": { "$ref": "#/components/schemas/TimeRuleAnnualDateApi" } } }, "additionalProperties": false }, "PaginatedResponseOfWagerunApi": { "required": [ "Data", "Meta" ], "type": "object", "properties": { "Meta": { "allOf": [ { "$ref": "#/components/schemas/CommonPaginationMetadata" } ] }, "Data": { "type": "array", "items": { "$ref": "#/components/schemas/WagerunApi" } } }, "additionalProperties": false }, "PaginatedResponseOfWorkDayOverrideApi": { "required": [ "Data", "Meta" ], "type": "object", "properties": { "Meta": { "allOf": [ { "$ref": "#/components/schemas/CommonPaginationMetadata" } ] }, "Data": { "type": "array", "items": { "$ref": "#/components/schemas/WorkDayOverrideApi" } } }, "additionalProperties": false }, "PaginatedResponseOfWorkScheduleApi": { "required": [ "Data", "Meta" ], "type": "object", "properties": { "Meta": { "allOf": [ { "$ref": "#/components/schemas/CommonPaginationMetadata" } ] }, "Data": { "type": "array", "items": { "$ref": "#/components/schemas/WorkScheduleApi" } } }, "additionalProperties": false }, "PaginatedResponseOfWorkScheduleTimeAdjustmentApi": { "required": [ "Data", "Meta" ], "type": "object", "properties": { "Meta": { "allOf": [ { "$ref": "#/components/schemas/CommonPaginationMetadata" } ] }, "Data": { "type": "array", "items": { "$ref": "#/components/schemas/WorkScheduleTimeAdjustmentApi" } } }, "additionalProperties": false }, "ParentalLeaveApi": { "required": [ "EmployeeId", "EndDate", "ShortcutRegistrationMethod", "StartDate" ], "type": "object", "properties": { "IsTenDaysAtTheBirthOfChild": { "type": "boolean", "description": "Is leave registered during the first 10 days after the birth of a child. If IsTenDaysAtTheBirthOfChild is true, IsHolidayAccruing is ignored and has no effect on the resulting payslip rows." }, "IsHolidayAccruing": { "type": "boolean", "description": "Is leave holiday accruing. Optional in requests: when omitted or null on create it defaults to true (the same default as manual registration in the UI); when omitted or null on update the shortcut's current value is kept. Always populated in responses. If IsTenDaysAtTheBirthOfChild is true, IsHolidayAccruing is ignored and has no effect on the resulting payslip rows.", "nullable": true }, "AbsenceTimeUnit": { "type": "integer", "description": "Type of absence time unit
Possible values: 1 - Days, 2 - CalendarDay, 6 - Hours, 8 - CalendarMonth", "format": "int32" }, "Id": { "type": "string", "description": "Unique identifier provided by VLS", "format": "uuid", "readOnly": true }, "EmployeeId": { "type": "string", "description": "The ID of the employee that the shortcut is registered for. Source: Get from /v1/employees", "format": "uuid" }, "StartDate": { "type": "string", "description": "Start date for the shortcut", "format": "date-time" }, "EndDate": { "type": "string", "description": "End date for the shortcut", "format": "date-time" }, "ShortcutRegistrationMethod": { "type": "integer", "description": "Registration method for the shortcut
Possible values: 0 - Time, 1 - Hours, 2 - Percentage", "format": "int32" }, "PercentOfDay": { "type": "number", "description": "The percentage of the day that the shortcut is registered for. Required when ShortcutRegistrationMethod is Percentage.", "format": "double" }, "MinutesOfDay": { "type": "integer", "description": "The number of minutes the shortcut is registered for. Required when ShortcutRegistrationMethod is Hours.", "format": "int32" }, "StartTime": { "type": "string", "description": "The start time the shortcut is registered for (format: HH:mm). Required when ShortcutRegistrationMethod is Time.", "nullable": true }, "EndTime": { "type": "string", "description": "The end time the shortcut is registered for (format: HH:mm). Required when ShortcutRegistrationMethod is Time.", "nullable": true }, "IsRead": { "type": "boolean", "description": "Indicates whether or not the shortcut has been read by the system. This happens when a payroll administrator has imported it.", "readOnly": true }, "Comment": { "type": "string", "description": "Optional comment for the shortcut", "nullable": true }, "ProjectId": { "type": "string", "description": "Project ID. Source: Get from eAccounting API, /v2/projects", "format": "uuid", "nullable": true }, "CostCenterItemId1": { "type": "string", "description": "Cost center item ID 1. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "CostCenterItemId2": { "type": "string", "description": "Cost center item ID 2. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "CostCenterItemId3": { "type": "string", "description": "Cost center item ID 3. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "ProjectCostCenterDistribution": { "allOf": [ { "$ref": "#/components/schemas/ProjectCostCenterDistributionApi" } ], "description": "Percentage based distribution across projects and cost centers. When supplied on a request, ProjectId and CostCenterItemId1-3 are ignored. In a response, each of ProjectId and CostCenterItemId1-3 is only returned when its dimension holds a single allocation of 100%, and is null when the dimension is split across several allocations or allocated less than 100%. The percentages within each of Project, CostCenter1, CostCenter2 and CostCenter3 must total at most 100%.", "nullable": true } }, "additionalProperties": false }, "PaycodeApi": { "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier of the paycode", "format": "uuid" }, "PaycodeNumber": { "type": "string", "description": "The numeric code that identifies the paycode", "nullable": true }, "PaycodeName": { "type": "string", "description": "Display name of the paycode", "nullable": true }, "PaycodeTypeName": { "type": "string", "description": "Name of the paycode type category", "nullable": true }, "PaycodeTypeId": { "type": "string", "description": "Unique identifier of the paycode type category", "format": "uuid" }, "Formula": { "type": "string", "description": "Calculation formula used to compute the paycode amount", "nullable": true }, "CanBeUsedByBlueCollars": { "type": "boolean", "description": "Indicates whether the paycode is applicable to blue-collar employees" }, "CanBeUsedByWhiteCollars": { "type": "boolean", "description": "Indicates whether the paycode is applicable to white-collar employees" }, "CanBeUsedForMonthlySalary": { "type": "boolean", "description": "Indicates whether the paycode is applicable to employees with monthly salary" }, "CanBeUsedForHourlySalary": { "type": "boolean", "description": "Indicates whether the paycode is applicable to employees with hourly salary" }, "CanBeUsedByLimitedEmployees": { "type": "boolean", "description": "Indicates whether the paycode is applicable to limited employees" }, "VisibleOnPayslipPrint": { "type": "boolean", "description": "Indicates whether the paycode is visible on the printed payslip" }, "ModifiedUtc": { "type": "string", "description": "Date and time in UTC when the paycode was last modified", "format": "date-time" } }, "additionalProperties": false }, "PayrollSettingsApi": { "type": "object", "properties": { "CompanyName": { "type": "string", "description": "Name of the company associated with the payroll settings", "nullable": true }, "CompanyRegistrationNumber": { "type": "string", "description": "Company registration number (organisationsnummer) used for tax and government reporting", "nullable": true }, "UsesVatOnExpense": { "type": "boolean", "description": "Indicates whether VAT is applied on expense reimbursements" }, "UsesMyPayslip": { "type": "boolean", "description": "Indicates whether the My Payslip digital payslip service is enabled for employees" }, "UsesVLA": { "type": "boolean", "description": "Indicates whether the company uses VLA (work environment agreement) reporting" }, "UsesTravelAndExpense": { "type": "boolean", "description": "Indicates whether the travel and expense management feature is enabled" }, "ModifiedUtc": { "type": "string", "description": "UTC timestamp when the payroll settings were last modified", "format": "date-time" }, "MonthlySalaryPaymentPeriod": { "type": "integer", "description": "Defines which period monthly salary covers.
Possible values: 1 - CurrentMonth, 2 - PreviousMonth, 3 - UntilDateOfMonth", "format": "int32" }, "MonthlySalaryDeviationPeriod": { "type": "integer", "description": "Defines which period deviations are reported for monthly salaried employees.
Possible values: 1 - PreviousMonth, 2 - UntilDateOfMonth", "format": "int32" }, "HourlyWagePaymentPeriod": { "type": "integer", "description": "Defines which period hourly wage payments cover.
Possible values: 1 - PreviousMonth, 2 - UntilDateOfMonth", "format": "int32" }, "HourlyWageDeviationPeriod": { "type": "integer", "description": "Defines which period deviations are reported for hourly wage employees.
Possible values: 1 - PreviousMonth, 2 - UntilDateOfMonth", "format": "int32" }, "MonthlySalaryPaymentPeriodUntilDay": { "type": "integer", "description": "Day of the month up to which the monthly salary payment period extends. Only applicable when MonthlySalaryPaymentPeriod is set to UntilDateOfMonth", "format": "int32", "nullable": true }, "HourlyWagePaymentPeriodUntilDay": { "type": "integer", "description": "Day of the month up to which the hourly wage payment period extends. Only applicable when HourlyWagePaymentPeriod is set to UntilDateOfMonth", "format": "int32", "nullable": true }, "MonthlySalaryPaymentPeriodBlueCollar": { "type": "integer", "description": "Defines which period monthly salary covers for blue collar employees.
Possible values: 1 - CurrentMonth, 2 - PreviousMonth, 3 - UntilDateOfMonth", "format": "int32" }, "MonthlySalaryDeviationPeriodBlueCollar": { "type": "integer", "description": "Defines which period deviations are reported for monthly salaried blue collar employees.
Possible values: 1 - PreviousMonth, 2 - UntilDateOfMonth", "format": "int32" }, "HourlyWagePaymentPeriodBlueCollar": { "type": "integer", "description": "Defines which period hourly wage payments cover for blue collar employees.
Possible values: 1 - PreviousMonth, 2 - UntilDateOfMonth", "format": "int32" }, "HourlyWageDeviationPeriodBlueCollar": { "type": "integer", "description": "Defines which period deviations are reported for hourly wage blue collar employees.
Possible values: 1 - PreviousMonth, 2 - UntilDateOfMonth", "format": "int32" }, "MonthlySalaryPaymentPeriodUntilDayBlueCollar": { "type": "integer", "description": "Day of the month up to which the monthly salary payment period extends for blue collar employees. Only applicable when MonthlySalaryPaymentPeriodBlueCollar is set to UntilDateOfMonth", "format": "int32", "nullable": true }, "HourlyWagePaymentPeriodUntilDayBlueCollar": { "type": "integer", "description": "Day of the month up to which the hourly wage payment period extends for blue collar employees. Only applicable when HourlyWagePaymentPeriodBlueCollar is set to UntilDateOfMonth", "format": "int32", "nullable": true }, "HolidayIntermittentMethod": { "type": "integer", "description": "Method used for calculating intermittent holiday pay and days
Possible values: 0 - Net, 1 - Gross", "format": "int32", "nullable": true } }, "additionalProperties": false }, "PayslipApi": { "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier of the payslip", "format": "uuid" }, "EmployeeId": { "type": "string", "description": "Unique identifier of the employee the payslip belongs to", "format": "uuid" }, "SalaryPeriod_ToDate": { "type": "string", "description": "End date of the salary period", "format": "date-time" }, "SalaryPeriod_FromDate": { "type": "string", "description": "Start date of the salary period", "format": "date-time" }, "DeviationPeriod_ToDate": { "type": "string", "description": "End date of the deviation reporting period", "format": "date-time" }, "CreatedUtc": { "type": "string", "description": "UTC timestamp when the payslip was created", "format": "date-time" }, "ModifiedUtc": { "type": "string", "description": "UTC timestamp when the payslip was last modified", "format": "date-time" }, "LockedDate": { "type": "string", "description": "Date when the payslip was locked, or null if it has not been locked", "format": "date-time", "nullable": true }, "Locked": { "type": "boolean", "description": "Indicates whether the payslip is locked and cannot be modified" } }, "additionalProperties": false }, "PayslipDetailedApi": { "type": "object", "properties": { "GrossSalary": { "type": "number", "description": "Gross salary amount for this payslip", "format": "double" }, "NetSalary": { "type": "number", "description": "Net salary amount after deductions for this payslip", "format": "double" }, "PreliminaryTax": { "type": "number", "description": "Preliminary tax amount deducted from this payslip", "format": "double" }, "PaymentDateUtc": { "type": "string", "description": "UTC date when the salary payment is scheduled", "format": "date-time" }, "WageRunType": { "type": "integer", "description": "Type of wage run associated with this payslip
Possible values: 1 - ordinary pay, 2 - additional payment", "format": "int32" }, "Id": { "type": "string", "description": "Unique identifier of the payslip", "format": "uuid" }, "EmployeeId": { "type": "string", "description": "Unique identifier of the employee the payslip belongs to", "format": "uuid" }, "SalaryPeriod_ToDate": { "type": "string", "description": "End date of the salary period", "format": "date-time" }, "SalaryPeriod_FromDate": { "type": "string", "description": "Start date of the salary period", "format": "date-time" }, "DeviationPeriod_ToDate": { "type": "string", "description": "End date of the deviation reporting period", "format": "date-time" }, "CreatedUtc": { "type": "string", "description": "UTC timestamp when the payslip was created", "format": "date-time" }, "ModifiedUtc": { "type": "string", "description": "UTC timestamp when the payslip was last modified", "format": "date-time" }, "LockedDate": { "type": "string", "description": "Date when the payslip was locked, or null if it has not been locked", "format": "date-time", "nullable": true }, "Locked": { "type": "boolean", "description": "Indicates whether the payslip is locked and cannot be modified" } }, "additionalProperties": false }, "ProjectCostCenterAllocationApi": { "type": "object", "properties": { "Id": { "type": "string", "description": "Project id or cost center item id for this allocation.", "format": "uuid" }, "Percentage": { "type": "number", "description": "Allocation percentage for this entry.", "format": "double" } }, "additionalProperties": false }, "ProjectCostCenterDistributionApi": { "type": "object", "properties": { "Project": { "type": "array", "items": { "$ref": "#/components/schemas/ProjectCostCenterAllocationApi" }, "description": "Allocations on Project. The percentages within Project must total at most 100%.", "nullable": true }, "CostCenter1": { "type": "array", "items": { "$ref": "#/components/schemas/ProjectCostCenterAllocationApi" }, "description": "Allocations on cost center 1. The percentages within CostCenter1 must total at most 100%.", "nullable": true }, "CostCenter2": { "type": "array", "items": { "$ref": "#/components/schemas/ProjectCostCenterAllocationApi" }, "description": "Allocations on cost center 2. The percentages within CostCenter2 must total at most 100%.", "nullable": true }, "CostCenter3": { "type": "array", "items": { "$ref": "#/components/schemas/ProjectCostCenterAllocationApi" }, "description": "Allocations on cost center 3. The percentages within CostCenter3 must total at most 100%.", "nullable": true } }, "additionalProperties": false }, "SickLeaveApi": { "required": [ "EmployeeId", "EndDate", "ShortcutRegistrationMethod", "StartDate" ], "type": "object", "properties": { "DontCreateKarens": { "type": "boolean", "description": "Indicates whether the shortcut should generate karens (waiting day) deductions or not" }, "KarensDeductionHoursOverride": { "type": "number", "description": "Amount of hours to override the karens deduction with. Can only be set if the employee has an irregular schedule", "format": "double", "nullable": true }, "Id": { "type": "string", "description": "Unique identifier provided by VLS", "format": "uuid", "readOnly": true }, "EmployeeId": { "type": "string", "description": "The ID of the employee that the shortcut is registered for. Source: Get from /v1/employees", "format": "uuid" }, "StartDate": { "type": "string", "description": "Start date for the shortcut", "format": "date-time" }, "EndDate": { "type": "string", "description": "End date for the shortcut", "format": "date-time" }, "ShortcutRegistrationMethod": { "type": "integer", "description": "Registration method for the shortcut
Possible values: 0 - Time, 1 - Hours, 2 - Percentage", "format": "int32" }, "PercentOfDay": { "type": "number", "description": "The percentage of the day that the shortcut is registered for. Required when ShortcutRegistrationMethod is Percentage.", "format": "double" }, "MinutesOfDay": { "type": "integer", "description": "The number of minutes the shortcut is registered for. Required when ShortcutRegistrationMethod is Hours.", "format": "int32" }, "StartTime": { "type": "string", "description": "The start time the shortcut is registered for (format: HH:mm). Required when ShortcutRegistrationMethod is Time.", "nullable": true }, "EndTime": { "type": "string", "description": "The end time the shortcut is registered for (format: HH:mm). Required when ShortcutRegistrationMethod is Time.", "nullable": true }, "IsRead": { "type": "boolean", "description": "Indicates whether or not the shortcut has been read by the system. This happens when a payroll administrator has imported it.", "readOnly": true }, "Comment": { "type": "string", "description": "Optional comment for the shortcut", "nullable": true }, "ProjectId": { "type": "string", "description": "Project ID. Source: Get from eAccounting API, /v2/projects", "format": "uuid", "nullable": true }, "CostCenterItemId1": { "type": "string", "description": "Cost center item ID 1. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "CostCenterItemId2": { "type": "string", "description": "Cost center item ID 2. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "CostCenterItemId3": { "type": "string", "description": "Cost center item ID 3. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "ProjectCostCenterDistribution": { "allOf": [ { "$ref": "#/components/schemas/ProjectCostCenterDistributionApi" } ], "description": "Percentage based distribution across projects and cost centers. When supplied on a request, ProjectId and CostCenterItemId1-3 are ignored. In a response, each of ProjectId and CostCenterItemId1-3 is only returned when its dimension holds a single allocation of 100%, and is null when the dimension is split across several allocations or allocated less than 100%. The percentages within each of Project, CostCenter1, CostCenter2 and CostCenter3 must total at most 100%.", "nullable": true } }, "additionalProperties": false }, "TimeRuleAnnualDateApi": { "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier for the time rule annual date record", "format": "uuid" }, "Name": { "type": "string", "description": "Name of the time rule annual date", "nullable": true }, "Month": { "type": "integer", "description": "Month of the year for the time rule annual date (1-12)", "format": "int32" }, "Day": { "type": "integer", "description": "Day of the month for the time rule annual date (1-31)", "format": "int32" }, "CreatedUtc": { "type": "string", "description": "Timestamp indicating when the time rule annual date record was created (UTC)", "format": "date-time" }, "ModifiedUtc": { "type": "string", "description": "Timestamp indicating when the time rule annual date record was last modified (UTC)", "format": "date-time" }, "IsDeleted": { "type": "boolean", "description": "Indicates whether the time rule annual date record is marked as deleted" } }, "additionalProperties": false }, "TimebankApi": { "required": [ "EmployeeId", "EndDate", "ShortcutRegistrationMethod", "StartDate" ], "type": "object", "properties": { "PayOutSource": { "type": "integer", "description": "Type of hours balance, which will be decreased by the shortcut. Null will be interpreted as CompensationTime.
Possible values: 1 - CompensationTime, 2 - WorkingTimeReserve", "format": "int32", "nullable": true }, "CompPayoutMethod": { "type": "integer", "description": "Type of compensation for subtracted hours
Possible values: 1 - Money (only for hours registration method), 2 - Time (for time and hours registration methods)", "format": "int32" }, "ScheduleStartTime": { "type": "string", "description": "Deprecated property (value will always be null)", "nullable": true }, "ScheduleEndTime": { "type": "string", "description": "Deprecated property (value will always be null)", "nullable": true }, "ScheduledDayBreakTime": { "type": "integer", "description": "Deprecated property (value will always be 0)", "format": "int32" }, "Id": { "type": "string", "description": "Unique identifier provided by VLS", "format": "uuid", "readOnly": true }, "EmployeeId": { "type": "string", "description": "The ID of the employee that the shortcut is registered for. Source: Get from /v1/employees", "format": "uuid" }, "StartDate": { "type": "string", "description": "Start date for the shortcut", "format": "date-time" }, "EndDate": { "type": "string", "description": "End date for the shortcut", "format": "date-time" }, "ShortcutRegistrationMethod": { "type": "integer", "description": "Registration method for the shortcut
Possible values: 0 - Time, 1 - Hours, 2 - Percentage", "format": "int32" }, "PercentOfDay": { "type": "number", "description": "The percentage of the day that the shortcut is registered for. Required when ShortcutRegistrationMethod is Percentage.", "format": "double" }, "MinutesOfDay": { "type": "integer", "description": "The number of minutes the shortcut is registered for. Required when ShortcutRegistrationMethod is Hours.", "format": "int32" }, "StartTime": { "type": "string", "description": "The start time the shortcut is registered for (format: HH:mm). Required when ShortcutRegistrationMethod is Time.", "nullable": true }, "EndTime": { "type": "string", "description": "The end time the shortcut is registered for (format: HH:mm). Required when ShortcutRegistrationMethod is Time.", "nullable": true }, "IsRead": { "type": "boolean", "description": "Indicates whether or not the shortcut has been read by the system. This happens when a payroll administrator has imported it.", "readOnly": true }, "Comment": { "type": "string", "description": "Optional comment for the shortcut", "nullable": true }, "ProjectId": { "type": "string", "description": "Project ID. Source: Get from eAccounting API, /v2/projects", "format": "uuid", "nullable": true }, "CostCenterItemId1": { "type": "string", "description": "Cost center item ID 1. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "CostCenterItemId2": { "type": "string", "description": "Cost center item ID 2. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "CostCenterItemId3": { "type": "string", "description": "Cost center item ID 3. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "ProjectCostCenterDistribution": { "allOf": [ { "$ref": "#/components/schemas/ProjectCostCenterDistributionApi" } ], "description": "Percentage based distribution across projects and cost centers. When supplied on a request, ProjectId and CostCenterItemId1-3 are ignored. In a response, each of ProjectId and CostCenterItemId1-3 is only returned when its dimension holds a single allocation of 100%, and is null when the dimension is split across several allocations or allocated less than 100%. The percentages within each of Project, CostCenter1, CostCenter2 and CostCenter3 must total at most 100%.", "nullable": true } }, "additionalProperties": false }, "TravelAndExpenseApi": { "required": [ "Date", "EmployeeId", "Rows" ], "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier provided by VLS", "format": "uuid", "readOnly": true }, "EmployeeId": { "type": "string", "description": "The ID of the employee that the shortcut is registered for. Source: Get from /v1/employees", "format": "uuid" }, "Date": { "type": "string", "description": "The date for the shortcut", "format": "date-time" }, "ReportLink": { "type": "string", "description": "Report link (format: absolute HTTPS URL)", "nullable": true }, "Comment": { "maxLength": 2000, "minLength": 0, "type": "string", "description": "Optional comment for the shortcut", "nullable": true }, "Rows": { "type": "array", "items": { "$ref": "#/components/schemas/TravelAndExpenseRowApi" }, "description": "Travel and other Expenses" } }, "additionalProperties": false }, "TravelAndExpensePaycodesApi": { "type": "object", "properties": { "ReimbursmentPaycodes": { "type": "array", "items": { "$ref": "#/components/schemas/PaycodeApi" }, "description": "Paycodes used for reimbursement of travel and expense costs", "nullable": true }, "CompensationPaycodes": { "type": "array", "items": { "$ref": "#/components/schemas/PaycodeApi" }, "description": "Paycodes used for travel and expense compensation", "nullable": true }, "AllowancePaycodes": { "type": "array", "items": { "$ref": "#/components/schemas/PaycodeApi" }, "description": "Paycodes used for travel and expense allowances", "nullable": true }, "BenefitPaycodes": { "type": "array", "items": { "$ref": "#/components/schemas/PaycodeApi" }, "description": "Paycodes used for travel and expense benefits", "nullable": true } }, "additionalProperties": false }, "TravelAndExpenseRowApi": { "required": [ "PaycodeNumber" ], "type": "object", "properties": { "PaycodeNumber": { "minLength": 1, "type": "string", "description": "Pay code number. Source: Get from /v1/paycodes" }, "Quantity": { "type": "number", "description": "Addition/deduction quantity. Only required for allowance, mile compensation and benefit paycodes. Must be left empty otherwise. Max 2 decimals.", "format": "double" }, "UnitPrice": { "type": "number", "description": "Addition/deduction unit price. Only for allowance and benefit paycodes, if not mile compensation and the paycode doesn't have a formula set. Must be left empty otherwise. If paycode is mile compensation, unit price can be overridden. Max 2 decimals.", "format": "double", "nullable": true }, "Amount": { "type": "number", "description": "Addition/deduction amount. Only required for reimbursement paycodes. Must be left empty otherwise. Max 2 decimals.", "format": "double", "nullable": true }, "VatAmount": { "maximum": 1000000000, "minimum": 0, "type": "number", "description": "Value-added tax amount. Only for reimbursement paycodes when the company uses VAT on outlay. Max 2 decimals.", "format": "double", "nullable": true }, "CostCenterItemId1": { "type": "string", "description": "Cost center item ID 1. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "CostCenterItemId2": { "type": "string", "description": "Cost center item ID 2. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "CostCenterItemId3": { "type": "string", "description": "Cost center item ID 3. Source: Get from eAccounting API, /v2/costcenters", "format": "uuid", "nullable": true }, "ProjectId": { "type": "string", "description": "Project ID. Source: Get from eAccounting API, /v2/projects", "format": "uuid", "nullable": true } }, "additionalProperties": false }, "WagerunApi": { "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier for the wage run", "format": "uuid" }, "Description": { "type": "string", "description": "Wage run description", "nullable": true }, "CreatedUtc": { "type": "string", "description": "UTC timestamp when the wage run was created", "format": "date-time" }, "ModifiedUtc": { "type": "string", "description": "UTC timestamp when the wage run was last modified", "format": "date-time" }, "SalaryPeriodMonthlyFromDateUtc": { "type": "string", "description": "UTC timestamp when payment period starts for monthly salary in this wage run", "format": "date-time" }, "SalaryPeriodMonthlyToDateUtc": { "type": "string", "description": "UTC timestamp when payment period ends for monthly salary in this wage run", "format": "date-time" }, "SalaryPeriodHourlyFromDateUtc": { "type": "string", "description": "UTC timestamp when payment period starts for hourly salary in this wage run", "format": "date-time" }, "SalaryPeriodHourlyToDateUtc": { "type": "string", "description": "UTC timestamp when payment period ends for hourly salary in this wage run", "format": "date-time" }, "DeviationPeriodMonthlyToDateUtc": { "type": "string", "description": "UTC timestamp when monthly deviation period ends", "format": "date-time" }, "DeviationPeriodHourlyToDateUtc": { "type": "string", "description": "UTC timestamp when deviation period ends", "format": "date-time" }, "PaymentDateUtc": { "type": "string", "description": "UTC timestamp when payment is made for this wage run", "format": "date-time" }, "GrossSalary": { "type": "number", "description": "Gross salary sum for this wage run", "format": "double" }, "Payment": { "type": "number", "description": "Net payment amount for this wage run", "format": "double" }, "Tax": { "type": "number", "description": "Total tax amount for this wage run", "format": "double" }, "WageRunType": { "type": "integer", "description": "Type of the wage run
Possible values: 1 - ordinary pay, 2 - additional payment", "format": "int32" }, "PayslipIds": { "type": "array", "items": { "type": "string", "format": "uuid" }, "description": "List of payslip IDs associated with this wage run", "nullable": true }, "Locked": { "type": "boolean", "description": "Indicates whether the wage run is locked" } }, "additionalProperties": false }, "WorkDayOverrideApi": { "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier provided by VLS", "format": "uuid" }, "EmployeeId": { "type": "string", "description": "The unique identifier of the employee that the work day is registered for", "format": "uuid" }, "DateToOverride": { "type": "string", "description": "Date that is overridden", "format": "date-time" }, "StartTime": { "type": "string", "description": "Work day start time (format: HH:mm). Null indicates a free day.", "nullable": true }, "EndTime": { "type": "string", "description": "Work day end time (format: HH:mm). Null indicates a free day.", "nullable": true }, "LunchBreakId": { "type": "string", "description": "Unique identifier of a lunch break", "format": "uuid", "nullable": true }, "FirstCoffeeBreakId": { "type": "string", "description": "Unique identifier of a first coffee break", "format": "uuid", "nullable": true }, "SecondCoffeeBreakId": { "type": "string", "description": "Unique identifier of a second coffee break", "format": "uuid", "nullable": true }, "FullTimeStartTime": { "type": "string", "description": "Full-time work day start time (format: HH:mm)", "nullable": true }, "FullTimeEndTime": { "type": "string", "description": "Full-time work day end time (format: HH:mm)", "nullable": true }, "FullTimeLunchBreakId": { "type": "string", "description": "Unique identifier of a lunch break for full-time work day", "format": "uuid", "nullable": true }, "FullTimeFirstCoffeeBreakId": { "type": "string", "description": "Unique identifier of a first coffee break for full-time work day", "format": "uuid", "nullable": true }, "FullTimeSecondCoffeeBreakId": { "type": "string", "description": "Unique identifier of a second coffee break for full-time work day", "format": "uuid", "nullable": true }, "IsDeleted": { "type": "boolean", "description": "Indicates whether the work day override is marked as deleted" }, "CreatedUtc": { "type": "string", "description": "Timestamp indicating when the work day override was created (UTC)", "format": "date-time" }, "ModifiedUtc": { "type": "string", "description": "Timestamp indicating when the work day override was last modified (UTC)", "format": "date-time" } }, "additionalProperties": false }, "WorkScheduleApi": { "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier provided by VLS", "format": "uuid" }, "Name": { "type": "string", "description": "Name of the work schedule", "nullable": true }, "IsActive": { "type": "boolean", "description": "Is time work schedule active" }, "ScheduleType": { "type": "integer", "description": "Work schedule type
Possible values: 0 - Scheduled, 1 - Irregular", "format": "int32" }, "HandleBreakRules": { "type": "boolean", "description": "Indicates whether work schedule can handle break rules" }, "IsFullTime": { "type": "boolean", "description": "Indicates whether work schedule is full time" }, "CreatedFromExternalApp": { "type": "boolean", "description": "Indicates whether work schedule is created not via VLS", "nullable": true }, "CreatedUtc": { "type": "string", "description": "Timestamp indicating when the work schedule was created (UTC)", "format": "date-time" }, "ModifiedUtc": { "type": "string", "description": "Timestamp indicating when the work schedule was last modified (UTC)", "format": "date-time" }, "IsDeleted": { "type": "boolean", "description": "Indicates whether the work schedule is marked as deleted" }, "WorkScheduleWorkDaysIrregularWorkingHours": { "allOf": [ { "$ref": "#/components/schemas/WorkScheduleWorkDayIrregularWorkingHoursApi" } ], "description": "Work days working hours for irregular schedules", "nullable": true }, "WorkScheduleWorkDays": { "type": "array", "items": { "$ref": "#/components/schemas/WorkScheduleWorkDayApi" }, "description": "Work schedule work days", "nullable": true }, "WorkScheduleSeasons": { "type": "array", "items": { "$ref": "#/components/schemas/WorkScheduleSeasonsApi" }, "description": "Work schedule periods/seasons", "nullable": true }, "FullTimeWorkScheduleId": { "type": "string", "description": "Unique identifier of the full time work schedule", "format": "uuid", "nullable": true }, "WorkScheduleTimeAdjustmentId": { "type": "string", "description": "Unique identifier of the work schedule time adjustment", "format": "uuid", "nullable": true }, "FullTimeDaysToWork": { "type": "number", "description": "Number of weekly working days that constitute a full-time work schedule", "format": "double", "nullable": true } }, "additionalProperties": false }, "WorkScheduleSeasonsApi": { "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier provided by VLS", "format": "uuid" }, "StartDay": { "type": "integer", "description": "Start day of the season", "format": "int32" }, "StartMonth": { "type": "integer", "description": "Start month of the season", "format": "int32" }, "EndDay": { "type": "integer", "description": "End day of the season", "format": "int32" }, "EndMonth": { "type": "integer", "description": "End month of the season", "format": "int32" }, "PeriodIndex": { "type": "integer", "description": "Index of the period/season within the work schedule", "format": "int32" }, "CreatedUtc": { "type": "string", "description": "Timestamp indicating when the work schedule period/season was created (UTC)", "format": "date-time" }, "ModifiedUtc": { "type": "string", "description": "Timestamp indicating when the work schedule period/season was last modified (UTC)", "format": "date-time" } }, "additionalProperties": false }, "WorkScheduleTimeAdjustmentApi": { "type": "object", "properties": { "Id": { "type": "string", "description": "Time adjustment unique identifier", "format": "uuid" }, "Name": { "type": "string", "description": "Name of the time adjustment", "nullable": true }, "IsDeleted": { "type": "boolean", "description": "Indicates whether the time adjustment is marked as deleted" }, "IsActive": { "type": "boolean", "description": "Is time adjustment active" }, "CreatedUtc": { "type": "string", "description": "Timestamp indicating when the time adjustment was created (UTC)", "format": "date-time" }, "ModifiedUtc": { "type": "string", "description": "Timestamp indicating when the time adjustment was last modified (UTC)", "format": "date-time" }, "WorkScheduleTimeAdjustmentWorkDays": { "type": "array", "items": { "$ref": "#/components/schemas/WorkScheduleTimeAdjustmentWorkDayApi" }, "description": "Time adjustment work days", "nullable": true } }, "additionalProperties": false }, "WorkScheduleTimeAdjustmentWorkDayApi": { "type": "object", "properties": { "Id": { "type": "string", "description": "Time adjustment work day unique identifier", "format": "uuid" }, "CodedDay": { "type": "integer", "description": "Code corresponding to a specific holiday/event day of the year", "format": "int32", "nullable": true }, "AnnualDate": { "type": "string", "description": "Date of a recurring day of the year (format: MM-dd)", "nullable": true }, "MinutesToWork": { "type": "integer", "description": "Number of minutes to work on the specified day. Null indicates day is full time.", "format": "int32", "nullable": true }, "Note": { "type": "string", "description": "Optional note/comment", "nullable": true }, "CreatedUtc": { "type": "string", "description": "Timestamp indicating when the time adjustment work day was created (UTC)", "format": "date-time" }, "ModifiedUtc": { "type": "string", "description": "Timestamp indicating when the time adjustment work day was last modified (UTC)", "format": "date-time" } }, "additionalProperties": false }, "WorkScheduleWorkDayApi": { "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier provided by VLS", "format": "uuid" }, "PeriodIndex": { "type": "integer", "description": "Index of the period/season within the work schedule", "format": "int32" }, "WeekIndex": { "type": "integer", "description": "Index of the week within the period/season", "format": "int32" }, "DayIndex": { "type": "integer", "description": "Index of the day within the week (Monday = 0,..., Sunday = 6)", "format": "int32" }, "StartTime": { "type": "string", "description": "Work day start time (format: HH:mm). Null indicates a free day.", "nullable": true }, "EndTime": { "type": "string", "description": "Work day end time (format: HH:mm). Null indicates a free day.", "nullable": true }, "AverageMinutesToWork": { "type": "integer", "description": "Average minutes to work during the day, excluding breaks", "format": "int32" }, "CreatedUtc": { "type": "string", "description": "Timestamp indicating when the work day was created (UTC)", "format": "date-time" }, "ModifiedUtc": { "type": "string", "description": "Timestamp indicating when the work day was last modified (UTC)", "format": "date-time" }, "LunchBreakId": { "type": "string", "description": "Unique identifier of a lunch break, if any", "format": "uuid", "nullable": true }, "FirstCoffeeBreakId": { "type": "string", "description": "Unique identifier of a first coffee break, if any", "format": "uuid", "nullable": true }, "SecondCoffeeBreakId": { "type": "string", "description": "Unique identifier of a second coffee break, if any", "format": "uuid", "nullable": true } }, "additionalProperties": false }, "WorkScheduleWorkDayIrregularWorkingHoursApi": { "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier provided by VLS", "format": "uuid" }, "MinutesToWorkFullTime": { "type": "integer", "description": "Minutes to work for full-time employees per week", "format": "int32" }, "WorkingDaysFullTime": { "type": "number", "description": "Number of working days for full-time employees per week", "format": "double", "nullable": true }, "MinutesToWorkPartTime": { "type": "integer", "description": "Minutes to work for part-time employees per week", "format": "int32", "nullable": true }, "WorkingDaysPartTime": { "type": "number", "description": "Number of working days for part-time employees per week", "format": "double", "nullable": true }, "CreatedUtc": { "type": "string", "description": "Timestamp indicating when work days working hours were created (UTC)", "format": "date-time" }, "ModifiedUtc": { "type": "string", "description": "Timestamp indicating when work days working hours were last modified (UTC)", "format": "date-time" } }, "additionalProperties": false } } }, "tags": [ { "name": "WorkScheduleTimeAdjustment", "description": "Operations for managing work schedule time adjustments for a company. Work schedule time adjustments are used to define exceptions for specific dates which are repeating every year.\r\n\r\n" }, { "name": "WorkSchedules", "description": "Operations for managing work schedules for company. Work schedule allows to define working hours for employees, which can work in various schedule types: regular, irregular, full-time, part-time, etc.\r\n\r\n" }, { "name": "WorkDayOverride", "description": "Operations for managing work day overrides for employees. Work day override allows to specify different working times/duration for specific days.\r\n\r\n" }, { "name": "Wageruns", "description": "Operations for fetching wage runs created for Your company's employees.\r\n\r\n" }, { "name": "TravelAndExpense", "description": "Operations for managing travel and expense shortcuts for employees. Travel and expense shortcuts allow tracking of employee travel and other expenses based on supplied pay code numbers.\r\n\r\n" }, { "name": "TimeRuleAnnualDates", "description": "Operations for managing time rule annual dates for company. Time rule annual dates are used to define specific dates that are relevant for time rules, such as holidays or special events.\r\n\r\n" }, { "name": "Timebank", "description": "Operations for managing timebank shortcuts for employees. Timebank shortcuts allow tracking of employee accumulated hours expenditure.\r\n\r\n" }, { "name": "SickLeave", "description": "Operations for managing sick leave shortcuts for employees. Sick leave shortcuts allow tracking of employee sick leave periods with configurable registration methods (time, hours, or percentage).\r\n\r\n" }, { "name": "Shortcuts", "description": "Operations for managing shortcut operations. Allows deleting shortcuts created by third-party integrations.\r\n\r\n" }, { "name": "Payslips", "description": "Operations for managing employee payslips. Use this to retrieve a single payslip or list payslips for a specific employee or wage run in your company's payroll system.\r\n\r\n" }, { "name": "PayrollSettings", "description": "Managing company payroll settings, including configuration of payroll periods, tax settings, and other payroll-related preferences.\r\n\r\n" }, { "name": "Paycodes", "description": "Managing paycodes in your company's payroll system. You can retrieve all paycodes, paycode by specified id and specific travel and expense paycodes, other additional deduction paycodes.\r\n\r\n" }, { "name": "ParentalLeave", "description": "Operations for managing parental leave shortcuts for employees. Parental leave shortcuts allow tracking of employee leaves related to parental responsibilities.\r\n\r\n" }, { "name": "Overtime", "description": "Operations for managing overtime shortcuts for employees. Overtime shortcuts allow tracking of employee overtime periods with configurable registration methods (time or hours).\r\n\r\n" }, { "name": "OtherAdditionDeduction", "description": "Operations for managing other addition and deduction shortcuts for employees. Other addition and deduction shortcuts allow tracking of employee additions and/or deductions based on supplied pay code numbers.\r\n\r\n" }, { "name": "OtherAbsence", "description": "Operations for managing other absence shortcuts for employees. Other absence shortcuts allow tracking of employee other (non-specific) absence/leave periods with configurable registration methods (time, hours or percentage).\r\n\r\n" }, { "name": "Notifications", "description": "Operations for managing notifications. Allows authorized third-party integrations to create failed synchronization notifications for a company.\r\n\r\n" }, { "name": "MigrationStatus", "description": "Managing migration status for the VLS migration flow, including retrieving the current migration status for a company.\r\n\r\n" }, { "name": "HoursWorked", "description": "Operations for managing hours worked shortcuts for employees. Hours worked shortcuts allow tracking of employee worked time.\r\n\r\n" }, { "name": "Holiday", "description": "Operations for managing holiday shortcuts for employees. Holiday shortcuts allow tracking of employee holiday/vacation periods.\r\n\r\n" }, { "name": "ExternalPeriods", "description": "Operations for managing external periods for employees. External periods allow creating, retrieving, and deleting payroll periods sourced from external systems.\r\n\r\n" }, { "name": "Employees", "description": "Managing employees in your company's payroll system. You can retrieve employee information including personal details, contract status, employment agreements, work schedules, holiday balances, and time bank values.\r\n\r\n" }, { "name": "CompanySettings", "description": "Managing company settings for the migration flow, including payroll periods, payment options, ledger accounts, and holiday agreement configurations.\r\n\r\n" }, { "name": "CareOfSickChildren", "description": "Operations for managing care of sick child shortcuts for employees. Care of sick child shortcuts allow tracking of employee leaves related to caring for sick children.\r\n\r\n" }, { "name": "BreakRule", "description": "Creating or getting break rules of the company.\r\n\r\n" }, { "name": "Agreements", "description": "Creating or getting agreements for the company.\r\n\r\n" } ] }