Harri Deprecated Franchisee Employee API
The Deprecated Franchisee Employee API from Harri — 16 operation(s) for deprecated franchisee employee.
The Deprecated Franchisee Employee API from Harri — 16 operation(s) for deprecated franchisee employee.
openapi: 3.2.0
info:
title: Harri Employee Open Deprecated Franchisee 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 Franchisee Employee
paths:
/api/v4/franchisees/{franchiseeId}/employees:
post:
deprecated: true
tags:
- Deprecated Franchisee Employee
summary: Create employee API
description: Create employee API
operationId: DeprecatedFranshiseesCreateEmployee
parameters:
- name: franchiseeId
in: path
required: true
schema:
type: number
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/franchisees/{franchiseeId}/employees:
post:
deprecated: true
tags:
- Deprecated Franchisee Employee
summary: Create employee API
description: Create employee API
operationId: DeprecatedFranshiseesCreateEmployeeV5
parameters:
- name: franchiseeId
in: path
required: true
schema:
type: number
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
properties:
value:
type: number
required:
- value
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_amount:
type: number
tronc_rate:
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/franchisees/{franchiseeId}/employees:
post:
deprecated: true
tags:
- Deprecated Franchisee Employee
summary: Create employee API
description: Create employee API
operationId: FranshiseesCreateEmployeeV5
parameters:
- name: franchiseeId
in: path
required: true
schema:
type: number
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_amount:
type: number
tronc_rate:
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/CreatedEmployee'
security:
- oAuth2ClientCredentials:
- ''
/api/v2/franchisees/{franchiseeId}/employees:
get:
deprecated: true
tags:
- Deprecated Franchisee Employee
parameters:
- name: franchiseeId
in: path
required: true
schema:
type: number
- 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
summary: Get employees API
description: Get employees.
operationId: DeprecatedFranshiseesGetEmployees
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
properties:
employees:
type: array
items:
$ref: '#/components/schemas/DeprecatedEmployeesListV2'
pagination:
type: object
properties:
page:
type: integer
per_page:
type: integer
total:
type: integer
total_pages:
type: integer
/api/v4/franchisees/{franchiseeId}/employees/{employeeId}:
get:
deprecated: true
tags:
- Deprecated Franchisee Employee
summary: Get employee by id API
description: Get employee by harri employee id.
operationId: DeprecatedFranshiseesGetEmployeeById
parameters:
- name: franchiseeId
in: path
required: true
schema:
type: number
- name: employeeId
in: path
description: ID of employee to return
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/DeprecatedEmployeeAggregatedInfo'
'400':
description: Invalid ID supplied
'404':
description: employee not found
content: {}
security:
- oAuth2ClientCredentials:
- ''
/api/v5/franchisees/{franchiseeId}/employees/{employeeId}:
get:
deprecated: true
tags:
- Deprecated Franchisee Employee
summary: Get employee by id API
description: Get employee by harri employee id.
operationId: FranshiseesGetEmployeeById
parameters:
- name: franchiseeId
in: path
required: true
schema:
type: number
- name: employeeId
in: path
description: ID of employee to return
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/EmployeeAggregatedInfo'
'400':
description: Invalid ID supplied
'404':
description: employee not found
content: {}
security:
- oAuth2ClientCredentials:
- ''
/api/v2/franchisees/{franchiseeId}/employees/{employeeId}/profile:
get:
deprecated: true
tags:
- Deprecated Franchisee Employee
summary: Get employee profile API
description: Get employee profile.
operationId: DeprecatedFranshiseesGetEmployeeProfile
parameters:
- name: franchiseeId
in: path
required: true
schema:
type: number
- name: employeeId
in: path
description: ID of employee to return
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/DeprecatedEmployeeProfileV2'
'400':
description: Invalid ID supplied
'404':
description: employee not found
content: {}
security:
- oAuth2ClientCredentials:
- ''
/api/v3/franchisees/{franchiseeId}/employees/{employeeId}/profile:
get:
deprecated: true
tags:
- Deprecated Franchisee Employee
summary: Get employee profile API
description: Get employee profile.
operationId: DeprecatedFranshiseesGetEmployeeProfileV3
parameters:
- name: franchiseeId
in: path
required: true
schema:
type: num
# --- truncated at 32 KB (106 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/harri/refs/heads/main/openapi/harri-deprecated-franchisee-employee-api-openapi.yml