Harri Deprecated Employee API
The Deprecated Employee API from Harri — 17 operation(s) for deprecated employee.
The Deprecated Employee API from Harri — 17 operation(s) for deprecated employee.
openapi: 3.2.0
info:
title: Harri Employee Open Deprecated Employee API
description: 'API for managing and retrieving employee data in the Harri system. - Notice: Harri''s API enforces a rate limit of 400 requests per minute. Once you exceed this limit, an HTTP 403 error is returned with a body that informs you that the limit has been exceeded. Please examine the API returns for this error so your software can respond appropriately. After 4 June, 2026, the rate limiting error will change from 403 to 429.'
termsOfService: https://harri.com/terms
version: 1.0.0
servers:
- url: https://gateway.harri.com/open-api-hub
tags:
- name: Deprecated Employee
paths:
/api/v3/employees:
post:
deprecated: true
tags:
- Deprecated Employee
summary: Deprecated create employee API
description: Deprecated create employee
operationId: DeprecatedCreateEmployee
requestBody:
description: employee
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: A unique ID provided by customers or third-parties. When not supplied, Harri will generate one. Only supported if external mapping is allowed for the client.
email:
type: string
format: email
description: If phone number is not provided, employee email must be provided.
first_name:
type: string
description: employee first name
last_name:
type: string
description: employee last name
middle_name:
type: string
description: employee middle name
known_as:
type: string
birth_date:
type: string
format: date
description: employee birth date
national_number:
type: string
description: national_number max length is 12 cahrechters
phone:
type: string
format: phone
description: If email is not provided, employee phone number must be provided.
home_phone:
type: string
format: phone
description: home phone number
gender:
type: string
enum:
- MALE
- FEMALE
- NO_IDENTIFY
description: employee gender
geid:
type: string
address:
allOf:
- $ref: '#/components/schemas/Address'
- type: object
required:
- account_number
- postal_code
- country_code
hire_date:
type: string
format: date
description: employee hire date
bank_account:
type: object
properties:
routing_number:
type: string
account_number:
type: string
registration_number:
type: string
account_type:
type: string
enum:
- SAVINGS
- CHECKING
bank_name:
type: string
account_name:
type: string
sort_code:
type: string
required:
- account_number
job_titles:
type: array
items:
type: object
properties:
job_title_id:
type: number
level:
type: number
required:
- job_title_id
- level
payroll_id:
type: string
vsl:
type: string
enum:
- IN
- OUT
location_id:
type: string
pay_type:
type: object
properties:
type:
type: string
enum:
- SALARIED
- HOURLY
- WEIGHTED_SHIFT
max_weekly_hours:
type: number
description: required if pay type is HOURLY
cross_location_mode:
type:
- string
- 'null'
enum:
- FIXED
- FLEXIBLE
description: this should be defined only when the pay type is HOURLY
is_tipped:
type:
- boolean
- 'null'
description: shouble be null if pay type SALARIED or WEIGHTED_SHIFT
pay_rate:
type: object
properties:
rate:
type: number
tronc:
type: number
required:
- rate
required:
- type
- pay_rate
position:
type: object
properties:
code:
type: string
cost_centers:
type: array
items:
type: object
properties:
id:
type: number
value:
type: object
properties:
id:
type: number
required:
- id
required:
- id
required:
- code
required:
- first_name
- last_name
- hire_date
- location_id
- pay_type
- position
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/DeprecatedEmployee'
security:
- oAuth2ClientCredentials:
- ''
get:
deprecated: true
tags:
- Deprecated Employee
parameters:
- name: status
in: query
description: to get terminated or active employee, default active
schema:
type: string
enum:
- ACTIVE
- TERMINATED
- name: limit
in: query
description: specify the number of rows to return
schema:
type: integer
minimum: 1
- name: page
in: query
description: specify the number of rows to skip
schema:
type: integer
minimum: 0
- name: location_id
in: query
description: specify the location id to filter
schema:
type: string
- name: is_primary
in: query
description: retrieve primary employees of the provided location_id
schema:
type: boolean
- name: loa_status
in: query
required: false
description: 'Filters employees by active LOA (Leave of Absence) status. When provided, only employees currently marked as ''ON_LEAVE'' within the retrieved page will be returned.
'
schema:
type: string
enum:
- ON_LEAVE
example: ON_LEAVE
- name: payroll_id
in: query
description: filter employees by payroll_id
schema:
type: string
- name: geid
in: query
description: filter employees by geid (external middleware id)
schema:
type: string
summary: Get employees API
description: Get employees.
operationId: DeprecactedgetEmployees
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
properties:
employees:
type: array
items:
$ref: '#/components/schemas/EmployeesListV2'
pagination:
type: object
properties:
page:
type: integer
per_page:
type: integer
total:
type: integer
total_pages:
type: integer
/api/v4/employees:
post:
deprecated: true
tags:
- Deprecated Employee
summary: Create employee API
description: Create employee API
operationId: DeprecatedCreateEmployeeV4
requestBody:
description: Employee data
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: A unique ID supplied by customers or third parties. If not provided, Harri will generate one. This is supported only if external mapping is enabled for the client.
email:
type: string
format: email
description: If phone number is not provided, employee email must be provided.
first_name:
type: string
description: employee first name
last_name:
type: string
description: employee last name
middle_name:
type: string
description: employee middle name
known_as:
type: string
birth_date:
type: string
format: date
description: employee birth date
national_number:
type: string
description: national_number max length is 12 cahrechters
phone:
type: string
format: phone
description: If email is not provided, employee phone number must be provided.
home_phone:
type: string
format: phone
description: home phone number
gender:
type: string
enum:
- MALE
- FEMALE
- NO_IDENTIFY
description: employee gender
geid:
type: string
address:
allOf:
- $ref: '#/components/schemas/Address'
- type: object
required:
- account_number
- postal_code
- country_code
hire_date:
type: string
format: date
description: employee hire date
bank_account:
type: object
properties:
routing_number:
type: string
account_number:
type: string
registration_number:
type: string
account_type:
type: string
enum:
- SAVINGS
- CHECKING
bank_name:
type: string
account_name:
type: string
sort_code:
type: string
required:
- account_number
job_titles:
type: array
items:
type: object
properties:
job_title_id:
type: number
level:
type: number
required:
- job_title_id
- level
payroll_id:
type: string
minLength: 1
vsl:
type: string
enum:
- IN
- OUT
location_id:
type: string
pay_type:
type: object
properties:
type:
type: string
enum:
- SALARIED
- HOURLY
- WEIGHTED_SHIFT
cross_location_mode:
type:
- string
- 'null'
enum:
- FIXED
- FLEXIBLE
description: Required when the pay type is set to HOURLY.
required:
- type
max_weekly_hours:
type: object
properties:
value:
type: number
required:
- value
annual_rate:
type: object
properties:
value:
type: number
required:
- value
tronc:
type: object
properties:
value:
type: number
required:
- value
position:
type: object
properties:
code:
type: string
tipped_status:
type: object
properties:
is_tipped:
type: boolean
required:
- is_tipped
description: Shouldn't be sent when the pay type is set to SALARIED or WEIGHTED_SHIFT.
hourly_rate:
type: object
properties:
value:
type: number
tronc:
type: number
required:
- value
cost_centers:
type: array
items:
type: object
properties:
id:
type: number
value:
type: object
properties:
id:
type: number
required:
- id
required:
- id
required:
- code
required:
- first_name
- last_name
- hire_date
- location_id
- pay_type
- position
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/DeprecatedCreatedEmployee'
security:
- oAuth2ClientCredentials:
- ''
/api/v5/employees:
post:
deprecated: true
tags:
- Deprecated Employee
summary: Create employee API
description: Create employee API
operationId: DeprecatedCreateEmployeeV2
requestBody:
description: Employee data
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: A unique ID supplied by customers or third parties. If not provided, Harri will generate one. This is supported only if external mapping is enabled for the client.
email:
type: string
format: email
description: If phone number is not provided, employee email must be provided.
first_name:
type: string
description: employee first name
last_name:
type: string
description: employee last name
middle_name:
type: string
description: employee middle name
known_as:
type: string
birth_date:
type: string
format: date
description: employee birth date
national_number:
type: string
description: national_number max length is 12 cahrechters
phone:
type: string
format: phone
description: If email is not provided, employee phone number must be provided.
home_phone:
type: string
format: phone
description: home phone number
gender:
type: string
enum:
- MALE
- FEMALE
- NO_IDENTIFY
description: employee gender
geid:
type: string
address:
allOf:
- $ref: '#/components/schemas/Address'
- type: object
required:
- account_number
- postal_code
- country_code
hire_date:
type: string
format: date
description: employee hire date
bank_account:
type: object
properties:
routing_number:
type: string
account_number:
type: string
registration_number:
type: string
account_type:
type: string
enum:
- SAVINGS
- CHECKING
bank_name:
type: string
account_name:
type: string
sort_code:
type: string
bank_branch:
type: string
required:
- account_number
job_titles:
type: array
items:
type: object
properties:
job_title_id:
type: number
level:
type: number
required:
- job_title_id
- level
payroll_id:
type: string
minLength: 1
vsl:
type: string
enum:
- IN
- OUT
location_id:
type: string
pay_type:
type: object
properties:
type:
type: string
enum:
- SALARIED
- HOURLY
- WEIGHTED_SHIFT
cross_location_mode:
type:
- string
- 'null'
enum:
- FIXED
- FLEXIBLE
description: Required when the pay type is set to HOURLY.
required:
- type
max_weekly_hours:
type: object
properties:
value:
type: number
working_pattern:
type: object
description: 'Defines the employee''s working pattern. The value depends on the enabled options: - If the WORKING_PATTERN service is **disabled**, the value should be omitted or set to `null`. - Option 1: Specific hours with non-specific days → `{"days_count": 1, "working_pattern_days": []}` - Option 2: Specific hours with flexible days → `{"days_count": null, "working_pattern_days": [{"day": "SUN", "hours_count": null}]}` - Option 3: Specific hours with specific days → `{"days_count": null, "working_pattern_days": [{"day": "SUN", "hours_count": 8}]}`
'
properties:
days_count:
type:
- number
- 'null'
description: The number of working days per week value enum(1, 2, 3, 4, 5, 6, 7), it can be null but the key is required to be sent
working_pattern_days:
type: array
description: 'The distribution of working days. Can be an empty list if not specifying specific days. Each item defines the day and optionally the number of hours worked.
'
items:
type: object
properties:
day:
type: string
hours_count:
type:
- number
- 'null'
description: The number of hours per day, it can be null but the key is required to be sent
required:
- day
required:
- days_count
required:
- value
annual_rate:
type: object
properties:
value:
type: number
required:
- value
title:
type: string
tronc_point:
type: object
properties:
value:
type: number
required:
- value
tronc_amount:
type: object
properties:
value:
type: number
required:
- value
position:
type: object
properties:
code:
type: string
tipped_status:
type: object
properties:
is_tipped:
type: boolean
required:
- is_tipped
description: Shouldn't be sent when the pay type is set to SALARIED or WEIGHTED_SHIFT.
hourly_rate:
type: object
properties:
value:
type: number
tronc_point:
type: number
tronc_rate:
type: number
tronc_amount:
type: number
required:
- value
cost_centers:
type: array
items:
type: object
properties:
id:
type: number
value:
type: object
properties:
id:
type: number
required:
- id
required:
- id
required:
- code
required:
- first_name
- last_name
- hire_date
- location_id
- pay_type
- position
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/DeprecatedCreatedEmployeeV2'
security:
- oAuth2ClientCredentials:
- ''
/api/v6/employees:
post:
deprecated: true
tags:
- Deprecated Employee
summary: Create employee API
description: Create employee API
operationId: CreateEmployee
requestBody:
description: Employee data
content:
application/json:
schema:
type: object
properties:
title:
type: string
id:
type: string
description: A unique ID supplied by customers or third parties. If not provided, Harri will generate one. This is supported only if external mapping is enabled for the client.
email:
type: string
format: email
description: If phone number is not provided, employee email must be provided.
first_name:
type: string
description: employee first name
last_name:
type: string
description: employee last name
middle_name:
type: string
description: employee middle name
known_as:
type: string
birth_date:
type: string
format: date
description: employee birth date
national_number:
type: string
description: national_number max length is 12 cahrechters
phone:
type: string
format: phone
description: If email is not provided, employee phone number must be provided.
home_phone:
type: string
format: phone
description: home phone number
gender:
type: string
enum:
- MALE
- FEMALE
- NO_IDENTIFY
description: employee gender
geid:
type: string
address:
allOf:
- $ref: '#/components/schemas/Address'
- type: object
required:
- account_number
- postal_code
- country_code
hire_date:
type: string
format: date
description: employee hire date
bank_account:
type: object
properties:
routing_number:
type: string
account_number:
type: string
registration_number:
type: string
account_type:
type: string
enum:
- SAVINGS
- CHECKING
bank_name:
type: string
account_name:
type: string
sort_code:
type: string
bank_branch:
type: string
required:
- account_number
job_titles:
type: array
items:
type: object
properties:
job_title_id:
type: number
level:
type: number
required:
- job_title_id
- level
payroll_id:
type: string
minLength: 1
vsl:
type: string
enum:
- IN
- OUT
location_id:
type: string
pay_type:
type: object
properties:
type:
type: string
enum:
- SALARIED
- HOURLY
- WEIGHTED_SHIFT
cross_location_mode:
type:
- string
- 'null'
enum:
- FIXED
- FLEXIBLE
description: Required when the pay type is set to HOURLY.
required:
- type
max_weekly_hours:
type: object
properties:
value:
type: number
working_pattern:
type: object
description: 'Defines the employee''s working pattern. The value depends on the enabled options: - If the WORKING_PATTERN service is **disabled**, the value should be omitted or set to `null`. - Option 1: Specific hours with non-specific days → `{"days_count": 1, "working_pattern_days": []}` - Option 2: Specific hours with flexible days → `{"days_count": null, "working_pattern_days": [{"day": "SUN", "hours_count": null}]}` - Option 3: Specific hours with specific days → `{"days_count": null, "working_pattern_days": [{"day": "SUN", "hours_count": 8}]}`
'
properties:
days_count:
type:
- number
- 'null'
description: The number of working days per week value enum(1, 2, 3, 4, 5, 6, 7), it can be null but the key is required to be sent
working_pattern_days:
type: array
description: 'The distribution of working days. Can be an empty list if not specifying specific days. Each item defines the day and optionally the number of hours worked.
'
items:
type: object
properties:
day:
type: string
hours_count:
type:
- number
- 'null'
description: The number of hours per day, it can be null but the key is required to be sent
required:
- day
required:
- days_count
required:
- value
annual_rate:
type: object
# --- truncated at 32 KB (116 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/harri/refs/heads/main/openapi/harri-deprecated-employee-api-openapi.yml