Skip to content

Person

A Person represents a worker or individual registered in a project (company). People belong to a project and are assigned to one or more offices via PersonOffice.

Hierarchy: Project (company) → Office (work location) → Person (worker).

People are the main subjects of the compliance schedule: action subscriptions (ActionSubscription) and certificates (Certificate) are typically linked to a person via their person_id.

Use this API to:

  • Find a person by name, last name, or tax code within a project
  • Get the person_id needed to create certificates, compliance schedule entries, or office assignments
  • Look up personal and employment details of a worker

A person can have a linked user account via entity_id (email) and related_user (permission level).

Version
2.0.0
OpenAPI version
3.0.0

Security scheme type: apiKey

Query parameter name: access-token

Security scheme type: oauth2

Flow type: password

Token URL: https://auth.4hse.com/realms/4hse/protocol/openid-connect/token

POST
/v2/person/index

Returns a paginated list of persons.

Most useful filters:

  • project_id + last_name: find a person by last name within a company
  • project_id + tax_code: find a person by tax code (exact match)
  • project_id + code: find a person by company employee code
  • is_employee: 1: filter employees only

Parameters for searching persons

object
filter
object
person_id

Unique identifier of the person. Certificates reference the person via resource_id, compliance schedule entries via subscriber_id — pass this value.

string format: uuid
code

Alternative identifier, typically the company employee code.

string
<= 50 characters
first_name

First name.

string
<= 70 characters
last_name

Last name.

string
<= 70 characters
street

Residential address.

string
<= 255 characters
locality

City.

string
<= 50 characters
postal_code

Postal code.

string
<= 50 characters
region

Region or province.

string
<= 150 characters
sex

Sex.

string
<= 10 characters
country

ISO 3166-1 alpha-2 country code.

string
<= 50 characters
birth_date

Date of birth.

string format: date
birth_place

Place of birth.

string
<= 150 characters
tax_code

Tax code (fiscal code).

string
<= 30 characters
note

Free-text notes.

string
contract_type

Employment contract type.

string
is_employee
  • 1: company employee
  • 0: not an employee
integer
Allowed values: 0 1
is_prevention_people
  • 1: external prevention and safety staff
  • 0: not external prevention staff
integer
Allowed values: 0 1
entity_id

The email of the linked user account.

string
project_id

The project (company) this person belongs to.

string format: uuid
project_name

Name of the project (company) this person belongs to.

string
project_status

Status of the parent project.

string
Allowed values: active suspended pending_delete deleted
project_country

Country of the parent project.

string
<= 50 characters
related_user

Permission level of the linked user account:

  • relatedUser_user: basic access
  • relatedUser_manager: management access
string
owned_active

Whether this person is currently active in their validity period.

boolean
nullable
parent_active

Whether the parent project is currently active.

boolean
nullable
per-page
integer
default: 100 >= 1
page
integer
default: 1 >= 1
sort

Field to sort by. Prefix with minus for descending order (e.g. “-last_name”).

string
Allowed values: first_name last_name code tax_code birth_date
history

If true, includes historicized (no longer active) entries in the results. By default only current entries are returned.

boolean
Example
{
"filter": {
"project_id": "b5a7d602-3fc9-4e2a-9d1a-6e5b4c8f7a01",
"last_name": "Smith",
"is_employee": 1
},
"per-page": 50,
"page": 1,
"sort": "last_name"
}

List of persons

Array<object>
object
person_id

Unique identifier of the person. Certificates reference the person via resource_id, compliance schedule entries via subscriber_id — pass this value.

string format: uuid
code

Alternative identifier, typically the company employee code.

string
<= 50 characters
first_name

First name.

string
<= 70 characters
last_name

Last name.

string
<= 70 characters
street

Residential address.

string
<= 255 characters
locality

City.

string
<= 50 characters
postal_code

Postal code.

string
<= 50 characters
region

Region or province.

string
<= 150 characters
sex

Sex.

string
<= 10 characters
country

ISO 3166-1 alpha-2 country code.

