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.
openapi: 3.2.0
info:
title: Kolay Public Payroll API
version: 2.0.0
description: 'Welcome to Public API reference of Kolay!
This documentation is here to help you easily integrate your existing apps to Kolay. In order to use this API you need to have an API Token ready. If you don''t have an existing API Token you can visit the following link and create one for your needs https://app.kolayik.com/settings/developer-settings If you have any technical questions you can contact us via apisupport@kolay.io'
contact:
name: Kolay API Support
email: apisupport@kolay.io
url: https://apidocs.kolayik.com/
servers:
- url: https://api.kolayik.com
description: Production
security:
- bearerAuth: []
tags:
- name: Payroll
paths:
/v2/payroll-sheet/view/{payrollId}:
post:
operationId: payrollSheetView
summary: Get Payroll Sheet
description: 'View Payroll Sheet
Returns the complete payroll sheet data (Çarşaf Bordro) for a given payroll run as JSON.'
tags:
- Payroll
parameters:
- name: payrollId
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
example:
filter:
search: ''
status: []
salaryPeriod: []
insuranceId: []
taxId: []
expenseCenterId: []
units: []
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
/v2/payroll/list:
get:
operationId: payrollList
summary: Get Payroll List
description: 'List Payroll Periods
Returns the list of payroll runs (bordro dönemleri) for a given year. Use this to get payroll IDs before calling the View Payroll Sheet endpoint.
Scope: payroll:list
Request
GET /v2/payroll/list?year=2026
Query Parameters
Parameter
Type
Required
Description
year
integer
No
Filter by year. Max value: current year + 1. Defaults to current year if omitted.
Response
{
"error": false,
"data": [
{
"id": "abc123def456ghi789jkl012mno345pq",
"period": "2026-01-01 00:00:00",
"year": 2026,
"month": 1,
"total": 150,
"payslips": 120,
"errors": 2,
"employerCost": 1250000.50,
"updatedAt": "2026-01-15"
},
{
"id": "rst678uvw901xyz234abc567def890ghi",
"period": "2026-02-01 00:00:00",
"year": 2026,
"month": 2,
"total": 152,
"payslips": 0,
"errors": 5,
"employerCost": 1280000.75,
"updatedAt": "2026-02-14"
}
]
}
Response Fields
Field
Type
Description
id
string
Payroll run ID. Use this as {id} in /v2/payroll-sheet/view/{id}.
period
string
Period start date as datetime string (YYYY-MM-DD HH:mm:ss)
year
integer
Payroll year
month
integer
Payroll month (1-12)
total
integer
Total number of included employees
payslips
integer
Number of generated payslips
errors
integer
Number of failed calculations
employerCost
number
Total employer cost (sum of all included employees)
updatedAt
string
Last update date (YYYY-MM-DD)
Examples
All payroll for current year (default):
GET /v2/payroll/list
Filter by year:
GET /v2/payroll/list?year=2026
Errors
Code
Description
401
Invalid or missing API token
422
Validation error (e.g. year is not an integer or exceeds max value)'
tags:
- Payroll
parameters:
- name: year
in: query
required: false
schema:
type: string
example: '2026'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
components:
schemas:
Envelope:
type: object
description: Standard Kolay response envelope observed in every documented example response.
properties:
error:
type: boolean
description: False on success.
data:
description: Operation payload.
required:
- error
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'API token created at https://app.kolayik.com/settings/developer-settings and sent as `Authorization: Bearer <TOKEN>`.'