# 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 Toke​n <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>
      }
    ]
  }
]