string
<= 50 characters
birth_date

Date of birth.

string format: date
birth_place

Place of birth.

string
<= 150 characters
tax_code

Tax code (fiscal code).

string
<= 30 characters
note

Free-text notes.

string
contract_type

Employment contract type.

string
is_employee
  • 1: company employee
  • 0: not an employee
integer
Allowed values: 0 1
is_prevention_people
  • 1: external prevention and safety staff
  • 0: not external prevention staff
integer
Allowed values: 0 1
entity_id

The email of the linked user account.

string
project_id

The project (company) this person belongs to.

string format: uuid
project_name

Name of the project (company) this person belongs to.

string
project_status

Status of the parent project.

string
Allowed values: active suspended pending_delete deleted
project_country

Country of the parent project.

string
<= 50 characters
related_user

Permission level of the linked user account:

  • relatedUser_user: basic access
  • relatedUser_manager: management access
string
owned_active

Whether this person is currently active in their validity period.

boolean
nullable
parent_active

Whether the parent project is currently active.

boolean
nullable
Example
[
{
"person_id": "e3a1f5d2-8c4b-4e7a-9f6d-2b1c3d4e5f6a",
"first_name": "John",
"last_name": "Smith",
"code": "JS001",
"tax_code": "SMTJHN85C15H501Z",
"birth_date": "1985-03-15",
"is_employee": 1,
"is_prevention_people": 0,
"entity_id": "john.smith@example.com",
"project_id": "b5a7d602-3fc9-4e2a-9d1a-6e5b4c8f7a01",
"project_name": "Acme Construction Ltd",
"project_status": "active",
"owned_active": true,
"parent_active": true
}
]
X-Pagination-Current-Page
integer

Current page

X-Pagination-Page-Count
integer

Total number of pages

X-Pagination-Per-Page
integer

Number of items per page

X-Pagination-Total-Count
integer

Total number of items

GET
/v2/person/view/{id}

Retrieves a single person. Can be looked up in two ways:

  • By person_id (passed as path parameter id)
  • By code + project_id (passed as query parameters, if the person_id is not known)
id
required
string format: uuid

The person_id to retrieve. Required if code and project_id are not provided.

code
string

Employee code. Required together with project_id if id is not provided.

project_id
string format: uuid

Required together with code if id is not provided.

Person found

object
person_id

Unique identifier of the person. Certificates reference the person via resource_id, compliance schedule entries via subscriber_id — pass this value.

string format: uuid
code

Alternative identifier, typically the company employee code.

string
<= 50 characters
first_name

First name.

string
<= 70 characters
last_name

Last name.

string
<= 70 characters
street

Residential address.

string
<= 255 characters
locality

City.

string
<= 50 characters
postal_code

Postal code.

string
<= 50 characters
region

Region or province.

string
<= 150 characters
sex

Sex.

string
<= 10 characters
country

ISO 3166-1 alpha-2 country code.

string
<= 50 characters
birth_date

Date of birth.

string format: date
birth_place

Place of birth.

string
<= 150 characters
tax_code

Tax code (fiscal code).

string
<= 30 characters
note

Free-text notes.

string
contract_type

Employment contract type.

string
is_employee
  • 1: company employee
  • 0: not an employee
integer
Allowed values: 0 1
is_prevention_people
  • 1: external prevention and safety staff
  • 0: not external prevention staff
integer
Allowed values: 0 1
entity_id

The email of the linked user account.

string
project_id

The project (company) this person belongs to.

string format: uuid
project_name

Name of the project (company) this person belongs to.

string
project_status

Status of the parent project.

string
Allowed values: active suspended pending_delete deleted
project_country

Country of the parent project.

string
<= 50 characters
related_user

Permission level of the linked user account:

  • relatedUser_user: basic access
  • relatedUser_manager: management access
string
owned_active

Whether this person is currently active in their validity period.

boolean
nullable
parent_active

Whether the parent project is currently active.

