Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/visma-timebank-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Visma Timebank API
contact:
email: api@spiris.se
version: '1.0'
description: 'Operations tagged Timebank across 2 of this provider''s published API definitions: visma-payroll-api-v1-openapi-original.json, visma-payroll-api-v2-openapi-original.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://vlsapi.vismaonline.com/
tags:
- name: Timebank
description: Operations for managing timebank shortcuts for employees. Timebank shortcuts allow tracking of employee accumulated hours expenditure.
paths:
/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).
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'
operationId: postV1ShortcutsTimebank
x-operation-id-source: derived
servers:
- url: https://vlsapi.vismaonline.com/
/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.
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'
operationId: getV1ShortcutsTimebankByTimebankId
x-operation-id-source: derived
servers:
- url: https://vlsapi.vismaonline.com/
/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.
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'
operationId: getV1ShortcutsTimebankByStartDateByEndDate
x-operation-id-source: derived
servers:
- url: https://vlsapi.vismaonline.com/
/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.
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'
operationId: putV1ShortcutsTimebankById
x-operation-id-source: derived
servers:
- url: https://vlsapi.vismaonline.com/
/v2/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).
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/TimeBankRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/TimeBankResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/CommonExtendedBadRequest'
operationId: postV2ShortcutsTimebank
x-operation-id-source: derived
servers:
- url: https://vlsapi.vismaonline.com/
/v2/shortcuts/timebank/{shortcutId}:
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.
parameters:
- name: shortcutId
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/TimeBankResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/CommonExtendedBadRequest'
operationId: getV2ShortcutsTimebankByShortcutId
x-operation-id-source: derived
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.
parameters:
- name: shortcutId
in: path
description: The shortcut id
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/TimeBankRequest'
responses:
'200':
description: Request successful
content:
application/json:
schema:
$ref: '#/components/schemas/TimeBankResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/CommonExtendedBadRequest'
operationId: putV2ShortcutsTimebankByShortcutId
x-operation-id-source: derived
delete:
tags:
- Timebank
summary: Delete a timebank shortcut
description: Delete a timebank shortcut by its unique identifier. Only shortcuts that have not been read (imported by a payroll administrator) can be deleted. The shortcut must belong to the same third-party client that created it.
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'
operationId: deleteV2ShortcutsTimebankByShortcutId
x-operation-id-source: derived
servers:
- url: https://vlsapi.vismaonline.com/
/v2/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.
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/TimeBankResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/CommonExtendedBadRequest'
operationId: getV2ShortcutsTimebankByStartDateByEndDate
x-operation-id-source: derived
servers:
- url: https://vlsapi.vismaonline.com/
components:
schemas:
CommonError:
type: object
properties:
Field:
type:
- string
- 'null'
ErrorCode:
type:
- string
- 'null'
Message:
type:
- string
- 'null'
Key:
type:
- string
- 'null'
additionalProperties: false
TimebankApi:
required:
- EmployeeId
- EndDate
- ShortcutRegistrationMethod
- StartDate
type: object
properties:
PayOutSource:
type:
- integer
- 'null'
description: 'Type of hours balance, which will be decreased by the shortcut. Null will be interpreted as CompensationTime.<br/>Possible values: 1 - CompensationTime, 2 - WorkingTimeReserve'
format: int32
CompPayoutMethod:
type: integer
description: 'Type of compensation for subtracted hours<br/>Possible values: 1 - Money (only for hours registration method), 2 - Time (for time and hours registration methods)'
format: int32
ScheduleStartTime:
type:
- string
- 'null'
description: Deprecated property (value will always be null)
ScheduleEndTime:
type:
- string
- 'null'
description: Deprecated property (value will always be null)
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<br/>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
- 'null'
description: 'The start time the shortcut is registered for (format: HH:mm). Required when ShortcutRegistrationMethod is Time.'
EndTime:
type:
- string
- 'null'
description: 'The end time the shortcut is registered for (format: HH:mm). Required when ShortcutRegistrationMethod is Time.'
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
- 'null'
description: Optional comment for the shortcut
ProjectId:
type:
- string
- 'null'
description: 'Project ID. Source: Get from eAccounting API, /v2/projects'
format: uuid
CostCenterItemId1:
type:
- string
- 'null'
description: 'Cost center item ID 1. Source: Get from eAccounting API, /v2/costcenters'
format: uuid
CostCenterItemId2:
type:
- string
- 'null'
description: 'Cost center item ID 2. Source: Get from eAccounting API, /v2/costcenters'
format: uuid
CostCenterItemId3:
type:
- string
- 'null'
description: 'Cost center item ID 3. Source: Get from eAccounting API, /v2/costcenters'
format: uuid
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%.
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
- 'null'
items:
$ref: '#/components/schemas/ProjectCostCenterAllocationApi'
description: Allocations on Project. The percentages within Project must total at most 100%.
CostCenter1:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ProjectCostCenterAllocationApi'
description: Allocations on cost center 1. The percentages within CostCenter1 must total at most 100%.
CostCenter2:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ProjectCostCenterAllocationApi'
description: Allocations on cost center 2. The percentages within CostCenter2 must total at most 100%.
CostCenter3:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ProjectCostCenterAllocationApi'
description: Allocations on cost center 3. The percentages within CostCenter3 must total at most 100%.
additionalProperties: false
CommonExtendedBadRequest:
type: object
properties:
ErrorCode:
type: integer
format: int32
DeveloperErrorMessage:
type:
- string
- 'null'
ErrorId:
type: string
format: uuid
Errors:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/CommonError'
additionalProperties: false
ProjectCostCenterAllocationResponse:
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
TimeBankRequest:
required:
- EmployeeId
- EndDate
- ShortcutRegistrationMethod
- StartDate
type: object
properties:
PayOutSource:
type:
- integer
- 'null'
description: 'Type of hours balance, which will be decreased by the shortcut, null will be interpreted as CompensationTime<br/>Possible values: 1 - CompensationTime, 2 - WorkingTimeReserve'
format: int32
CompPayoutMethod:
type: integer
description: 'Type of compensation for substracted hours<br/>Possible values: 1 - Money (only for hours registration method), 2 - Time (for time and hours registration methods)'
format: int32
default: 2
ScheduleStartTime:
type:
- string
- 'null'
description: Deprecated property (value will be ignored)
ScheduleEndTime:
type:
- string
- 'null'
description: Deprecated property (value will be ignored)
ScheduledDayBreakTime:
type: integer
description: Deprecated property (value will be ignored)
format: int32
EmployeeId:
type: string
description: 'The ID of the employee that the shortcut should be registered for. Source: Get from /v2/employees'
format: uuid
StartDate:
type: string
description: 'Start date for the shortcut (format: yyyy-MM-dd)'
format: date-time
EndDate:
type: string
description: 'End date for the shortcut (format: yyyy-MM-dd). If the end date is set in another month the shortcut will be split into two shortcuts, one for each month.'
format: date-time
ShortcutRegistrationMethod:
type: integer
description: 'Registration method for the shortcut. This setting will determine how the shortcut is registered and therefore also what properties are required.<br/>Possible values: 0 - Time, 1 - Hours, 2 - Percentage'
format: int32
PercentOfDay:
maximum: 100
minimum: 0
type: number
description: The percentage of the day that the shortcut should be registered for. Required if using percentage as shortcut registration method.
format: double
MinutesOfDay:
maximum: 1440
minimum: 0
type: integer
description: The number of minutes the shortcut should be registered for. Required if using hours as shortcut registration method.
format: int32
StartTime:
type:
- string
- 'null'
description: 'The start time the shortcut should be registered for (format: HH:mm). Required if using time as shortcut registration method.'
EndTime:
type:
- string
- 'null'
description: 'The end time the shortcut should be registered for (format: HH:mm). Required if using time as shortcut registration method.'
Comment:
maxLength: 2000
minLength: 0
type:
- string
- 'null'
description: Optional comment for the shortcut
CostCenterItemId1:
type:
- string
- 'null'
description: 'Cost center item ID 1. Source: Get from eAccounting API, /v2/costcenters'
format: uuid
CostCenterItemId2:
type:
- string
- 'null'
description: 'Cost center item ID 2. Source: Get from eAccounting API, /v2/costcenters'
format: uuid
CostCenterItemId3:
type:
- string
- 'null'
description: 'Cost center item ID 3. Source: Get from eAccounting API, /v2/costcenters'
format: uuid
ProjectId:
type:
- string
- 'null'
description: 'Project ID. Source: Get from eAccounting API, /v2/projects'
format: uuid
ProjectCostCenterDistribution:
allOf:
- $ref: '#/components/schemas/ProjectCostCenterDistributionRequest'
description: Percentage based distribution across projects and cost centers. When supplied, ProjectId and CostCenterItemId1-3 are ignored. The percentages within each of Project, CostCenter1, CostCenter2 and CostCenter3 must total at most 100%.
additionalProperties: false
ProjectCostCenterDistributionRequest:
type: object
properties:
Project:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ProjectCostCenterAllocationRequest'
description: 'Allocations on Project. The percentages within Project must total at most 100%. Each allocation Id is a project id. Source: Get from eAccounting API, /v2/projects'
CostCenter1:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ProjectCostCenterAllocationRequest'
description: 'Allocations on cost center 1. The percentages within CostCenter1 must total at most 100%. Each allocation Id is a cost center item id. Source: Get from eAccounting API, /v2/costcenters'
CostCenter2:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ProjectCostCenterAllocationRequest'
description: 'Allocations on cost center 2. The percentages within CostCenter2 must total at most 100%. Each allocation Id is a cost center item id. Source: Get from eAccounting API, /v2/costcenters'
CostCenter3:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ProjectCostCenterAllocationRequest'
description: 'Allocations on cost center 3. The percentages within CostCenter3 must total at most 100%. Each allocation Id is a cost center item id. Source: Get from eAccounting API, /v2/costcenters'
additionalProperties: false
ProjectCostCenterAllocationRequest:
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. Allocations with a percentage of 0 are ignored.
format: double
additionalProperties: false
TimeBankResponse:
type: object
properties:
PayOutSource:
type:
- integer
- 'null'
description: 'Type of hours balance, which will be decreased by the shortcut<br/>Possible values: 1 - CompensationTime, 2 - WorkingTimeReserve'
format: int32
CompPayoutMethod:
type: integer
description: 'Type of compensation for substracted hours<br/>Possible values: 1 - Money, 2 - Time'
format: int32
ScheduleStartTime:
type:
- string
- 'null'
description: Deprecated property (value will always be null)
ScheduleEndTime:
type:
- string
- 'null'
description: Deprecated property (value will always be null)
ScheduledDayBreakTime:
type: integer
description: Deprecated property (value will always be 0)
format: int32
Id:
type: string
description: Unique identifier provided by VLS
format: uuid
EmployeeId:
type: string
description: 'The ID of the employee that the shortcut is registered for. Source: Get from /v2/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<br/>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
format: double
MinutesOfDay:
type: integer
description: The number of minutes the shortcut is registered for
format: int32
StartTime:
type:
- string
- 'null'
description: 'The start time the shortcut is registered for (format: HH:mm)'
EndTime:
type:
- string
- 'null'
description: 'The end time the shortcut is registered for (format: HH:mm)'
Comment:
type:
- string
- 'null'
description: Optional comment for the shortcut
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.
ProjectId:
type:
- string
- 'null'
description: 'Project ID. Source: Get from eAccounting API, /v2/projects'
format: uuid
CostCenterItemId1:
type:
- string
- 'null'
description: 'Cost center item ID 1. Source: Get from eAccounting API, /v2/costcenters'
format: uuid
CostCenterItemId2:
type:
- string
- 'null'
description: 'Cost center item ID 2. Source: Get from eAccounting API, /v2/costcenters'
format: uuid
CostCenterItemId3:
type:
- string
- 'null'
description: 'Cost center item ID 3. Source: Get from eAccounting API, /v2/costcenters'
format: uuid
ProjectCostCenterDistribution:
allOf:
- $ref: '#/components/schemas/ProjectCostCenterDistributionResponse'
description: 'Percentage based distribution across projects and cost centers. ProjectId and CostCenterItemId1-3 mirror this distribution: each 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%, since a single id cannot represent that.'
additionalProperties: false
ProjectCostCenterDistributionResponse:
type: object
properties:
Project:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ProjectCostCenterAllocationResponse'
description: 'Allocations on Project. Each allocation Id is a project id. Source: Get from eAccounting API, /v2/projects'
CostCenter1:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ProjectCostCenterAllocationResponse'
description: 'Allocations on cost center 1. Each allocation Id is a cost center item id. Source: Get from eAccounting API, /v2/costcenters'
CostCenter2:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ProjectCostCenterAllocationResponse'
description: 'Allocations on cost center 2. Each allocation Id is a cost center item id. Source: Get from eAccounting API, /v2/costcenters'
CostCenter3:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ProjectCostCenterAllocationResponse'
description: 'Allocations on cost center 3. Each allocation Id is a cost center item id. Source: Get from eAccounting API, /v2/costcenters'
additionalProperties: false
x-refined-from:
- visma-payroll-api-v1-openapi-original.json
- visma-payroll-api-v2-openapi-original.json
x-tagGroups:
- name: Sales
tags:
- ArticleLabels
- Articles
- CustomerInvoiceDrafts
- CustomerInvoiceOffsets
- CustomerInvoices
- CustomerInvoiceValuationHistories
- CustomerLabels
- CustomerLedgerItems
- Customers
- DeliveryMethods
- DeliveryTerms
- DiscountAgreements
- Orders
- QuoteDrafts
- Quotes
- SalesPriceLists
- TermsOfPayment
- WebshopOrders
- name: Purchase
tags:
- BankAccounts
- ForeignPaymentCodes
- PurchaseReceiptDrafts
- SupplierInvoiceDrafts
- SupplierInvoices
- SupplierInvoiceValuationHistories
- SupplierLedgerItems
- Suppliers
- name: Common
tags:
- Approval
- AppStoreActivationStatus
- AttachmentLinks
- Attachments
- AutoInvoice
- Bank
- Charts
- CompanySettings
- Company
- Countries
- Currencies
- Documents
- IdentityLookup
- MessageThreads
- Mobile
- Notes
- PartnerResourceLinks
- SalesDocumentAttachments
- Trials
- Units
- Users
- VoTokenValidation
- WebHooks
- Zapier
- name: Accounting
tags:
- AccountBalance
- Accounts
- AccountTypes
- AllocationPeriods
- ArticleAccountCodings
- BankTransactions
- CostCenterItems
- CostCenters
- FiscalYears
- InventoryItems
- PaymentVoucher
- Projects
- SieFileImportExport
- VatCode
- VatReport
- VoucherDrafts
- Vouchers
- VoucherWithOverunderPayment