@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api HRIS API
@base https://unify.apideck.com
@version 10.24.12
@auth ApiKey Authorization in header
@common_fields {x-apideck-consumer-id: str, x-apideck-app-id: str, raw: bool=false, x-apideck-service-id: str}
@endpoints 25
@hint download_for_search
@toc hris(25)

@endpoint GET /hris/employees
@optional {cursor: str, limit: int=20, filter: map, sort: map, pass_through: map, fields: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: [map], _raw: map?, meta: map{items_on_page: int, cursors: map{previous: str?, current: str?, next: str?}}, links: map{previous: str?, current: str, next: str?}}
@errors {400, 401, 402, 404, 422}

@endpoint POST /hris/employees
@optional {id: str, downstream_id: str, first_name: str, last_name: str, middle_name: str, display_name: str, preferred_name: str, initials: str, salutation: str, title: str, marital_status: str, partner: map{id: str, first_name: str, last_name: str, middle_name: str, gender: str, initials: str, birthday: str(date), deceased_on: str(date), custom_mappings: map}, division: str, division_id: str, department: str, department_id: str, department_name: str, team: map{id: str, name: str}, company_id: str, company_name: str, employment_start_date: str, employment_end_date: str, leaving_reason: str(dismissed/resigned/redundancy/retired/other), employee_number: str, employment_status: str(active/inactive/terminated/other), employment_role: map{type: str, sub_type: str}, ethnicity: str, manager: map{id: str, name: str, first_name: str, last_name: str, email: str(email), employment_status: str}, direct_reports: [str], social_security_number: str, birthday: str(date), deceased_on: str(date), country_of_birth: str, description: str, gender: str(male/female/unisex/other/not_specified), pronouns: str, preferred_language: str, languages: [str], nationalities: [str], photo_url: str, timezone: str, source: str, source_id: str, record_url: str, jobs: [map{id: str, employee_id: str, title: str, role: str, start_date: str(date), end_date: str(date), compensation_rate: num, currency: str, payment_unit: str, hired_at: str(date), is_primary: bool, is_manager: bool, status: str, location: map}], compensations: [map{id: str, job_id: str, rate: num, payment_unit: str, currency: str, flsa_status: str, effective_date: str, payment_frequency: str}], works_remote: bool, addresses: [map{id: str, type: str, string: str, name: str, line1: str, line2: str, line3: str, line4: str, line5: str, street_number: str, city: str, state: str, postal_code: str, country: str, latitude: str, longitude: str, county: str, contact_name: str, salutation: str, phone_number: str, fax: str, email: str, website: str, notes: str, row_version: str}], phone_numbers: [map{id: str, country_code: str, area_code: str, number!: str, extension: str, type: str}], emails: [map{id: str, email!: str(email), type: str}], custom_fields: [map{id: str, name: str, description: str, value: any}], social_links: [map{id: str, url!: str, type: str}], bank_accounts: [map{bank_name: str, account_number: str, account_name: str, account_type: str, iban: str, bic: str, routing_number: str, bsb_number: str, branch_identifier: str, bank_code: str, currency: str, country: str}], tax_code: str, tax_id: str, dietary_preference: str, food_allergies: [str], probation_period: map{start_date: str(date), end_date: str(date)}, tags: [str], custom_mappings: map, row_version: str, deleted: bool, updated_by: str, created_by: str, updated_at: str(date-time), created_at: str(date-time), pass_through: [map{service_id!: str, operation_id: str, extend_object: map, extend_paths: [map]}]}
@returns(201) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint GET /hris/employees/{id}
@required {id: str}
@optional {fields: str, filter: map, pass_through: map}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str?, downstream_id: str?, first_name: str?, last_name: str?, middle_name: str?, display_name: str?, preferred_name: str?, initials: str?, salutation: str?, title: str?, marital_status: str?, partner: map{id: str?, first_name: str?, last_name: str?, middle_name: str?, gender: str?, initials: str?, birthday: str(date)?, deceased_on: str(date)?, custom_mappings: map?}, division: str?, division_id: str?, department: str?, department_id: str?, department_name: str?, team: map?{id: str?, name: str?}, company_id: str?, company_name: str?, employment_start_date: str?, employment_end_date: str?, leaving_reason: str?, employee_number: str?, employment_status: str?, employment_role: map{type: str?, sub_type: str?}, ethnicity: str?, manager: map{id: str?, name: str?, first_name: str?, last_name: str?, email: str(email)?, employment_status: str?}, direct_reports: [str]?, social_security_number: str?, birthday: str(date)?, deceased_on: str(date)?, country_of_birth: str?, description: str?, gender: str?, pronouns: str?, preferred_language: str?, languages: [str], nationalities: [str], photo_url: str?, timezone: str?, source: str?, source_id: str?, record_url: str?, jobs: [map]?, compensations: [map]?, works_remote: bool?, addresses: [map], phone_numbers: [map], emails: [map], custom_fields: [map], social_links: [map], bank_accounts: [map], tax_code: str?, tax_id: str?, dietary_preference: str?, food_allergies: [str]?, probation_period: map{start_date: str(date)?, end_date: str(date)?}, tags: [str]?, custom_mappings: map?, row_version: str?, deleted: bool?, updated_by: str?, created_by: str?, updated_at: str(date-time)?, created_at: str(date-time)?, pass_through: [map]}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint PATCH /hris/employees/{id}
@required {id: str}
@optional {id: str, downstream_id: str, first_name: str, last_name: str, middle_name: str, display_name: str, preferred_name: str, initials: str, salutation: str, title: str, marital_status: str, partner: map{id: str, first_name: str, last_name: str, middle_name: str, gender: str, initials: str, birthday: str(date), deceased_on: str(date), custom_mappings: map}, division: str, division_id: str, department: str, department_id: str, department_name: str, team: map{id: str, name: str}, company_id: str, company_name: str, employment_start_date: str, employment_end_date: str, leaving_reason: str(dismissed/resigned/redundancy/retired/other), employee_number: str, employment_status: str(active/inactive/terminated/other), employment_role: map{type: str, sub_type: str}, ethnicity: str, manager: map{id: str, name: str, first_name: str, last_name: str, email: str(email), employment_status: str}, direct_reports: [str], social_security_number: str, birthday: str(date), deceased_on: str(date), country_of_birth: str, description: str, gender: str(male/female/unisex/other/not_specified), pronouns: str, preferred_language: str, languages: [str], nationalities: [str], photo_url: str, timezone: str, source: str, source_id: str, record_url: str, jobs: [map{id: str, employee_id: str, title: str, role: str, start_date: str(date), end_date: str(date), compensation_rate: num, currency: str, payment_unit: str, hired_at: str(date), is_primary: bool, is_manager: bool, status: str, location: map}], compensations: [map{id: str, job_id: str, rate: num, payment_unit: str, currency: str, flsa_status: str, effective_date: str, payment_frequency: str}], works_remote: bool, addresses: [map{id: str, type: str, string: str, name: str, line1: str, line2: str, line3: str, line4: str, line5: str, street_number: str, city: str, state: str, postal_code: str, country: str, latitude: str, longitude: str, county: str, contact_name: str, salutation: str, phone_number: str, fax: str, email: str, website: str, notes: str, row_version: str}], phone_numbers: [map{id: str, country_code: str, area_code: str, number!: str, extension: str, type: str}], emails: [map{id: str, email!: str(email), type: str}], custom_fields: [map{id: str, name: str, description: str, value: any}], social_links: [map{id: str, url!: str, type: str}], bank_accounts: [map{bank_name: str, account_number: str, account_name: str, account_type: str, iban: str, bic: str, routing_number: str, bsb_number: str, branch_identifier: str, bank_code: str, currency: str, country: str}], tax_code: str, tax_id: str, dietary_preference: str, food_allergies: [str], probation_period: map{start_date: str(date), end_date: str(date)}, tags: [str], custom_mappings: map, row_version: str, deleted: bool, updated_by: str, created_by: str, updated_at: str(date-time), created_at: str(date-time), pass_through: [map{service_id!: str, operation_id: str, extend_object: map, extend_paths: [map]}]}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint DELETE /hris/employees/{id}
@required {id: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint GET /hris/companies
@optional {cursor: str, limit: int=20, pass_through: map, fields: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: [map], _raw: map?, meta: map{items_on_page: int, cursors: map{previous: str?, current: str?, next: str?}}, links: map{previous: str?, current: str, next: str?}}
@errors {400, 401, 402, 404, 422}

@endpoint POST /hris/companies
@required {legal_name: str}
@optional {id: str, display_name: str, subdomain: str, status: str(active/inactive/trial/other), company_number: str, currency: str(UNKNOWN_CURRENCY/AED/AFN/ALL/AMD/ANG/AOA/ARS/AUD/AWG/AZN/BAM/BBD/BDT/BGN/BHD/BIF/BMD/BND/BOB/BOV/BRL/BSD/BTN/BWP/BYR/BZD/CAD/CDF/CHE/CHF/CHW/CLF/CLP/CNY/COP/COU/CRC/CUC/CUP/CVE/CZK/DJF/DKK/DOP/DZD/EGP/ERN/ETB/EUR/FJD/FKP/GBP/GEL/GHS/GIP/GMD/GNF/GTQ/GYD/HKD/HNL/HRK/HTG/HUF/IDR/ILS/INR/IQD/IRR/ISK/JMD/JOD/JPY/KES/KGS/KHR/KMF/KPW/KRW/KWD/KYD/KZT/LAK/LBP/LKR/LRD/LSL/LTL/LVL/LYD/MAD/MDL/MGA/MKD/MMK/MNT/MOP/MRO/MUR/MVR/MWK/MXN/MXV/MYR/MZN/NAD/NGN/NIO/NOK/NPR/NZD/OMR/PAB/PEN/PGK/PHP/PKR/PLN/PYG/QAR/RON/RSD/RUB/RWF/SAR/SBD/SCR/SDG/SEK/SGD/SHP/SLL/SOS/SRD/SSP/STD/SVC/SYP/SZL/THB/TJS/TMT/TND/TOP/TRC/TRY/TTD/TWD/TZS/UAH/UGX/USD/USN/USS/UYI/UYU/UZS/VEF/VND/VUV/WST/XAF/XAG/XAU/XBA/XBB/XBC/XBD/XCD/XDR/XOF/XPD/XPF/XPT/XTS/XXX/YER/ZAR/ZMK/ZMW/BTC/ETH), addresses: [map{id: str, type: str, string: str, name: str, line1: str, line2: str, line3: str, line4: str, line5: str, street_number: str, city: str, state: str, postal_code: str, country: str, latitude: str, longitude: str, county: str, contact_name: str, salutation: str, phone_number: str, fax: str, email: str, website: str, notes: str, row_version: str}], phone_numbers: [map{id: str, country_code: str, area_code: str, number!: str, extension: str, type: str}], emails: [map{id: str, email!: str(email), type: str}], websites: [map{id: str, url!: str, type: str}], debtor_id: str, custom_mappings: map, deleted: bool, updated_by: str, created_by: str, updated_at: str(date-time), created_at: str(date-time), pass_through: [map{service_id!: str, operation_id: str, extend_object: map, extend_paths: [map]}]}
@returns(201) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint GET /hris/companies/{id}
@required {id: str}
@optional {fields: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str, legal_name: str?, display_name: str?, subdomain: str?, status: str, company_number: str?, currency: str?, addresses: [map], phone_numbers: [map], emails: [map], websites: [map], debtor_id: str?, custom_mappings: map?, deleted: bool, updated_by: str?, created_by: str?, updated_at: str(date-time)?, created_at: str(date-time)?, pass_through: [map]}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint PATCH /hris/companies/{id}
@required {id: str, legal_name: str}
@optional {id: str, display_name: str, subdomain: str, status: str(active/inactive/trial/other), company_number: str, currency: str(UNKNOWN_CURRENCY/AED/AFN/ALL/AMD/ANG/AOA/ARS/AUD/AWG/AZN/BAM/BBD/BDT/BGN/BHD/BIF/BMD/BND/BOB/BOV/BRL/BSD/BTN/BWP/BYR/BZD/CAD/CDF/CHE/CHF/CHW/CLF/CLP/CNY/COP/COU/CRC/CUC/CUP/CVE/CZK/DJF/DKK/DOP/DZD/EGP/ERN/ETB/EUR/FJD/FKP/GBP/GEL/GHS/GIP/GMD/GNF/GTQ/GYD/HKD/HNL/HRK/HTG/HUF/IDR/ILS/INR/IQD/IRR/ISK/JMD/JOD/JPY/KES/KGS/KHR/KMF/KPW/KRW/KWD/KYD/KZT/LAK/LBP/LKR/LRD/LSL/LTL/LVL/LYD/MAD/MDL/MGA/MKD/MMK/MNT/MOP/MRO/MUR/MVR/MWK/MXN/MXV/MYR/MZN/NAD/NGN/NIO/NOK/NPR/NZD/OMR/PAB/PEN/PGK/PHP/PKR/PLN/PYG/QAR/RON/RSD/RUB/RWF/SAR/SBD/SCR/SDG/SEK/SGD/SHP/SLL/SOS/SRD/SSP/STD/SVC/SYP/SZL/THB/TJS/TMT/TND/TOP/TRC/TRY/TTD/TWD/TZS/UAH/UGX/USD/USN/USS/UYI/UYU/UZS/VEF/VND/VUV/WST/XAF/XAG/XAU/XBA/XBB/XBC/XBD/XCD/XDR/XOF/XPD/XPF/XPT/XTS/XXX/YER/ZAR/ZMK/ZMW/BTC/ETH), addresses: [map{id: str, type: str, string: str, name: str, line1: str, line2: str, line3: str, line4: str, line5: str, street_number: str, city: str, state: str, postal_code: str, country: str, latitude: str, longitude: str, county: str, contact_name: str, salutation: str, phone_number: str, fax: str, email: str, website: str, notes: str, row_version: str}], phone_numbers: [map{id: str, country_code: str, area_code: str, number!: str, extension: str, type: str}], emails: [map{id: str, email!: str(email), type: str}], websites: [map{id: str, url!: str, type: str}], debtor_id: str, custom_mappings: map, deleted: bool, updated_by: str, created_by: str, updated_at: str(date-time), created_at: str(date-time), pass_through: [map{service_id!: str, operation_id: str, extend_object: map, extend_paths: [map]}]}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint DELETE /hris/companies/{id}
@required {id: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint GET /hris/departments
@optional {cursor: str, limit: int=20, pass_through: map, fields: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: [map], _raw: map?, meta: map{items_on_page: int, cursors: map{previous: str?, current: str?, next: str?}}, links: map{previous: str?, current: str, next: str?}}
@errors {400, 401, 402, 404, 422}

@endpoint POST /hris/departments
@optional {id: str, parent_id: str, name: str, code: str, description: str, custom_mappings: map, updated_by: str, created_by: str, updated_at: str(date-time), created_at: str(date-time), pass_through: [map{service_id!: str, operation_id: str, extend_object: map, extend_paths: [map]}]}
@returns(201) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint GET /hris/departments/{id}
@required {id: str}
@optional {fields: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str, parent_id: str?, name: str?, code: str?, description: str?, custom_mappings: map?, updated_by: str?, created_by: str?, updated_at: str(date-time)?, created_at: str(date-time)?, pass_through: [map]}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint PATCH /hris/departments/{id}
@required {id: str}
@optional {id: str, parent_id: str, name: str, code: str, description: str, custom_mappings: map, updated_by: str, created_by: str, updated_at: str(date-time), created_at: str(date-time), pass_through: [map{service_id!: str, operation_id: str, extend_object: map, extend_paths: [map]}]}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint DELETE /hris/departments/{id}
@required {id: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint GET /hris/payrolls
@optional {filter: map, pass_through: map, fields: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: [map], _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint GET /hris/payrolls/{payroll_id}
@required {payroll_id: str}
@optional {fields: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str?, company_id: str?, processed: bool?, processed_date: str?, check_date: str?, start_date: str?, end_date: str?, totals: map{company_debit: num?, tax_debit: num?, check_amount: num?, net_pay: num?, gross_pay: num?, employer_taxes: num?, employee_taxes: num?, employer_benefit_contributions: num?, employee_benefit_deductions: num?}, compensations: [map], custom_mappings: map?}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint GET /hris/payrolls/employees/{employee_id}
@required {employee_id: str}
@optional {filter: map, pass_through: map, fields: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: [map], _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint GET /hris/payrolls/employees/{employee_id}/payrolls/{payroll_id}
@required {payroll_id: str, employee_id: str}
@optional {fields: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str?, employee_id: str?, company_id: str?, processed: bool?, processed_date: str?, check_date: str?, start_date: str?, end_date: str?, totals: map{company_debit: num?, tax_debit: num?, check_amount: num?, net_pay: num?, gross_pay: num?, employer_taxes: num?, employee_taxes: num?, employer_benefit_contributions: num?, employee_benefit_deductions: num?}, compensations: [map]}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint GET /hris/schedules/employees/{employee_id}
@required {employee_id: str}
@optional {pass_through: map, fields: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{employee: map{id: str?, downstream_id: str?, first_name: str?, last_name: str?, middle_name: str?, display_name: str?, preferred_name: str?, initials: str?, salutation: str?, title: str?, marital_status: str?, partner: map{id: str?, first_name: str?, last_name: str?, middle_name: str?, gender: str?, initials: str?, birthday: str(date)?, deceased_on: str(date)?, custom_mappings: map?}, division: str?, division_id: str?, department: str?, department_id: str?, department_name: str?, team: map?{id: str?, name: str?}, company_id: str?, company_name: str?, employment_start_date: str?, employment_end_date: str?, leaving_reason: str?, employee_number: str?, employment_status: str?, employment_role: map{type: str?, sub_type: str?}, ethnicity: str?, manager: map{id: str?, name: str?, first_name: str?, last_name: str?, email: str(email)?, employment_status: str?}, direct_reports: [str]?, social_security_number: str?, birthday: str(date)?, deceased_on: str(date)?, country_of_birth: str?, description: str?, gender: str?, pronouns: str?, preferred_language: str?, languages: [str], nationalities: [str], photo_url: str?, timezone: str?, source: str?, source_id: str?, record_url: str?, jobs: [map]?, compensations: [map]?, works_remote: bool?, addresses: [map], phone_numbers: [map], emails: [map], custom_fields: [map], social_links: [map], bank_accounts: [map], tax_code: str?, tax_id: str?, dietary_preference: str?, food_allergies: [str]?, probation_period: map{start_date: str(date)?, end_date: str(date)?}, tags: [str]?, custom_mappings: map?, row_version: str?, deleted: bool?, updated_by: str?, created_by: str?, updated_at: str(date-time)?, created_at: str(date-time)?, pass_through: [map]}, schedules: [map]?}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint GET /hris/time-off-requests
@optional {cursor: str, limit: int=20, filter: map, pass_through: map, fields: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: [map], _raw: map?, meta: map{items_on_page: int, cursors: map{previous: str?, current: str?, next: str?}}, links: map{previous: str?, current: str, next: str?}}
@errors {400, 401, 402, 404, 422}

@endpoint POST /hris/time-off-requests
@optional {id: str, employee_id: str, policy_id: str, status: str(requested/approved/declined/cancelled/deleted/other), description: str, start_date: str, end_date: str, request_date: str, request_type: str(vacation/sick/personal/jury_duty/volunteer/bereavement/other), approval_date: str, units: str(days/hours/other), amount: num, day_part: str, notes: map{employee: str, manager: str}, custom_mappings: map, updated_by: str, created_by: str, updated_at: str(date-time), created_at: str(date-time), pass_through: [map{service_id!: str, operation_id: str, extend_object: map, extend_paths: [map]}], policy_type: str}
@returns(201) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint GET /hris/time-off-requests/employees/{employee_id}/time-off-requests/{id}
@required {id: str, employee_id: str}
@optional {fields: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str, employee_id: str?, policy_id: str?, status: str?, description: str?, start_date: str?, end_date: str?, request_date: str?, request_type: str?, approval_date: str?, units: str?, amount: num?, day_part: str?, notes: map{employee: str?, manager: str?}, custom_mappings: map?, updated_by: str?, created_by: str?, updated_at: str(date-time)?, created_at: str(date-time)?, pass_through: [map], policy_type: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint PATCH /hris/time-off-requests/employees/{employee_id}/time-off-requests/{id}
@required {id: str, employee_id: str}
@optional {id: str, employee_id: str, policy_id: str, status: str(requested/approved/declined/cancelled/deleted/other), description: str, start_date: str, end_date: str, request_date: str, request_type: str(vacation/sick/personal/jury_duty/volunteer/bereavement/other), approval_date: str, units: str(days/hours/other), amount: num, day_part: str, notes: map{employee: str, manager: str}, custom_mappings: map, updated_by: str, created_by: str, updated_at: str(date-time), created_at: str(date-time), pass_through: [map{service_id!: str, operation_id: str, extend_object: map, extend_paths: [map]}], policy_type: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint DELETE /hris/time-off-requests/employees/{employee_id}/time-off-requests/{id}
@required {id: str, employee_id: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@end