boolean
nullable
Example
{
"person_id": "e3a1f5d2-8c4b-4e7a-9f6d-2b1c3d4e5f6a",
"first_name": "John",
"last_name": "Smith",
"code": "JS001",
"tax_code": "SMTJHN85C15H501Z",
"birth_date": "1985-03-15",
"is_employee": 1,
"is_prevention_people": 0,
"entity_id": "john.smith@example.com",
"project_id": "b5a7d602-3fc9-4e2a-9d1a-6e5b4c8f7a01",
"project_name": "Acme Construction Ltd",
"project_status": "active",
"owned_active": true,
"parent_active": true
}

Person not found

POST
/v2/person/create

Creates a new person within a project.

Requires first_name, last_name, and project_id. The person_id is auto-generated if not provided.

Creating a person does not assign them to any office. To assign a person to an office, create a PersonOffice after creating the person.

Special parameter unique_code: if true and a person with the same code already exists in the project, the existing person is updated instead of creating a new one. If the person was historicized, they are reactivated with a new period.

Person object to be created

object
person_id

Unique identifier of the person. Auto-generated if not provided on creation. Certificates reference the person via the resource_id field — pass this value. Compliance schedule entries reference the person via the subscriber_id field — pass this value. If unknown, use the index endpoint filtering by project_id and last_name or tax_code to find it.

string format: uuid
code

Alternative identifier, typically the company employee code. Can be used with project_id as an alternative to person_id for view, update, historicize, and delete operations.

string
<= 50 characters
first_name
required

First name.

string
<= 70 characters
last_name
required

Last name.

string
<= 70 characters
street

Residential address.

string
<= 255 characters
locality

City.

string
<= 50 characters
postal_code

Postal code.

string
<= 50 characters
region

Region or province.

string
<= 150 characters
sex

Sex.

string
<= 10 characters
country

ISO 3166-1 alpha-2 country code.

string
<= 50 characters
birth_date

Date of birth.

string format: date
birth_place

Place of birth.

string
<= 150 characters
tax_code

Tax code (fiscal code). Useful for unique lookup within a project.

string
<= 30 characters
note

Free-text notes.

string
contract_type

Employment contract type.

string
is_employee
  • 1: the person is a company employee
  • 0: the person is not an employee Normally a person is either an employee (is_employee: 1) or external prevention staff (is_prevention_people: 1), not both.
integer
Allowed values: 0 1
is_prevention_people
  • 1: the person is external prevention and safety staff (e.g. external safety officer, occupational physician)
  • 0: the person is not external prevention staff Normally a person is either an employee (is_employee: 1) or external prevention staff (is_prevention_people: 1), not both.
integer
Allowed values: 0 1
entity_id

The email of the linked user account. When set together with related_user, the person is connected to a platform account that can authenticate.

string
<= 50 characters
project_id
required

The project (company) this person belongs to. Pass the project_id obtained from the Project API.

string format: uuid
related_user

The permission level of the linked user account on this person:

  • relatedUser_user: basic access to their own profile
  • relatedUser_manager: management access If not specified, inherited from the project configuration.
string
unique_code

If true and a person with the same code already exists in the project, the existing person is updated instead of creating a new one. If the person was historicized, they are reactivated with a new period.

boolean
Example
{
"first_name": "John",
"last_name": "Smith",
"code": "JS001",
"tax_code": "SMTJHN85C15H501Z",
"birth_date": "1985-03-15",
"is_employee": 1,
"entity_id": "john.smith@example.com",
"project_id": "b5a7d602-3fc9-4e2a-9d1a-6e5b4c8f7a01",
"related_user": "relatedUser_user"
}

Person created successfully

object
person_id

Unique identifier of the person. Auto-generated if not provided on creation. Certificates reference the person via the resource_id field — pass this value. Compliance schedule entries reference the person via the subscriber_id field — pass this value. If unknown, use the index endpoint filtering by project_id and last_name or tax_code to find it.

string format: uuid
code

Alternative identifier, typically the company employee code. Can be used with project_id as an alternative to person_id for view, update, historicize, and delete operations.

