# Json API
# Introduction
The JSON api's exposes extensive cao data in a structured JSON format. The JSON Api is available in three versions:
- Generic JSON, available at https://www.caoloon.com/customer/api/caos/
- Maand JSON, available at https://www.caoloon.com/maand/api/caos/
- Inlener cao JSON, not yet available
# Authorization
Authorization is done through an authorization token specified in an Authorization header. Contact caoloon.com for your token.
# Headers
Key | Value |
---|---|
Authorization | Token <Token> |
# Query Filters
Filters can be added to the URL as query parameters to only receive a subset of results. The following filters are available.
# Filters
Key | Value |
---|---|
cao_id | <string> |
inlener_cao_guid | <string> |
updated_from_timestamp | <unix timestamp> |
standard_caos | <boolean> // default True |
inlener_caos | <boolean> // default False |
# Maand JSON
[
{
"wages_preference": <string[]>, // what type of wages the customer wants, array of ("hour"/"week"/"4weeks"/"month"/"year")
"cao_id": <string>, // unique id of cao
"timesheet_overtime_interaction": <string>, // how to calculate timesheets/overtime when both are applicable ("add"/"multiply"/"lowest"/"highest"/"overtime"/"timesheet")
"entry_date": <string>, // when cao has been entered at the SZW
"code": <string>, // SZW code of cao
"sbi": <string>, // sbi code of cao
"name": <string>, // full name of cao
"short_name": <string>, // short name of cao
"duration_start": <string YYYY-MM-DD>, // start of cao duration
"duration_end": <string>, // end of cao duration
"html_cao_text": <string>, // cao text in html format
"year_end_bonus_type": <string>, // ("percentage"/"amount")
"year_end_bonus_amonut": <number>,
"avv": <boolean>, // whether cao is "Algemeen verbindend verklaard"
"avv_start_date": <string YYYY-MM-DD>,
"jobs": [
{
"job_id": <number>, // id of job in cao
"name": <string>, // name of job
"payscales": <string[]>, // payscales of this job
"minimal_payscale": <string>, // lowest payscale in payscales of this job
"aard": <string>, // ("AD"/"TE"/"ME"/"IN")
"end_date": <string YYYY-MM-DD>
}
],
"werksoort": [
{
"name": <string>,
"type": <string>,
"amount": <string>,
"start_date": <string YYYY-MM-DD>,
"end_date": <string YYYY-MM-DD>,
"hour_type": <string>
}
],
"overtime": [
{
"description": <string>,
"overtime_data": [
{
"hours_per": <string>,
"amount": <number>,
"werksoort": <string>
}
],
"timesheets": [
{
"description": <string>,
"name": <string>,
"timesheet": {
<werksoort: string> : {
<"weekday" | "holiday" | "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday">: [
<string> // format "HH:MM, for example "20:30"
]
}
},
"start_date": <string>,
}
]
}
],
"timesheet_allowances": [
<string>: {
"from": <string>,
"until": <string>,
"monday": <string>,
"tuesday": <string>,
"wednesday": <string>,
"thursday": <string>,
"friday": <string>,
"saturday": <string>,
"sunday": <string>,
"holiday": <string>
}
],
"one_off_bonus": [
{
"type": <string>,
"amount": <number>,
"date": <string YYYY-MM-DD>
}
],
"salary_tables": [
{
"short_name": <string>,
"name": <string>,
"description": <string>,
"active_per": <string YYYY-MM-DD>,
"active_per_description": <string>,
"min_age": <number>,
"max_age": <number>,
"hours_in_workweek": <number>,
"salary_table_id": <number>,
"days_per_week": <number>,
"hours_per_day": <number>,
"jobs": [
<string>
],
"salaries": [
{
"salary": <number>,
"monthly_salary": <number>,
"payscale": <string>,
"periodical": <number>,
"age": <number>
}
],
"periodiek_verhogingen": [
{
"mandatory": <boolean>,
"trigger_date": <string YYYY-MM-DD | null>,
"required_time": <number>,
"measurement_type": <string>, // "cumulative"/"calendar"
"required_time_type": <string>, // "hours"/"months"/"weeks"
"date_required_time_interaction": <string> // "trigger_date"/"required_time"/"both"/"any"
}
],
"adv_type": <string>,
"adv_amount": <number>,
"adv_deviation_amount": <string>,
"adv_deviation_name": <string>,
"maximum_wage_addition": <number>,
"salaries_per": <string>
}
]
}
]
# Generic JSON
[
{
"wages_preference": <string[]>, // what type of wages the customer wants, array of ("hour"/"week"/"4weeks"/"month"/"year")
"inlener_cao": <boolean>,
"monthly_salary": <boolean>,
"updated_at": <string YYYY-MM-DD HH:MM:SS>, // For example: '2018-11-06 13:28:55'
"kvk_inlener": <number>,
"kvk_inlener_holding": <number>,
"vacation_time_type": <string>, // ("hours_per_year"/"days_per_year")
"vacation_time_amount": <number>,
"vacation_allowance": <number>,
"company_name": <string>,
"based_on": <string>,
"id": <string>,
"cao_id": <string>, // unique id of cao
"timesheet_overtime_interaction": <string>, // how to calculate timesheets/overtime when both are applicable ("add"/"multiply"/"lowest"/"highest"/"overtime"/"timesheet")
"entry_date": <string>, // when cao has been entered at the SZW
"code": <string>, // SZW code of cao
"sbi": <string>, // sbi code of cao
"name": <string>, // full name of cao
"short_name": <string>, // short name of cao
"duration_start": <string YYYY-MM-DD>, // start of cao duration
"duration_end": <string>, // end of cao duration
"html_cao_text": <string>, // cao text in html format
"avv": <boolean>, // whether cao is "Algemeen verbindend verklaard"
"avv_start_date": <string YYYY-MM-DD>,
"jobs": [
{
"job_id": <number>, // id of job in cao
"name": <string>, // name of job
"payscales": <string[]>, // payscales of this job
"minimal_payscale": <string>, // lowest payscale in payscales of this job
"aard": <string>, // ("AD"/"TE"/"ME"/"IN")
"end_date": <string YYYY-MM-DD>
}
],
"werksoort": [
{
"name": <string>,
"type": <string>,
"amount": <string>,
"start_date": <string YYYY-MM-DD>,
"end_date": <string YYYY-MM-DD>,
"hour_type": <string>
}
],
"overtime": [
{
"description": <string>,
"overtime_data": [
{
"hours_per": <string>,
"amount": <number>,
"werksoort": <string> // Optionally present
}
],
"timesheets": [
{
"description": <string>,
"name": <string>,
"timesheet": {
<werksoort: string> : {
<"weekday" | "holiday" | "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday">: [
<string> // format "HH:MM, for example "20:30"
]
}
},
"start_date": <string>,
}
]
}
],
"timesheet_allowances": [
<string>: {
"from": <string>,
"until": <string>,
"monday": <string>,
"tuesday": <string>,
"wednesday": <string>,
"thursday": <string>,
"friday": <string>,
"saturday": <string>,
"sunday": <string>,
"holiday": <string>
}
],
"one_off_bonus": [
{
"type": <string>,
"amount": <number>,
"date": <string YYYY-MM-DD>
}
],
"salary_tables": [
{
"days_per_week": <number>,
"hours_per_day": <number>,
"short_name": <string>,
"description": <string>,
"active_per": <string YYYY-MM-DD>,
"active_per_description": <string>,
"min_age": <number>,
"max_age": <number>,
"hours_in_workweek": <number>,
"salary_table_id": <number>,
"jobs": [
<string>
],
"salaries": [
{
"salary": <number>,
"monthly_salary": <number>,
"payscale": <string>,
"periodical": <number>,
"age": <number>
}
],
"periodiek_verhogingen": [
{
"mandatory": <boolean>,
"trigger_date": <string YYYY-MM-DD>,
"required_time": <number>,
"measurement_type": <string>, // "cumulative"/"calendar"
"required_time_type": <string>, // "hours"/"months"/"weeks"
"date_required_time_interaction": <string> // "trigger_date"/"required_time"/"both"/"any"
}
],
"adv_type": <string>,
"adv_amount": <number>,
"adv_deviation_amount": <string>,
"adv_deviation_name": <string>,
"maximum_wage_addition": <number>,
"salaries_per": <string>
}
]
}
]