string
<= 50 characters
first_name
required

First name.

string
<= 70 characters
last_name
required

Last name.

string
<= 70 characters
street

Residential address.

string
<= 255 characters
locality

City.

string
<= 50 characters
postal_code

Postal code.

string
<= 50 characters
region

Region or province.

string
<= 150 characters
sex

Sex.

string
<= 10 characters
country

ISO 3166-1 alpha-2 country code.

string
<= 50 characters
birth_date

Date of birth.

string format: date
birth_place

Place of birth.

string
<= 150 characters
tax_code

Tax code (fiscal code). Useful for unique lookup within a project.

string
<= 30 characters
note

Free-text notes.

string
contract_type

Employment contract type.

string
is_employee
  • 1: the person is a company employee
  • 0: the person is not an employee Normally a person is either an employee (is_employee: 1) or external prevention staff (is_prevention_people: 1), not both.
integer
Allowed values: 0 1
is_prevention_people
  • 1: the person is external prevention and safety staff (e.g. external safety officer, occupational physician)
  • 0: the person is not external prevention staff Normally a person is either an employee (is_employee: 1) or external prevention staff (is_prevention_people: 1), not both.
integer
Allowed values: 0 1
entity_id

The email of the linked user account. When set together with related_user, the person is connected to a platform account that can authenticate.

string
<= 50 characters
project_id
required

The project (company) this person belongs to. Pass the project_id obtained from the Project API.

string format: uuid
related_user

The permission level of the linked user account on this person:

  • relatedUser_user: basic access to their own profile
  • relatedUser_manager: management access If not specified, inherited from the project configuration.
string
Example
{
"person_id": "e3a1f5d2-8c4b-4e7a-9f6d-2b1c3d4e5f6a",
"first_name": "John",
"last_name": "Smith",
"code": "JS001",
"tax_code": "SMTJHN85C15H501Z",
"birth_date": "1985-03-15",
"is_employee": 1,
"entity_id": "john.smith@example.com",
"project_id": "b5a7d602-3fc9-4e2a-9d1a-6e5b4c8f7a01",
"related_user": "relatedUser_user"
}
PUT
/v2/person/update/{id}

Updates an existing person. Can be identified by person_id or by code + project_id.

id
required
string format: uuid

The person_id to update. Required if code and project_id are not provided.

code
string

Employee code. Required together with project_id if id is not provided.

project_id
string format: uuid

Required together with code if id is not provided.

Person fields to update

object
person_id

Unique identifier of the person. Auto-generated if not provided on creation. Certificates reference the person via the resource_id field — pass this value. Compliance schedule entries reference the person via the subscriber_id field — pass this value. If unknown, use the index endpoint filtering by project_id and last_name or tax_code to find it.

string format: uuid
code

Alternative identifier, typically the company employee code. Can be used with project_id as an alternative to person_id for view, update, historicize, and delete operations.

string
<= 50 characters
first_name
required

First name.

string
<= 70 characters
last_name
required

Last name.

string
<= 70 characters
street

Residential address.

string
<= 255 characters
locality

City.

string
<= 50 characters
postal_code

Postal code.

string
<= 50 characters
region

Region or province.

string
<= 150 characters
sex

Sex.

string
<= 10 characters
country

ISO 3166-1 alpha-2 country code.

string
<= 50 characters
birth_date

Date of birth.

string format: date
birth_place

Place of birth.

string
<= 150 characters
tax_code

Tax code (fiscal code). Useful for unique lookup within a project.

string
<= 30 characters
note

Free-text notes.

string
contract_type

Employment contract type.

string
is_employee
  • 1: the person is a company employee
  • 0: the person is not an employee Normally a person is either an employee (is_employee: 1) or external prevention staff (is_prevention_people: 1), not both.
integer
Allowed values: 0 1
is_prevention_people
  • 1: the person is external prevention and safety staff (e.g. external safety officer, occupational physician)
  • 0: the person is not external prevention staff Normally a person is either an employee (is_employee: 1) or external prevention staff (is_prevention_people: 1), not both.
integer
Allowed values: 0 1
entity_id

The email of the linked user account. When set together with related_user, the person is connected to a platform account that can authenticate.

string
<= 50 characters
project_id
required

The project (company) this person belongs to. Pass the project_id obtained from the Project API.

string format: uuid
related_user

The permission level of the linked user account on this person:

  • relatedUser_user: basic access to their own profile
  • relatedUser_manager: management access If not specified, inherited from the project configuration.
string
Example
{
"last_name": "Johnson",
"code": "JJ002"
}

Person updated successfully

object
person_id

Unique identifier of the person. Auto-generated if not provided on creation. Certificates reference the person via the resource_id field — pass this value. Compliance schedule entries reference the person via the subscriber_id field — pass this value. If unknown, use the index endpoint filtering by project_id and last_name or tax_code to find it.

string format: uuid
code

Alternative identifier, typically the company employee code. Can be used with project_id as an alternative to person_id for view, update, historicize, and delete operations.

string
<= 50 characters
first_name
required

First name.

string
<= 70 characters
last_name
required

Last name.

string
<= 70 characters
street

Residential address.

string
<= 255 characters
locality

City.

string
<= 50 characters
postal_code

Postal code.

string
<= 50 characters
region

Region or province.

string
<= 150 characters
sex

Sex.

string
<= 10 characters
country

ISO 3166-1 alpha-2 country code.

string
<= 50 characters
birth_date

Date of birth.

string format: date
birth_place

Place of birth.

string
<= 150 characters
tax_code

Tax code (fiscal code). Useful for unique lookup within a project.

string
<= 30 characters
note

Free-text notes.

string
contract_type

Employment contract type.

string
is_employee
  • 1: the person is a company employee
  • 0: the person is not an employee Normally a person is either an employee (is_employee: 1) or external prevention staff (is_prevention_people: 1), not both.
integer
Allowed values: 0 1
is_prevention_people
  • 1: the person is external prevention and safety staff (e.g. external safety officer, occupational physician)
  • 0: the person is not external prevention staff Normally a person is either an employee (is_employee: 1) or external prevention staff (is_prevention_people: 1), not both.
integer
Allowed values: 0 1
entity_id

The email of the linked user account. When set together with related_user, the person is connected to a platform account that can authenticate.

string
<= 50 characters
project_id
required

The project (company) this person belongs to. Pass the project_id obtained from the Project API.

string format: uuid
related_user

The permission level of the linked user account on this person:

  • relatedUser_user: basic access to their own profile
  • relatedUser_manager: management access If not specified, inherited from the project configuration.
string
Example
{
"person_id": "e3a1f5d2-8c4b-4e7a-9f6d-2b1c3d4e5f6a",
"first_name": "John",
"last_name": "Johnson",
"code": "JJ002"
}

Person not found

POST
/v2/person/historicize/{id}

Historicizes a person — marks them as no longer active from a specified date. The person and their data remain in the system but will not appear in normal queries. Use the history: true parameter in the index to include historicized persons.

If no date is specified, the current date is used.

Historicization propagates automatically: all child entities of the person (office assignments, compliance schedule entries, etc.) are excluded from normal queries without any direct changes to their data. The parent_active field in child entity responses reflects this state. This applies at all levels of the hierarchy.

id
required
string format: uuid

The person_id to historicize. Required if code and project_id are not provided.

code
string

Employee code. Required together with project_id if id is not provided.

project_id
string format: uuid

Required together with code if id is not provided.

Historicization date

object
date

The date from which the person is no longer active. Defaults to the current date.

string format: date
Example
{
"date": "2025-06-10"
}

Person historicized successfully

object
person_id

Unique identifier of the person. Auto-generated if not provided on creation. Certificates reference the person via the resource_id field — pass this value. Compliance schedule entries reference the person via the subscriber_id field — pass this value. If unknown, use the index endpoint filtering by project_id and last_name or tax_code to find it.

string format: uuid
code

Alternative identifier, typically the company employee code. Can be used with project_id as an alternative to person_id for view, update, historicize, and delete operations.

string
<= 50 characters
first_name
required

First name.

string
<= 70 characters
last_name
required

Last name.

string
<= 70 characters
street

Residential address.

string
<= 255 characters
locality

City.

string
<= 50 characters
postal_code

Postal code.

string
<= 50 characters
region

Region or province.

string
<= 150 characters
sex

Sex.

string
<= 10 characters
country

ISO 3166-1 alpha-2 country code.

string
<= 50 characters
birth_date

Date of birth.

string format: date
birth_place

Place of birth.

string
<= 150 characters
tax_code

Tax code (fiscal code). Useful for unique lookup within a project.

string
<= 30 characters
note

Free-text notes.

string
contract_type

Employment contract type.

string
is_employee
  • 1: the person is a company employee
  • 0: the person is not an employee Normally a person is either an employee (is_employee: 1) or external prevention staff (is_prevention_people: 1), not both.
integer
Allowed values: 0 1
is_prevention_people
  • 1: the person is external prevention and safety staff (e.g. external safety officer, occupational physician)
  • 0: the person is not external prevention staff Normally a person is either an employee (is_employee: 1) or external prevention staff (is_prevention_people: 1), not both.
integer
Allowed values: 0 1
entity_id

The email of the linked user account. When set together with related_user, the person is connected to a platform account that can authenticate.

string
<= 50 characters
project_id
required

The project (company) this person belongs to. Pass the project_id obtained from the Project API.

string format: uuid
related_user

The permission level of the linked user account on this person:

  • relatedUser_user: basic access to their own profile
  • relatedUser_manager: management access If not specified, inherited from the project configuration.
string

Person not found

DELETE
/v2/person/delete/{id}

Deletes a person. Can be identified by person_id or by code + project_id.

With historicize=true, the person is historicized instead of deleted (equivalent to the historicize endpoint). If force=false (default), the operation is interrupted and the response lists related entities. If force=true, the person and all related entities are deleted.

id
required
string format: uuid

The person_id to delete. Required if code and project_id are not provided.

code
string

Employee code. Required together with project_id if id is not provided.

project_id
string format: uuid

Required together with code if id is not provided.

historicize
boolean

If true, the person is historicized instead of deleted.

force
boolean

If true, deletes the person and all related entities. If false, returns a preview of affected entities.

Person deleted successfully

Preview of entities that would be deleted (returned when force=false)

POST

Triggered when a new person is created.

The newly created person

object
person_id

Unique identifier of the person. Auto-generated if not provided on creation. Certificates reference the person via the resource_id field — pass this value. Compliance schedule entries reference the person via the subscriber_id field — pass this value. If unknown, use the index endpoint filtering by project_id and last_name or tax_code to find it.

string format: uuid
code

Alternative identifier, typically the company employee code. Can be used with project_id as an alternative to person_id for view, update, historicize, and delete operations.

string
<= 50 characters
first_name
required

First name.

string
<= 70 characters
last_name
required

Last name.

string
<= 70 characters
street

Residential address.

string
<= 255 characters
locality

City.

string
<= 50 characters
postal_code

Postal code.

string
<= 50 characters
region

Region or province.

string
<= 150 characters
sex

Sex.

string
<= 10 characters
country

ISO 3166-1 alpha-2 country code.

string
<= 50 characters
birth_date

Date of birth.

string format: date
birth_place

Place of birth.

string
<= 150 characters
tax_code

Tax code (fiscal code). Useful for unique lookup within a project.

string
<= 30 characters
note

Free-text notes.

string
contract_type

Employment contract type.

string
is_employee
  • 1: the person is a company employee
  • 0: the person is not an employee Normally a person is either an employee (is_employee: 1) or external prevention staff (is_prevention_people: 1), not both.
integer
Allowed values: 0 1
is_prevention_people
  • 1: the person is external prevention and safety staff (e.g. external safety officer, occupational physician)
  • 0: the person is not external prevention staff Normally a person is either an employee (is_employee: 1) or external prevention staff (is_prevention_people: 1), not both.
integer
Allowed values: 0 1
entity_id

The email of the linked user account. When set together with related_user, the person is connected to a platform account that can authenticate.

string
<= 50 characters
project_id
required

The project (company) this person belongs to. Pass the project_id obtained from the Project API.

string format: uuid
related_user

The permission level of the linked user account on this person:

  • relatedUser_user: basic access to their own profile
  • relatedUser_manager: management access If not specified, inherited from the project configuration.
string
Example
{
"person_id": "e3a1f5d2-8c4b-4e7a-9f6d-2b1c3d4e5f6a",
"first_name": "John",
"last_name": "Smith",
"code": "JS001",
"birth_date": "1985-03-15",
"entity_id": "john.smith@example.com",
"project_id": "b5a7d602-3fc9-4e2a-9d1a-6e5b4c8f7a01",
"related_user": "relatedUser_user"
}

Acknowledgment of the webhook event

POST

Triggered when a person is updated. Provides the person ID and an object containing old and new values for each updated field.

Updated person with old and new values for changed fields

object
entity_id
required

The person_id of the updated person.

string format: uuid
updated_fields
required

Each key is an updated field name, with its old and new values.

object
key
additional properties
object
old
new
Example
{
"entity_id": "e3a1f5d2-8c4b-4e7a-9f6d-2b1c3d4e5f6a",
"updated_fields": {
"last_name": {
"new": "Johnson",
"old": "Smith"
}
}
}

Acknowledgment of the webhook event

POST

Triggered when a person is deleted.

The deleted person

object
person_id

Unique identifier of the person. Auto-generated if not provided on creation. Certificates reference the person via the resource_id field — pass this value. Compliance schedule entries reference the person via the subscriber_id field — pass this value. If unknown, use the index endpoint filtering by project_id and last_name or tax_code to find it.

string format: uuid
code

Alternative identifier, typically the company employee code. Can be used with project_id as an alternative to person_id for view, update, historicize, and delete operations.

string
<= 50 characters
first_name
required

First name.

string
<= 70 characters
last_name
required

Last name.

string
<= 70 characters
street

Residential address.

string
<= 255 characters
locality

City.

string
<= 50 characters
postal_code

Postal code.

string
<= 50 characters
region

Region or province.

string
<= 150 characters
sex

Sex.

string
<= 10 characters
country

ISO 3166-1 alpha-2 country code.

string
<= 50 characters
birth_date

Date of birth.

string format: date
birth_place

Place of birth.

string
<= 150 characters
tax_code

Tax code (fiscal code). Useful for unique lookup within a project.

string
<= 30 characters
note

Free-text notes.

string
contract_type

Employment contract type.

string
is_employee
  • 1: the person is a company employee
  • 0: the person is not an employee Normally a person is either an employee (is_employee: 1) or external prevention staff (is_prevention_people: 1), not both.
integer
Allowed values: 0 1
is_prevention_people
  • 1: the person is external prevention and safety staff (e.g. external safety officer, occupational physician)
  • 0: the person is not external prevention staff Normally a person is either an employee (is_employee: 1) or external prevention staff (is_prevention_people: 1), not both.
integer
Allowed values: 0 1
entity_id

The email of the linked user account. When set together with related_user, the person is connected to a platform account that can authenticate.

string
<= 50 characters
project_id
required

The project (company) this person belongs to. Pass the project_id obtained from the Project API.

string format: uuid
related_user

The permission level of the linked user account on this person:

  • relatedUser_user: basic access to their own profile
  • relatedUser_manager: management access If not specified, inherited from the project configuration.
string
Example
{
"person_id": "e3a1f5d2-8c4b-4e7a-9f6d-2b1c3d4e5f6a",
"first_name": "John",
"last_name": "Smith",
"code": "JS001",
"project_id": "b5a7d602-3fc9-4e2a-9d1a-6e5b4c8f7a01"
}

Acknowledgment of the webhook event