HRIS · Beta
Sesame
API integration
Ship HRIS features without building the integration. Full Sesame API access via Proxy, normalized data through Unified APIs, and 290+ MCP-ready tools for AI agents — all extensible to your exact use case.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with Sesame
Common scenarios for SaaS companies building Sesame integrations for their customers.
Automate employee provisioning from Sesame's roster
Identity and access management SaaS companies can sync Sesame's employee directory to automatically provision or deprovision user accounts when HR status changes, eliminating manual IT tickets and reducing security gaps.
Pull time-tracking data for accurate payroll processing
Payroll and compensation platforms can ingest Sesame's granular clock-in/clock-out and absence data to calculate wages, overtime, and deductions without relying on error-prone CSV exports.
Mirror org hierarchy for automated approval routing
Expense management and procurement SaaS companies can sync Sesame's departments and manager relationships to automatically build approval chains, so spend requests route to the correct approver without manual configuration.
Trigger onboarding workflows when new hires are created
Employee engagement, IT asset management, and onboarding platforms can listen for new employee events in Sesame to kick off welcome sequences, device provisioning, or swag fulfillment the moment a hire is confirmed.
Enforce absence-aware shift scheduling
Workforce scheduling SaaS companies can pull approved absences and leave balances from Sesame to prevent scheduling conflicts and push finalized hours back for labor compliance record-keeping.
What You Can Build
Ship these features with Truto + Sesame
Concrete product features your team can ship faster by leveraging Truto’s Sesame integration instead of building from scratch.
Real-time employee lifecycle sync
Automatically detect new hires, terminations, and status changes in Sesame and trigger downstream workflows like account provisioning or access revocation in your product.
Org-chart-driven approval chains
Import Sesame's department and reporting hierarchy to dynamically construct multi-level approval workflows without any manual setup by end users.
Timesheet and absence data import
Pull daily work entries, overtime hours, and approved leave from Sesame so your payroll or analytics product always has accurate, up-to-date attendance data.
Automated birthday and anniversary alerts
Query Sesame's employee records on a schedule to identify upcoming birthdays and work anniversaries, triggering gifting, recognition, or engagement workflows automatically.
ATS-to-HRIS candidate push
Write newly hired candidates from your recruitment platform directly into Sesame as employee records, triggering Sesame's built-in onboarding checklists without manual data entry.
Instant offboarding security trigger
React to employee termination events in Sesame to immediately revoke access across SaaS tools, VPNs, and cloud infrastructure from within your security or ITAM product.
SuperAI
Sesame AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
list_all_sesame_info
Get the Sesame company that owns the API token (Show Token Info). Truto calls it after connecting to check the token and to label the account with the company name; several create calls, such as employees.create and offices.create, require this company id. Not paginated: the endpoint documents no page or limit. Each record has: company.
list_all_sesame_employees
List Sesame employees. Sesame returns only active employees unless you pass status[in]=active,inactive (or status[in]=inactive). Filter by code, dni or email, or by departmentIds, officeIds or entityGroupIds (comma-separated UUIDs), and sort with orderBy ("field1 asc, field2 desc"). Paginated by Truto (page/limit, 100 records per page). Each record has: id, firstName, lastName, secondLastName, email, workStatus, workStatusUpdatedAt, imageProfileURL, code, pin (+43 more).
get_single_sesame_employee_by_id
Get one Sesame employee by id. Returns: id, firstName, lastName, secondLastName, email, workStatus, workStatusUpdatedAt, imageProfileURL, code, pin (+43 more). Required: id.
create_a_sesame_employee
Create a Sesame employee. companyId is the company id returned by info.list. Set invitation to true to email an invitation to the address in email. Requests use personalEmail and childrenCount where responses use personalMail and children; nationality and professionalCategoryCode are deprecated (use nationalities and contributionGroupId). Returns the whole Sesame body: data (id, firstName, lastName, secondLastName, email, workStatus, workStatusUpdatedAt, imageProfileURL, code, pin (+43 more)) and meta. Required: companyId, firstName, lastName, invitation, status.
update_a_sesame_employee_by_id
Update a Sesame employee by id (HTTP PUT). Sesame requires firstName, lastName and status on every update. Requests use personalEmail and childrenCount where responses use personalMail and children. Returns the whole Sesame body: data (id, firstName, lastName, secondLastName, email, workStatus, workStatusUpdatedAt, imageProfileURL, code, pin (+43 more)) and meta. Required: id, firstName, lastName, status.
delete_a_sesame_employee_by_id
Delete a Sesame employee by id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
update_a_sesame_company_by_id
Update the Sesame company by id (the company id returned by info.list). Returns: id, name, notificationEmail, language, createdAt, updatedAt. Required: id, name, notificationEmail, language.
list_all_sesame_job_charges
List Sesame job charges (core job titles). Filter by name and sort with orderBy. Paginated by Truto (page/limit, 100 records per page). Each record has: id, name, editable.
create_a_sesame_job_charge
Create a Sesame job charge. Returns: id, name, editable. Required: name.
get_single_sesame_job_charge_by_id
Get one Sesame job charge by id. Returns: id, name, editable. Required: id.
update_a_sesame_job_charge_by_id
Update a Sesame job charge by id. Returns: id, name, editable. Required: id, name.
delete_a_sesame_job_charge_by_id
Delete a Sesame job charge by id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
list_all_sesame_departments
List Sesame departments. Filter by name or by archived state (archivedAt[null] / archivedAt[not_null]) and sort with orderBy. Paginated by Truto (page/limit, 100 records per page). Each record has: id, name.
create_a_sesame_department
Create a Sesame department. Returns: id, name. Required: name.
update_a_sesame_department_by_id
Update a Sesame department by id. Returns: id, name. Required: id, name.
delete_a_sesame_department_by_id
Delete a Sesame department by id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
list_all_sesame_offices
List Sesame offices. Filter by name or by archived state (archivedAt[null] / archivedAt[not_null]) and sort with orderBy. Paginated by Truto (page/limit, 100 records per page). Each record has: id, name, address, coordinates, description, radio, defaultEmployeesDateTimeZone, isDeleted, archivedAt, isArchived.
create_a_sesame_office
Create a Sesame office. companyId is the company id returned by info.list. Returns: id, name, address, coordinates, description, radio, defaultEmployeesDateTimeZone, isDeleted, archivedAt, isArchived. Required: companyId, name.
get_single_sesame_office_by_id
Get one Sesame office by id. Returns: id, name, address, coordinates, description, radio, defaultEmployeesDateTimeZone, isDeleted, archivedAt, isArchived. Required: id.
update_a_sesame_office_by_id
Update a Sesame office by id. Returns: id, name, address, coordinates, description, radio, defaultEmployeesDateTimeZone, isDeleted, archivedAt, isArchived. Required: id, name.
delete_a_sesame_office_by_id
Delete a Sesame office by id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
list_all_sesame_locations
List the geofence locations of the Sesame company, ordered by name by default. Paginated by Truto (page/limit, 20 records per page). Each record has: id, companyId, name, address, coordinates, radius, createdAt, updatedAt.
create_a_sesame_location
Create a Sesame geofence location. radius is in meters (10-1000). Returns: id, companyId, name, address, coordinates, radius, createdAt, updatedAt. Required: name, coordinates, radius.
get_single_sesame_location_by_id
Get one Sesame geofence location by id. Returns: id, companyId, name, address, coordinates, radius, createdAt, updatedAt. Required: id.
update_a_sesame_location_by_id
Update a Sesame geofence location by id. Every field except address is required. Returns: id, companyId, name, address, coordinates, radius, createdAt, updatedAt. Required: id, name, coordinates, radius.
delete_a_sesame_location_by_id
Soft-delete a Sesame location by id and remove its assignations. Deleting it again returns 404. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
list_all_sesame_custom_fields
List the Sesame custom field definitions. Sort with orderBy. Paginated by Truto (page/limit, 100 records per page). Each record has: id, companyId, name, slug, type, createdAt, updatedAt.
create_a_sesame_custom_field
Create a Sesame custom field definition. companyId is the company id returned by info.list. Returns: id, companyId, name, slug, type, createdAt, updatedAt. Required: companyId, name, type.
update_a_sesame_custom_field_by_id
Update a Sesame custom field definition by id. Returns: id, companyId, name, slug, type, createdAt, updatedAt. Required: id, name.
delete_a_sesame_custom_field_by_id
Delete a Sesame custom field definition by id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
list_all_sesame_entity_groups
List Sesame entity groups (organisational groups). Filter by entityGroupId, employeeId, name[contains] or parentId. Paginated by Truto (page/limit, 100 records per page). Each record has: id, name, groupId, parentId, description, showGroup, costCenter, employeesCount.
create_a_sesame_entity_group
Create a Sesame entity group. Returns only the id of the new record. Required: name.
update_a_sesame_entity_group_by_id
Update a Sesame entity group by id. Only name is required; other fields are optional. Returns no content (HTTP 204). Required: id, name.
delete_a_sesame_entity_group_by_id
Permanently delete a Sesame entity group by id. This cannot be undone. Returns no content (HTTP 204). Required: id.
sesame_entity_groups_update_no_content
Update an entity group (PUT /core/v3/entity-groups/{entityGroupId}, the same endpoint as entity_groups.update). Sesame answers 204 No Content; this variant has no response_path, so the empty response is returned as {} instead of nothing. Pass the entity group id as the entity_group_id query parameter.
list_all_sesame_roles
List the roles defined in Sesame. Paginated by Truto (page/limit, 100 records per page). Each record has: id, name.
list_all_sesame_roles_assignations
List the role assignations of one Sesame employee (employee_id). Paginated by Truto (page/limit, 100 records per page). Each record has: id, role, affectedEntityType, affectedEntityId. Required: employee_id.
create_a_sesame_roles_assignation
Assign a Sesame role to an employee for an affected entity. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: roleId, employeeId, entityAffectedId.
sesame_roles_assignations_bulk_delete
Unassign a Sesame role by role assignation id (assignationId in the JSON body). Returns no content: Sesame answers HTTP 200 with an empty data value. Required: assignationId.
list_all_sesame_employee_managers
List one employee's managers (clock and leave validators) from the Sesame v4 API, flagging automatic (generated on the fly) versus manual (explicitly assigned) entries. This replaces the deprecated core_employee_managers.list. Not paginated: the endpoint documents no page or limit. Each record has: id, manager, employee, permission, order, automatic, createdAt, updatedAt. Required: employee_id.
list_all_sesame_employee_department_assignations
List Sesame employee-to-department assignations. Filter by employeeId or departmentId. Paginated by Truto (page/limit, 100 records per page). Each record has: id, employee, department, createdAt, updatedAt.
create_a_sesame_employee_department_assignation
Assign a Sesame employee to a department. Returns: id, employee, department, createdAt, updatedAt. Required: employeeId, departmentId.
sesame_employee_department_assignations_bulk_delete
Unassign a Sesame employee from a department (employeeId and departmentId in the JSON body). Returns no content: Sesame answers HTTP 200 with an empty data value. Required: employeeId, departmentId.
list_all_sesame_employee_office_assignations
List Sesame employee-to-office assignations. Filter by employeeId or officeId. Paginated by Truto (page/limit, 100 records per page). Each record has: id, employee, office, createdAt, updatedAt, isMainOffice.
create_a_sesame_employee_office_assignation
Assign a Sesame employee to an office. Returns: id, employee, office, createdAt, updatedAt, isMainOffice. Required: employeeId, officeId.
update_a_sesame_employee_office_assignation_by_id
Set whether a Sesame employee office assignation is the main office (isMainOffice), by assignation id. Returns: id, employee, office, createdAt, updatedAt, isMainOffice. Required: id, isMainOffice.
sesame_employee_office_assignations_bulk_delete
Unassign a Sesame employee from an office (employeeId and officeId in the JSON body). Returns no content: Sesame answers HTTP 200 with an empty data value. Required: employeeId, officeId.
create_a_sesame_entity_group_assignation
Assign one or more Sesame employees to an entity group. Returns no content (HTTP 204). Required: entityGroupId, employeeIds.
sesame_entity_group_assignations_bulk_delete
Unassign a Sesame employee from an entity group (IDs in the JSON body). Returns no content (HTTP 204). Required: entityGroupId, employeeId.
list_all_sesame_location_assignations
List the assignations of Sesame locations to offices, departments and entity groups, ordered by entityType by default. Paginated by Truto (page/limit, 20 records per page). Each record has: id, locationId, entityReference.
create_a_sesame_location_assignation
Assign a Sesame location to an office, department or entity group of the same company. A duplicate returns 409. Assigning a second location to an office does not change the geofence that offices.get reports (it keeps the oldest assignation). Returns: id, locationId, entityReference. Required: locationId, entityReference.
sesame_location_assignations_bulk_delete
Remove the assignation of a Sesame location from an entity (locationId and entityReference in the JSON body). A missing assignation returns 404. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: locationId, entityReference.
list_all_sesame_entity_group_owners_assignations
List the owners of one or more Sesame entity groups (entityGroupIds, comma-separated). Each result is an owner employee. Paginated by Truto (page/limit, 100 records per page). Each record has: id, firstName, lastName, secondLastName, imageProfileURL, email, workStatus, workCheckTypeColor, workCheckTypeName.
create_a_sesame_entity_group_owners_assignation
Make a Sesame employee an owner of an entity group. The employee must already be assigned to the group. Returns no content (HTTP 204). Required: entityGroupId, employeeId.
sesame_entity_group_owners_assignations_bulk_delete
Remove a Sesame employee as owner of an entity group (IDs in the JSON body). Returns no content (HTTP 204). Required: entityGroupId, employeeId.
list_all_sesame_available_check_origins
Get the available check origins configuration (which clock-in origins are allowed) for one Sesame employee or for the company (entityType and entityId). Not paginated: the endpoint documents no page or limit. Each record has: availableCheckOrigins, createdAt, updatedAt. Required: entityId, entityType.
sesame_available_check_origins_bulk_update
Create or update the available check origins configuration for one Sesame employee or for the company. Returns no content (HTTP 204). Required: entityReference, availableCheckOrigins.
get_single_sesame_organization_chart_manager_by_id
Get a Sesame employee's organization chart manager. id is the employee id. Returns: id, employee, organizationChartManager. Required: id.
update_a_sesame_organization_chart_manager_by_id
Set a Sesame employee's organization chart manager. id is the employee id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id, organizationChartManagerId.
create_a_sesame_employee_image_profile
Upload and replace a Sesame employee's profile picture. Send it as a multipart form upload with the file in the imageProfile field: PNG or JPEG, at most 5 MB (other types or larger files return 422). Sesame resizes the longest side to at most 500 px, stores it as JPEG and deletes the previous file; each upload gets a new URL. Returns: imageProfileURL. Required: employee_id, imageProfile.
sesame_employee_image_profiles_bulk_delete
Delete a Sesame employee's profile picture. Idempotent: deleting when there is no picture also succeeds. Returns no content (HTTP 204). Required: employee_id.
create_a_sesame_work_entries_clock
Clock a Sesame employee in or out automatically: clocks in when the employee has no open work entry and clocks out when one is open. With withIncidence true on a clock-out, Sesame creates a check incidence and notifies the employee (useful for entries left open on previous days). Returns: id, workCheckTypeId, checkTypeCollectionId, employee, workEntryType, workEntryIn, workEntryOut, hasIncidence, workedSeconds, remuneratedSeconds (+4 more). Required: employeeId.
create_a_sesame_work_entries_clock_in
Clock a Sesame employee in now, starting a new work entry. Sesame's spec also lists an origin field as required without defining it for this request. Returns: id, workCheckTypeId, checkTypeCollectionId, employee, workEntryType, workEntryIn, workEntryOut, remuneratedSeconds, nonRemuneratedSeconds, createdAt (+1 more). Required: employeeId.
create_a_sesame_work_entries_clock_out
Clock a Sesame employee out now, ending the employee's open work entry. Sesame's spec also lists an origin field as required without defining it for this request. Returns: id, workCheckTypeId, checkTypeCollectionId, employee, workEntryType, workEntryIn, workEntryOut, workedSeconds, remuneratedSeconds, nonRemuneratedSeconds (+3 more). Required: employeeId.
list_all_sesame_work_entries
List Sesame work entries (time-tracking records) for the company. Filter by employeeId, from/to dates (Y-m-d), updatedAt[gte]/updatedAt[lte] and onlyReturn (not_deleted by default, deleted or all), and sort with orderBy. Paginated by Truto (page/limit, 20 records per page). Each record has: id, workCheckTypeId, checkTypeCollectionId, employee, workEntryType, workEntryIn, workEntryOut, workedSeconds, remuneratedSeconds, nonRemuneratedSeconds (+3 more).
create_a_sesame_work_entry
Create a Sesame work entry (clock-in/clock-out) for an employee. A pause entry needs workBreakId and a work entry must not have one (422 validator.incompatible_work_break). Overlapping entries of the same employee are overwritten, not rejected: fully covered entries are deleted, partial overlaps trimmed and containing entries split, without being reported in the response. Returns: id, workCheckTypeId, checkTypeCollectionId, employee, workEntryType, workEntryIn, workEntryOut, workedSeconds, remuneratedSeconds, nonRemuneratedSeconds (+3 more). Required: employeeId, workEntryType, workEntryIn.
sesame_work_entries_overwrite
Replace a Sesame work entry (HTTP PUT) identified by work_entry_id. Overlapping entries of the same employee are overwritten (deleted, trimmed or split) without being reported; read the day back with work_entries.list to see the result. Returns: id, workCheckTypeId, checkTypeCollectionId, employee, workEntryType, workEntryIn, workEntryOut, workedSeconds, remuneratedSeconds, nonRemuneratedSeconds (+3 more). Required: work_entry_id, employeeId, workEntryType, workEntryIn.
update_a_sesame_work_entry_by_id
Partially update a Sesame work entry by id (HTTP PATCH): only the fields you send change. Overlapping entries of the same employee are overwritten (deleted, trimmed or split) without being reported; read the day back with work_entries.list to see the result. Returns: id, workCheckTypeId, checkTypeCollectionId, employee, workEntryType, workEntryIn, workEntryOut, workedSeconds, remuneratedSeconds, nonRemuneratedSeconds (+3 more). Required: id.
delete_a_sesame_work_entry_by_id
Delete a Sesame work entry by id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
list_all_sesame_check_types
List Sesame check types (work entry types such as remote work). Filter by checkTypeCollectionId. Paginated by Truto (page/limit, 100 records per page). Each record has: companyId, id, name, remunerated, remuneratedMode, hybridStartAsRemunerated, hybridSwitchMinutes, hybridSwitchPeriod, checkTypeCollectionIds.
create_a_sesame_check_type
Create a Sesame check type. Configure remuneration with exactly one of: remunerated (legacy boolean), remuneratedMode remunerated/not_remunerated, or remuneratedMode hybrid together with hybridStartAsRemunerated, hybridSwitchMinutes and hybridSwitchPeriod. Returns no content (HTTP 201). Required: name, color, icon, checkTypeWorkType, checkTypeStatus.
list_all_sesame_check_type_collections
List Sesame check type collections. Paginated by Truto (page/limit, 100 records per page). Each record has: id, name, color, companyId, createdAt, updatedAt, deletedAt, archivedAt.
get_single_sesame_check_type_collection_by_id
Get one Sesame check type collection by id, including its check types. Sesame returns it inside an array. Returns a list of records, each with: id, name, color, companyId, createdAt, updatedAt, deletedAt, archivedAt, checkTypes. Required: id.
list_all_sesame_work_breaks
List the Sesame work breaks (pause types). remuneratedMode is remunerated, not_remunerated or hybrid; the hybrid fields apply only to hybrid breaks. Paginated by Truto (page/limit, 100 records per page). Each record has: companyId, id, name, color, icon, breakMinutes, remunerated, remuneratedMode, hybridStartAsRemunerated, hybridSwitchMinutes (+1 more).
list_all_sesame_check_validations
List Sesame check validations (validation of clock records) by employee, status and date range. Paginated by Truto (page/limit, 100 records per page). Each record has: id, employee, startDate, endDate, status, lastSent, timesSent, createdAt, updatedAt.
list_all_sesame_check_incidences
List the check incidences (clocking anomalies) of the Sesame company. Filter by employee, incidence status and type, check type, resolver role, notification state, date range and createdAt/updatedAt ranges, and sort with orderBy. Paginated by Truto (page/limit, 20 records per page). Each record has: id, employeeId, employee, checkIncidenceStatus, checkIncidenceType, checkType, checkIncidenceSentNotificationMail, checkIncidenceSentNotificationPanel, check, checkData (+3 more).
sesame_check_incidences_bulk_update
Update several Sesame check incidences at once, setting their status and optionally who resolved them. Returns no content (HTTP 204). Required: checkIncidenceStatus.
update_a_sesame_check_incidence_by_id
Update one Sesame check incidence by id. Returns: id, employeeId, employee, checkIncidenceStatus, checkIncidenceType, checkType, checkIncidenceSentNotificationMail, checkIncidenceSentNotificationPanel, check, checkData (+3 more). Required: id, checkIncidenceStatus.
list_all_sesame_check_incidences_employees
List the check incidences of one Sesame employee (employee_id). Filter by incidence status and type, check type and date range. Paginated by Truto (page/limit, 20 records per page). Each record has: id, employeeId, employee, checkIncidenceStatus, checkIncidenceType, checkType, checkIncidenceSentNotificationMail, checkIncidenceSentNotificationPanel, check, checkData (+3 more). Required: employee_id.
create_a_sesame_check_incidences_send_notification
Send email and/or panel notifications for specific Sesame check incidences, optionally with a custom email subject and content. Returns no content (HTTP 204). Required: incidences, notificationType.
list_all_sesame_worked_hours_reports
Report worked, expected and balance seconds per Sesame employee for a date range (from and to, Y-m-d). Paginated by Truto (page/limit, 100 records per page). Each record has: employeeId, secondsWorked, secondsToWork, secondsBalance. Required: from, to.
list_all_sesame_worked_hours_by_week_day_reports
Report worked, expected and balance seconds per Sesame employee and week day for a date range (from and to). Paginated by Truto (page/limit, 100 records per page). Each record has: employeeId, secondsWorked, secondsToWork, secondsBalance, weekDay. Required: from, to.
list_all_sesame_worked_night_hours_reports
Report the seconds each Sesame employee worked during night hours for a date range (from and to). Paginated by Truto (page/limit, 100 records per page). Each record has: employeeId, secondsWorkedNight. Required: from, to.
list_all_sesame_worked_absence_days_reports
Report worked absence days per Sesame employee for a date range (from and to): each employee's days with the seconds worked. Paginated by Truto (page/limit, 100 records per page). Each record has: employeeId, days. Required: from, to.
list_all_sesame_vacation_configurations
List Sesame vacation configurations (vacation policies). Paginated by Truto (page/limit, 100 records per page). Each record has: id, name, employeeRequestEnabled, needsValidation, company, dayType, maxDaysOff, isDefault, notAllowedDateRanges, creationDateNextYear (+3 more).
create_a_sesame_vacation_configuration
Create a Sesame vacation configuration (vacation policy). Returns: id, name, employeeRequestEnabled, needsValidation, company, dayType, maxDaysOff, isDefault, notAllowedDateRanges, creationDateNextYear (+3 more). Required: name, dayType, pickMode, creationDateNextYear, needsValidation, employeeRequestDenyExcessDaysOff, hoursQuantityConfigured, allowFreeHoursSelection, employeeRequestEnabled, configurationType.
get_single_sesame_vacation_configuration_by_id
Get one Sesame vacation configuration by id. Returns: id, name, employeeRequestEnabled, needsValidation, company, dayType, maxDaysOff, isDefault, notAllowedDateRanges, creationDateNextYear (+3 more). Required: id.
update_a_sesame_vacation_configuration_by_id
Update a Sesame vacation configuration by id. Returns no content (HTTP 204). Required: id, name, dayType, creationDateNextYear, needsValidation, employeeRequestDenyExcessDaysOff, hoursQuantityConfigured, allowFreeHoursSelection, employeeRequestEnabled, configurationType.
delete_a_sesame_vacation_configuration_by_id
Delete a Sesame vacation configuration by id. Returns no content (HTTP 204). Required: id.
list_all_sesame_vacation_configurations_assignations
List the employees assigned to one Sesame vacation configuration (vacation_configuration_id), with the year of each assignation. Paginated by Truto (page/limit, 100 records per page). Each record has: employee, year. Required: vacation_configuration_id.
create_a_sesame_vacation_configurations_assignation
Assign a Sesame vacation configuration (vacation_configuration_id) to an employee for a year. Returns no content (HTTP 201). Required: vacation_configuration_id, employeeId, year.
list_all_sesame_vacation_calendars
List Sesame vacation calendars (one per employee, vacation type and year). Filter by employeeId and year[in]. Paginated by Truto (page/limit, 20 records per page). Each record has: id, employee, daysOff, maxDaysOff, year, vacationConfiguration, createdAt, updatedAt, deletedAt.
create_a_sesame_vacation_calendar
Create a Sesame vacation calendar for an employee, vacation type and year. Returns: id, employee, daysOff, maxDaysOff, year, vacationConfiguration, createdAt, updatedAt, deletedAt. Required: employeeId, vacationConfigurationId, year, daysOff.
update_a_sesame_vacation_calendar_by_id
Deprecated: replace a Sesame vacation calendar by id, including ALL its days off (destructive). Prefer vacation_calendar_days_offs.create to add days and vacation_calendar_days_offs.bulk_delete to remove them. Returns: id, employee, daysOff, maxDaysOff, year, vacationConfiguration, createdAt, updatedAt, deletedAt. Required: id.
create_a_sesame_vacation_calendar_create
Create an empty Sesame vacation calendar for an employee and year. Add days off afterwards with vacation_calendar_days_offs.create. Returns no content (HTTP 201). Required: employeeId, vacationTypeId, year.
create_a_sesame_vacation_calendar_days_off
Add days off to a Sesame vacation calendar. Sesame finds the calendar by employee, vacation type and year, and creates it if it does not exist. Returns: id, employee, daysOff, maxDaysOff, year, vacationConfiguration, createdAt, updatedAt, deletedAt. Required: employeeId, vacationTypeId, year, daysOff.
sesame_vacation_calendar_days_offs_bulk_delete
Remove days off (dayOffIds) from one Sesame vacation calendar (vacation_calendar_id). Atomic: if any id is invalid or belongs to another calendar, nothing is deleted. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: vacation_calendar_id, dayOffIds.
list_all_sesame_vacation_calendar_totals
List the Sesame vacation calendar totals of one employee (employeeId), optionally for one year. Paginated by Truto (page/limit, 20 records per page). Each record has: id, employee, daysOff, maxDaysOff, year, vacationConfiguration, createdAt, updatedAt, deletedAt. Required: employeeId.
list_all_sesame_vacation_day_offs
List Sesame vacation days off, with their calendar and employee. Filter by employees and date range. Paginated by Truto (page/limit, 100 records per page). Each record has: id, date, seconds, calendar, employee.
list_all_sesame_vacation_day_off_requests
List Sesame vacation requests. Filter by employee, validator, day-off date range, status, and createdAt/updatedAt ranges (for incremental sync), and sort with orderBy. Paginated by Truto (page/limit, 100 records per page). Each record has: id, vacationCalendar, employee, daysOff, status, type, comment, resolutionComment, resolvedAt, createdAt (+3 more).
create_a_sesame_vacation_day_off_request
Create a Sesame vacation request for an employee. Returns: id, vacationCalendar, employee, daysOff, status, type, comment, resolutionComment, resolvedAt, createdAt (+3 more). Required: employeeId, calendarId, type, daysOff.
sesame_vacation_day_off_requests_reject
Reject a pending Sesame vacation request identified by vacation_day_off_request_id. Returns: id, vacationCalendar, employee, daysOff, status, type, comment, resolutionComment, resolvedAt, createdAt (+3 more). Required: vacation_day_off_request_id.
delete_a_sesame_vacation_day_off_request_by_id
Delete a Sesame vacation request by id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
create_a_sesame_vacation_day_off_request_accept
Accept a pending Sesame vacation request identified by vacation_day_off_request_id. Returns: id, vacationCalendar, employee, daysOff, status, type, comment, resolutionComment, resolvedAt, createdAt (+3 more). Required: vacation_day_off_request_id.
list_all_sesame_adjustments
List the adjustments to a Sesame vacation calendar's maximum days off (calendar_id). Not paginated: the endpoint documents no page or limit. Each record has: id, calendarId, value, createdAt. Required: calendar_id.
create_a_sesame_adjustment
Adjust a Sesame vacation calendar's maximum days off (calendar_id) by a positive or negative number of days. Sesame recommends this over setting the deprecated maximum days off directly on the vacation calendar endpoints. Returns no content (HTTP 201). Required: calendar_id, value.
delete_a_sesame_adjustment_by_id
Delete one maximum-days-off adjustment (id) from a Sesame vacation calendar (calendar_id). Returns no content (HTTP 204). Required: id, calendar_id.
list_all_sesame_absence_types
List Sesame absence types (leave types). Filter by status. Paginated by Truto (page/limit, 100 records per page). Each record has: id, name, needsValidation, company, createdAt, updatedAt, deletedAt, type, pickMode, maxPerPeriod (+9 more).
list_all_sesame_absence_calendars
List Sesame absence calendars (one per employee, absence type and year). Filter by employeeId, type and year[in]. Paginated by Truto (page/limit, 20 records per page). Each record has: id, employee, daysOff, maxDaysOff, year, absenceType, createdAt, updatedAt, deletedAt.
create_a_sesame_absence_calendar
Create a Sesame absence calendar for an employee, absence type and year, with its days off. Returns: id, employee, daysOff, maxDaysOff, year, absenceType, createdAt, updatedAt, deletedAt. Required: employeeId, absenceTypeId, year, daysOff.
update_a_sesame_absence_calendar_by_id
Update a Sesame absence calendar by id. Returns: id, employee, daysOff, maxDaysOff, year, absenceType, createdAt, updatedAt, deletedAt. Required: id, daysOff.
list_all_sesame_absence_day_offs
List Sesame absence days off, with their calendar and employee. Filter by employees and date range. Paginated by Truto (page/limit, 100 records per page). Each record has: id, date, seconds, calendar, employee.
sesame_absence_day_offs_bulk_delete
Remove absence days off (dayOffIds) from one Sesame absence calendar (calendar_id). Atomic: if any id is invalid or belongs to another calendar, nothing is deleted. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: calendar_id, dayOffIds.
list_all_sesame_absence_day_off_requests
List Sesame absence requests. Filter by employee, validator, day-off date range, status and updatedAt range, and sort with orderBy. Paginated by Truto (page/limit, 100 records per page). Each record has: id, absenceCalendar, employee, daysOff, status, type, comment, resolutionComment, resolvedAt, createdAt (+3 more).
create_a_sesame_absence_day_off_request
Create a Sesame absence request for an employee. Returns: id, absenceCalendar, employee, daysOff, status, type, comment, resolutionComment, resolvedAt, createdAt (+3 more). Required: employeeId, absenceTypeId, type, daysOff.
sesame_absence_day_off_requests_reject
Reject a pending Sesame absence request identified by absence_day_off_request_id. Returns: id, absenceCalendar, employee, daysOff, status, type, comment, resolutionComment, resolvedAt, createdAt (+3 more). Required: absence_day_off_request_id.
delete_a_sesame_absence_day_off_request_by_id
Delete a Sesame absence request by id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
create_a_sesame_absence_day_off_request_accept
Accept a pending Sesame absence request identified by absence_day_off_request_id. Returns: id, absenceCalendar, employee, daysOff, status, type, comment, resolutionComment, resolvedAt, createdAt (+3 more). Required: absence_day_off_request_id.
list_all_sesame_holiday_calendars
List Sesame holiday calendars (public holiday sets). Filter by name. Paginated by Truto (page/limit, 20 records per page). Each record has: id, name, companyId, dayOff, typeId, default.
create_a_sesame_holiday_calendar
Create a Sesame holiday calendar with a name and its days off. Returns: id, name, companyId, dayOff, typeId, default. Required: name, daysOff.
get_single_sesame_holiday_calendar_by_id
Get one Sesame holiday calendar by id, with its days off. Returns: id, name, companyId, dayOff, typeId, default. Required: id.
update_a_sesame_holiday_calendar_by_id
Update a Sesame holiday calendar's name and days off by id. Returns: id, name, companyId, dayOff, typeId, default. Required: id, name, daysOff.
delete_a_sesame_holiday_calendar_by_id
Delete a Sesame holiday calendar by id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
list_all_sesame_holidays
List the public holidays that apply to one Sesame employee in a year (employeeId and year). Paginated by Truto (page/limit, 100 records per page). Each record has: employee, dayOff. Required: employeeId, year.
list_all_sesame_holiday_employees
List the employees assigned to one Sesame holiday calendar (holiday_calendar_id). Paginated by Truto (page/limit, 100 records per page). Each record has: id, firstName, lastName, email, countHolidayTemplates. Required: holiday_calendar_id.
create_a_sesame_holiday_employee
Assign one Sesame holiday calendar (holiday_calendar_id) to employees, optionally from a start date. Returns a list of records, each with: id, firstName, lastName, email, countHolidayTemplates. Required: holiday_calendar_id.
sesame_holiday_employees_bulk_delete
Unassign one Sesame holiday calendar (holiday_calendar_id) from employees. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: holiday_calendar_id.
list_all_sesame_worked_holidays
List the holidays one Sesame employee worked in a date range (employeeId, from, to), with the days off given in compensation. Paginated by Truto (page/limit, 20 records per page). Each record has: comment, compensatedDayOffViews, employeeId, holidayDayOffView, id. Required: employeeId, from, to.
create_a_sesame_worked_holiday
Record that a Sesame employee worked a holiday. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: employeeId, managerId, holidayDayOffId, comment.
delete_a_sesame_worked_holiday_by_id
Delete a Sesame worked holiday record by id. Returns no content (HTTP 204). Required: id.
list_all_sesame_schedule_templates
List Sesame schedule templates (working-time templates). Filter by archived state. Paginated by Truto (page/limit, 100 records per page). Each record has: id, name, createdAt, updatedAt, type.
list_all_sesame_employee_schedule_templates
List the schedule templates that apply to one Sesame employee (employee_id) for each date in a date range (from, to), with daily minutes and time ranges. Paginated by Truto (page/limit, 100 records per page). Each record is keyed by a date (Y-m-d; the spec shows 2024-01-01 as a sample key) and lists the schedule templates in force that day: id, name, mondayMinutes to sundayMinutes, currentDayMinutes, weekdaysRanges. Required: employee_id, from, to.
list_all_sesame_employee_entity_schedule_templates
List all schedule template assignments of one Sesame employee (employee_id), with their date ranges. Not paginated: the endpoint documents no page or limit. Each record has: id, createdAt, current, entityId, entityType, startDate, endDate, scheduleTemplateId, scheduleTemplate. Required: employee_id.
create_a_sesame_entity_schedule_template
Assign a Sesame employee to a schedule template from a start date. Returns only the id of the new record. Required: employeeId, scheduleTemplateId, startDate.
delete_a_sesame_entity_schedule_template_by_id
Unassign a Sesame employee from a schedule template by entity schedule template id. Returns only the id of the affected record. Required: id.
list_all_sesame_agreements
List Sesame work agreements (annual working-hours agreements). Paginated by Truto (page/limit, 100 records per page). Each record has: id, companyId, name, code, color, annualHours, additionalHoursPercent, totalAdditionalHours, maxDaysToWork, createdAt (+1 more).
create_a_sesame_agreement
Create a Sesame work agreement. Returns only the id of the new record. Required: name, code, color, annualHours.
get_single_sesame_agreement_by_id
Get one Sesame work agreement by id. Sesame returns the agreement object without a data wrapper. Returns: id, companyId, name, code, color, annualHours, additionalHoursPercent, totalAdditionalHours, maxDaysToWork, createdAt (+1 more). Required: id.
update_a_sesame_agreement_by_id
Update a Sesame work agreement by id. Returns only the id of the affected record. Required: id, name, code, color, annualHours.
delete_a_sesame_agreement_by_id
Delete a Sesame work agreement by id. Returns only the id of the affected record. Required: id.
create_a_sesame_agreement_employee
Assign a Sesame employee to a work agreement from a start date. Returns only the id of the new record. Required: agreementId, employeeId, startDate.
delete_a_sesame_agreement_employee_by_id
Unassign a Sesame employee from a work agreement by employee agreement id. Returns only the id of the affected record. Required: id.
list_all_sesame_shifts
List the shifts of the Sesame company. Filter by name, archived state, custom or on-call shifts. Paginated by Truto (page/limit, 50 records per page). Each record has: id, name, abbreviation, color, shiftRanges, isOnCall, isFullDay, onCallType, countPlannedTime, archived (+2 more).
create_a_sesame_shift
Create a Sesame shift with its time ranges. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: name, abbreviation, color, shiftRanges.
list_all_sesame_planners
List the shift planners of the Sesame company. Filter by name and archived state. Paginated by Truto (page/limit, 50 records per page). Each record has: id, name, status, archived, createdAt, updatedAt.
list_all_sesame_planner_employees
List the employees assigned to one Sesame planner (planner_id). Not paginated: the endpoint documents no page or limit. Each record has: id, firstName, lastName, email. Required: planner_id.
create_a_sesame_planner_employee
Assign employees to one Sesame planner (planner_id). Returns no content: Sesame answers HTTP 200 with an empty data value. Required: planner_id, employeeIds.
list_all_sesame_planner_entity_references
List the offices and entity groups linked to one Sesame planner (planner_id). Not paginated: the endpoint documents no page or limit. Each record has: id, type. Required: planner_id.
list_all_sesame_planner_shift_assignments
List the active shift assignments (drafts) and free days of one Sesame planner (planner_id). Filter by date range, employees and type. Paginated by Truto (page/limit, 20 records per page). Each record has: id, employeeId, shiftId, shiftName, date, createdAt, updatedAt, type, comments, ranges. Required: planner_id.
create_a_sesame_planner_shift_assignment
Assign or remove shifts for employees in one Sesame planner (planner_id) in one batch: each item's status is assign (default) or delete. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: planner_id, shiftAssignments.
delete_a_sesame_planner_shift_assignment_by_id
Soft-delete one shift assignment (id) from a Sesame planner (planner_id). Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id, planner_id.
create_a_sesame_planner_free_day
Mark an inclusive date range (from, to; at most 3 years) as free days for employees in one Sesame planner (planner_id), optionally with comments and partial-day time ranges (must not overlap and must total less than 24 hours). Returns no content: Sesame answers HTTP 200 with an empty data value. Required: planner_id, from, to, employeeIds.
sesame_planner_free_days_bulk_delete
Remove the free days in an inclusive date range (from, to; at most 3 years) for employees in one Sesame planner (planner_id). Returns no content: Sesame answers HTTP 200 with an empty data value. Required: planner_id, from, to, employeeIds.
list_all_sesame_shift_assignments
List the active shift assignments (drafts) across all Sesame planners. Filter by date range, employees and planners. Paginated by Truto (page/limit, 20 records per page). Each record has: id, employeeId, shiftId, shiftName, date, plannerId, createdAt, updatedAt.
list_all_sesame_employees_hours_bags
Report the aggregated hours bag balance per Sesame employee for a date range (from, to): overtime balance, paid, holiday-compensated and pending seconds. Paginated by Truto (page/limit, 20 records per page). Each record has: employee, from, to, overtimeBalanceSeconds, paidSeconds, holidayCompensatedSeconds, totalPendingSeconds. Required: from, to.
list_all_sesame_hours_bag_rule_histories
List Sesame hours bag rule history records (seconds counted per rule and employee). Filter by date range, rules and employees. Paginated by Truto (page/limit, 100 records per page). Each record has: id, date, seconds, hoursBagRule, employee, checkSeconds, checkSecondsWithVariation.
list_all_sesame_hours_bag_rules
List Sesame hours bag rules with their multipliers. Filter with name[contains]. Paginated by Truto (page/limit, 100 records per page). Each record has: id, name, multipliers.
list_all_sesame_overtime_validation_histories
List the Sesame overtime validations that reached a final status (accepted, rejected or autoApproved); pending validations are excluded. Paginated by Truto (page/limit, 20 records per page). Each record has: id, employee, date, requestedSeconds, approvedSeconds, status, createdAt, validatedAt, managementHistory.
list_all_sesame_contracts
List the contracts of one Sesame employee (employee_id). Sesame has no endpoint that lists all contracts. Paginated by Truto (page/limit, 100 records per page). Each record has: id, startAt, endAt, startDate, endDate, comment, code, jobChargeId, jobChargeName, contractTypeId (+23 more). Required: employee_id.
create_a_sesame_contract
Create a Sesame contract for an employee. Returns: id, startAt, endAt, startDate, endDate, comment, code, jobChargeId, jobChargeName, contractTypeId (+23 more). Required: employeeId, startAt.
update_a_sesame_contract_by_id
Update a Sesame contract by contract id. Returns: id, startAt, endAt, startDate, endDate, comment, code, jobChargeId, jobChargeName, contractTypeId (+23 more). Required: id, startAt.
delete_a_sesame_contract_by_id
Delete a Sesame contract by contract id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
list_all_sesame_contracts_for_payrolls
List payroll data per Sesame employee (labour, contract and salary data) for a pay period, date range and currency. Filter by offices, departments and employee status. Paginated by Truto (page/limit, 100 records per page). Each record has: id, firstName, lastName, imageProfileURL, grossAnnualSalary, compensations, position, startDate, endDate, trialPeriod (+17 more). Required: period, from, to, currency.
get_single_sesame_contract_current_contract_by_id
Get a Sesame employee's current contract. id is the employee id. Returns: id, status, jobCharge, workdayType, contractType, degree, agreement, startAt, endAt, comment (+5 more). Required: id.
list_all_sesame_contract_job_charges
List the job charges used in Sesame contracts. Filter by name and sort with orderBy. Paginated by Truto (page/limit, 100 records per page). Each record has: id, name.
create_a_sesame_contract_job_charge
Create a job charge for Sesame contracts. Returns: id, name. Required: name.
get_single_sesame_contract_job_charge_by_id
Get one contract job charge by id. Returns: id, name. Required: id.
update_a_sesame_contract_job_charge_by_id
Update a contract job charge by id. Returns: id, name. Required: id, name.
delete_a_sesame_contract_job_charge_by_id
Delete a contract job charge by id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
list_all_sesame_contract_types
List Sesame contract types. Filter by name. Paginated by Truto (page/limit, 100 records per page). Each record has: id, name.
create_a_sesame_contract_type
Create a Sesame contract type. Returns: id, name. Required: name.
get_single_sesame_contract_type_by_id
Get one Sesame contract type by id. Returns: id, name. Required: id.
update_a_sesame_contract_type_by_id
Update a Sesame contract type by id. Returns: id, name. Required: id, name.
delete_a_sesame_contract_type_by_id
Delete a Sesame contract type by id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
get_single_sesame_contract_terminated_by_id
Get the termination details of a Sesame contract. id is the contract id. Returns: id, contractEmployeeId, contractEndDate, terminationReason, terminationType, comment. Required: id.
list_all_sesame_contribution_groups
List Sesame contribution groups (social security contribution groups). Their ids are the contribution group ids that employees.create and employees.update accept. Paginated by Truto (page/limit, 100 records per page). Each record has: id, name.
list_all_sesame_contract_salaries
List the salaries of one Sesame employee (employeeId). Filter by pay period, contribution group, gross salary, payments and date range. Paginated by Truto (page/limit, 100 records per page). Each record has: id, payPeriod, currency, grossSalary, payments, contributionGroup, startDate, endDate, comments, prorated (+4 more). Required: employeeId.
create_a_sesame_contract_salary
Create a Sesame salary for an employee. The previous active salary is closed automatically (its end date becomes the day before the new start date). warnings lists a salary_coverage_gap when the new salary does not start the day after the previous one ends. Returns the whole Sesame body: data (id, payPeriod, currency, grossSalary, payments, contributionGroup, startDate, endDate, comments, prorated (+4 more)) and warnings. Required: employeeId, payPeriod, currency, grossSalary, payments, contributionGroupId, startDate, prorated.
update_a_sesame_contract_salary_by_id
Update a Sesame salary's end date and comments by id. Returns: id, payPeriod, currency, grossSalary, payments, contributionGroup, startDate, endDate, comments, prorated (+4 more). Required: id.
delete_a_sesame_contract_salary_by_id
Delete a Sesame salary by id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
list_all_sesame_contract_degrees
List the Sesame degrees used in contracts. Filter by name. Paginated by Truto (page/limit, 100 records per page). Each record has: id, name, editable.
create_a_sesame_contract_degree
Create a Sesame degree. Returns: id, name, editable. Required: name.
get_single_sesame_contract_degree_by_id
Get one Sesame degree by id. Returns: id, name, editable. Required: id.
update_a_sesame_contract_degree_by_id
Update a Sesame degree by id. Returns: id, name, editable. Required: id, name.
delete_a_sesame_contract_degree_by_id
Delete a Sesame degree by id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
list_all_sesame_contract_workday_types
List the Sesame workday types used in contracts. Filter by name. Paginated by Truto (page/limit, 100 records per page). Each record has: id, name, editable.
create_a_sesame_contract_workday_type
Create a Sesame workday type. Returns: id, name, editable. Required: name.
update_a_sesame_contract_workday_type_by_id
Update a Sesame workday type by id. Returns: id, name, editable. Required: id, name.
delete_a_sesame_contract_workday_type_by_id
Delete a Sesame workday type by id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
list_all_sesame_contract_job_levels
List Sesame job levels, both company-specific and global. Filter by name and sort with orderBy. Paginated by Truto (page/limit, 10 records per page). Each record has: id, name, editable.
list_all_sesame_contract_annexes
List the annexes (amendments) of one Sesame contract (contract_id). Paginated by Truto (page/limit, 20 records per page). Each record has: id, startAt, endAt, expiredAt, holidays, comment, code, socialSecurityNumber, cbo, remoteWork (+17 more). Required: contract_id.
create_a_sesame_contract_annex
Create an annex (amendment) for one Sesame contract (contract_id). Returns only the id of the new record. Required: contract_id, startAt.
get_single_sesame_contract_annex_by_id
Get one annex (id) of a Sesame contract (contract_id). Returns: id, startAt, endAt, expiredAt, holidays, comment, code, socialSecurityNumber, cbo, remoteWork (+17 more). Required: id, contract_id.
update_a_sesame_contract_annex_by_id
Update one annex (id) of a Sesame contract (contract_id). Only startAt is required. Returns only the id of the affected record. Required: id, contract_id, startAt.
delete_a_sesame_contract_annex_by_id
Delete one annex (id) from a Sesame contract (contract_id). Returns no content (HTTP 204). Required: id, contract_id.
list_all_sesame_contract_compensations
List the compensations (salary complements) of the Sesame company. Filter by name, type, period, status and currency. Paginated by Truto (page/limit, 100 records per page). Each record has: id, companyId, name, compensationType, quantity, percentage, period, currency, recurrence, status (+5 more).
create_a_sesame_contract_compensation
Create a Sesame compensation (salary complement). fixed needs quantity; variable and additional need quantity or percentage. The yearly period is not valid for payroll, and the period and currency must match the salary of any employee it is assigned to. Returns: id, companyId, name, compensationType, quantity, percentage, period, currency, recurrence, status (+5 more). Required: name, compensationType, period, currency, status.
get_single_sesame_contract_compensation_by_id
Get one Sesame compensation by id. Returns: id, companyId, name, compensationType, quantity, percentage, period, currency, recurrence, status (+5 more). Required: id.
update_a_sesame_contract_compensation_by_id
Update a Sesame compensation by id. Only name, status, code and comment can change. Returns: id, companyId, name, compensationType, quantity, percentage, period, currency, recurrence, status (+5 more). Required: id, name, status.
delete_a_sesame_contract_compensation_by_id
Permanently delete a Sesame compensation by id. Fails while it is assigned to employees. Returns no content (HTTP 204). Required: id.
list_all_sesame_compensation_employees
List the salary-compensation assignments (employees) of one Sesame compensation (compensation_id). Not paginated: the endpoint documents no page or limit. Each record has: id, compensationId, salaryId, startDate, endDate, createdAt, updatedAt, compensation. Required: compensation_id.
list_all_sesame_employee_compensations
List the compensations assigned to one Sesame employee (employee_id) through the employee's active salary. Not paginated: the endpoint documents no page or limit. Each record has: id, compensationId, salaryId, startDate, endDate, createdAt, updatedAt, compensation. Required: employee_id.
create_a_sesame_employee_compensation
Assign a Sesame compensation (compensation_id) to an employee (employee_id). The employee needs an active salary whose period and currency match the compensation, otherwise Sesame returns 422. Returns no content (HTTP 204). Required: employee_id, compensation_id, startDate.
update_a_sesame_contract_employee_compensation_by_id
Update the start and end dates of a Sesame compensation assignment. id is the salary compensation id. Returns no content (HTTP 204). Required: id, startDate.
delete_a_sesame_contract_employee_compensation_by_id
Remove (soft-delete) a Sesame compensation assignment from an employee. id is the salary compensation id. Returns no content (HTTP 204). Required: id.
sesame_contract_employee_compensations_update_no_content
Update the start and end dates of a compensation assignment (PUT /contract/v1/employee-compensations/{salaryCompensationId}, the same endpoint as contract_employee_compensations.update). Sesame answers 204 No Content; this variant has no response_path, so the empty response is returned as {} instead of nothing. Pass the assignment id as the salary_compensation_id query parameter.
list_all_sesame_contract_monthly_variable_compensations
List Sesame monthly variable compensation amounts (monthly amounts of variable compensations assigned to employees). Filter by salary compensation, employee and date. Paginated by Truto (page/limit, 100 records per page). Each record has: id, salaryCompensationId, amount, date, createdAt, updatedAt.
create_a_sesame_contract_monthly_variable_compensation
Create, or update if one exists for the same salaryCompensationId and date, a Sesame monthly variable compensation amount. The salary compensation must be variable, and the date must be a pay day inside its date range; amount cannot exceed its maximum. Returns: id, salaryCompensationId, amount, date, createdAt, updatedAt. Required: salaryCompensationId, date, amount.
get_single_sesame_contract_monthly_variable_compensation_by_id
Get one Sesame monthly variable compensation amount by id. Returns: id, salaryCompensationId, amount, date, createdAt, updatedAt. Required: id.
delete_a_sesame_contract_monthly_variable_compensation_by_id
Permanently delete a Sesame monthly variable compensation amount by id. Returns no content (HTTP 204). Required: id.
list_all_sesame_contract_employee_leave_types
List Sesame employee leave types (voluntary or involuntary termination types), including system defaults. Not paginated: the endpoint documents no page or limit. Each record has: id, name, reason, editable, createdAt, updatedAt.
create_a_sesame_contract_employee_leave_type
Create a Sesame employee leave type. Returns: id, name, reason, editable, createdAt, updatedAt. Required: name, reason.
get_single_sesame_contract_employee_leave_type_by_id
Get one Sesame employee leave type by id. Returns: id, name, reason, editable, createdAt, updatedAt. Required: id.
update_a_sesame_contract_employee_leave_type_by_id
Rename a Sesame employee leave type by id. System defaults cannot be changed. Returns: id, name, reason, editable, createdAt, updatedAt. Required: id, name.
delete_a_sesame_contract_employee_leave_type_by_id
Delete a Sesame employee leave type by id. System defaults and types in use cannot be deleted. Returns no content (HTTP 204). Required: id.
list_all_sesame_contract_leave_reasons
List Sesame leave reasons (termination reasons), including system defaults. Not paginated: the endpoint documents no page or limit. Each record has: id, name, editable, createdAt, updatedAt.
create_a_sesame_contract_leave_reason
Create a Sesame leave reason. Returns: id, name, editable, createdAt, updatedAt. Required: name.
update_a_sesame_contract_leave_reason_by_id
Rename a Sesame leave reason by id. System defaults cannot be changed. Returns: id, name, editable, createdAt, updatedAt. Required: id, name.
delete_a_sesame_contract_leave_reason_by_id
Soft-delete a Sesame leave reason by id. System defaults and reasons used by employee leaves cannot be deleted. Returns no content (HTTP 204). Required: id.
create_a_sesame_employee_leave_employee
Record an employee leave (termination, 'baja') for one Sesame employee (employee_id); Sesame terminates the given contract. Returns: id, employeeId, endDate, employeeLeaveType, leaveReason, comment, status, contractId, createdAt, updatedAt. Required: employee_id, endDate, leaveReasonId, employeeLeaveTypeId, contractId.
create_a_sesame_time_entries_start
Start a Sesame project time entry (clock in to a project) for an employee now. Returns: id, employee, projectId, tagIds, timeEntryIn, timeEntryOut, comment, createdAt, updatedAt, deletedAt. Required: employeeId.
create_a_sesame_time_entries_stop
Stop an employee's running Sesame project time entry. The spec nests employeeId under coordinates but requires it at the top level (as the start endpoint does); send it at the top level. Returns: id, employee, projectId, tagIds, timeEntryIn, timeEntryOut, comment, createdAt, updatedAt, deletedAt. Required: employeeId.
list_all_sesame_project_time_entries
List Sesame project time entries. Filter by employee, project, date range and employee status (employeeStatus defaults to active). Paginated by Truto (page/limit, 100 records per page). Each record has: id, employee, projectId, tagIds, timeEntryIn, timeEntryOut, comment, createdAt, updatedAt, deletedAt.
create_a_sesame_project_time_entry
Create a Sesame project time entry for an employee, with optional project, tags, comment and end time. Returns: id, employee, projectId, tagIds, timeEntryIn, timeEntryOut, comment, createdAt, updatedAt, deletedAt. Required: employeeId, timeEntryIn.
update_a_sesame_project_time_entry_by_id
Update a Sesame project time entry by id. Returns: id, employee, projectId, tagIds, timeEntryIn, timeEntryOut, comment, createdAt, updatedAt, deletedAt. Required: id, timeEntryIn.
delete_a_sesame_project_time_entry_by_id
Delete a Sesame project time entry by id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
list_all_sesame_project_customers
List the Sesame project customers (clients). Paginated by Truto (page/limit, 100 records per page). Each record has: id, customerName, firstName, lastName, email, phone, description, createdAt, updatedAt, deletedAt.
create_a_sesame_project_customer
Create a Sesame project customer. companyId is the company id returned by info.list. Returns: id, customerName, firstName, lastName, email, phone, description, createdAt, updatedAt, deletedAt. Required: companyId, customerName.
update_a_sesame_project_customer_by_id
Update a Sesame project customer by id. Returns: id, customerName, firstName, lastName, email, phone, description, createdAt, updatedAt, deletedAt. Required: id, customerName.
delete_a_sesame_project_customer_by_id
Delete a Sesame project customer by id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
list_all_sesame_projects
List Sesame projects. Sesame requires the company id (from info.list) in the id query parameter; Truto also forwards an MCP tool's id argument there. Paginated by Truto (page/limit, 100 records per page). Each record has: id, name, parentProject, customer, price, startDate, endDate, manager, description, status (+5 more). Required: id.
create_a_sesame_project
Create a Sesame project. companyId is the company id returned by info.list. Returns: id, name, parentProject, customer, price, startDate, endDate, manager, description, status (+5 more). Required: companyId, name.
update_a_sesame_project_by_id
Update a Sesame project by id. Omitting an optional field keeps its value and sending null clears it, except price, totalMinutes, fixedCost, progress and privacy, which cannot be null. Returns: id, name, parentProject, customer, price, startDate, endDate, manager, description, status (+5 more). Required: id, name.
delete_a_sesame_project_by_id
Delete a Sesame project by id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
list_all_sesame_project_planned_tasks
List Sesame planned tasks. Filter by description or project. Paginated by Truto (page/limit, 100 records per page). Each record has: accumulatedSeconds, description, endDate, endTime, id, numComments, projectId, startDate, startTime.
create_a_sesame_project_planned_task
Create a planned task in a Sesame project. Returns only the id of the new record. Required: description, projectId, startDate, endDate.
update_a_sesame_project_planned_task_by_id
Update a Sesame planned task by id. Returns: accumulatedSeconds, description, endDate, endTime, id, numComments, projectId, startDate, startTime. Required: id.
delete_a_sesame_project_planned_task_by_id
Delete a Sesame planned task by id. Returns no content (HTTP 204). Required: id.
create_a_sesame_project_planned_tasks_assignation
Assign an employee, office, department or entity group to a Sesame planned task. Returns only the id of the new record. Required: plannedTaskId, entityReference.
list_all_sesame_project_planned_tasks_assignations
List the assignations of one Sesame planned task (planned_task_id). Paginated by Truto (page/limit, 100 records per page). Each record has: id, entityReference, assignedAt. Required: planned_task_id.
delete_a_sesame_project_planned_tasks_assignation_by_id
Delete a Sesame planned task assignation by assignation id. Returns no content (HTTP 204). Required: id.
list_all_sesame_document_directories
List the Sesame document directories. Filter by employee, parent directory type, and whether to include shared folders (needs employeeId). Paginated by Truto (page/limit, 100 records per page). Each record has: id, name, rootDirectoryType, directoryType.
list_all_sesame_directory_documents
List the documents in one Sesame directory (directory_id). Paginated by Truto (page/limit, 100 records per page). Each record has: id, name, createdBy, createdAt, updatedAt, expirationDate, fileType, fileSize. Required: directory_id.
create_a_sesame_directory_document
Upload a document to one Sesame directory (directory_id). Send it as a multipart form upload with the file in the document field, plus optional name and originalDate (required for payrolls). Returns only the id of the new record. Required: directory_id, document.
get_single_sesame_document_download_by_id
Download a Sesame document as a binary file. id is the document id. Returns the raw file content (application/octet-stream); there are no documented response fields. Required: id.
delete_a_sesame_document_by_id
Delete a Sesame document by id. Returns no content (HTTP 204). Required: id.
list_all_sesame_recruitment_vacancies
List Sesame recruitment vacancies. Not paginated: the endpoint documents no page or limit. Each record has: id, companyId, name, description, contractType, experience, createdById, status, openedAt, createdAt (+11 more).
get_single_sesame_recruitment_vacancy_by_id
Get one Sesame recruitment vacancy by id. Returns: id, companyId, name, description, contractType, experience, createdById, status, openedAt, createdAt (+11 more). Required: id.
list_all_sesame_vacancy_candidates
List the candidates of one Sesame vacancy (vacancy_id), optionally by status. Not paginated: the endpoint documents no page or limit. Each record has: id, companyId, vacancy, vacancyId, firstName, lastName, email, phone, type, statusId (+20 more). Required: vacancy_id.
create_a_sesame_recruitment_candidate
Create a Sesame recruitment candidate. Returns: id, companyId, vacancy, vacancyId, firstName, lastName, email, phone, type, statusId (+20 more). Required: firstName, lastName, phone.
get_single_sesame_recruitment_candidate_by_id
Get one Sesame recruitment candidate by id. Returns: id, companyId, vacancy, vacancyId, firstName, lastName, email, phone, type, statusId (+20 more). Required: id.
update_a_sesame_recruitment_candidate_by_id
Update a Sesame recruitment candidate by id. Returns: id, companyId, vacancy, vacancyId, firstName, lastName, email, phone, type, statusId (+20 more). Required: id, firstName, lastName, phone.
list_all_sesame_recruitment_candidate_status
List the candidate statuses (pipeline stages) of one Sesame vacancy (vacancy_id). Not paginated: the endpoint documents no page or limit. Each record has: id, name, companyId, order, createdAt, updatedAt, vacancyId. Required: vacancy_id.
list_all_sesame_training_types
List the Sesame training types. Not paginated: the endpoint documents no page or limit. Each record has: id, name.
list_all_sesame_trainings
List Sesame trainings. Filter by name and date range. Paginated by Truto (page/limit, 20 records per page). Each record has: id, name, description, durationInHours, durationHours, durationMinutes, amount, amountType, currency, startDate (+2 more).
create_a_sesame_training
Create a Sesame training. Returns: id, name, description, durationInHours, durationHours, durationMinutes, amount, amountType, currency, startDate (+2 more). Required: name, typeId, currency, amountType, amount, durationInHours, startDate, endDate, bonusable, trainingEntity.
get_single_sesame_training_by_id
Get one Sesame training by id. Returns: id, name, description, durationInHours, durationHours, durationMinutes, amount, amountType, currency, startDate (+2 more). Required: id.
update_a_sesame_training_by_id
Update a Sesame training by id. Returns: id, name, description, durationInHours, durationHours, durationMinutes, amount, amountType, currency, startDate (+2 more). Required: id, name, typeId, currency, amountType, amount, durationInHours, startDate, endDate, bonusable, trainingEntity.
delete_a_sesame_training_by_id
Delete a Sesame training by id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
list_all_sesame_training_employee_assignations
List the employees assigned to one Sesame training (training_id). assignId is the id that training_employee_status.update takes. Not paginated: the endpoint documents no page or limit. Each record has: id, assignId, employeeName, firstName, lastName, imageProfileURL, email. Required: training_id.
create_a_sesame_training_employee_assignation
Assign employees to one Sesame training (training_id). The spec types employeeIds as an object with an employeeId field. Returns a list of records, each with: id, assignId, employeeName, firstName, lastName, imageProfileURL, email. Required: training_id, employeeIds.
sesame_training_employee_assignations_bulk_delete
Unassign employees from one Sesame training (training_id). The spec types employeeIds as an object with an employeeId field. Returns a list of records, each with: id, assignId, employeeName, firstName, lastName, imageProfileURL, email. Required: training_id, employeeIds.
update_a_sesame_training_employee_status_by_id
Set an employee's status in a Sesame training (rejected, pending, in_progress or completed; default pending). id is the assignation id (assignId from training_employee_assignations.list). Returns a list of records, each with: id, assignId, employeeName, firstName, lastName, imageProfileURL, email. Required: id.
list_all_sesame_expense_management_expenses
List the expenses of the Sesame company. Filter by employee, date range, payment method and status. Paginated by Truto (page/limit, 20 records per page). Each record has: id, employee, companyName, cif, address, serialNumber, date, category, paymentMethod, type (+15 more).
list_all_sesame_expense_management_expense_categories
List the Sesame expense categories. Not paginated: the endpoint documents no page or limit. Each record has: id, name.
list_all_sesame_expense_management_expense_payment_methods
List the Sesame expense payment methods. Not paginated: the endpoint documents no page or limit. Each record has: id, name.
list_all_sesame_poll_evaluations
List the Sesame poll evaluations (surveys and evaluation forms) of the company. Filter by evaluation id, title, form type, office, department or group. Paginated by Truto (page/limit, 100 records per page). Each record has: anonymous, companyId, createdAt, createdBy, description, endDate, evaluationType, evaluators, form, id (+23 more).
create_a_sesame_evaluations_candidate_recruitment
Submit the answers of a Sesame candidate recruitment evaluation (evaluation_id). Each answer needs questionOptionIds for choice questions (radio, check, faces, range, ranking, stars, organization_chart) or answer for text and float questions, not both. Returns no content (HTTP 204). Required: evaluation_id.
list_all_sesame_discussion_comments
List Sesame discussion comments of a thread, a planned task or an entity reference. Not paginated: the endpoint documents no page or limit. Each record has: id, author, thread, entityReference, comment, createdAt, updatedAt.
create_a_sesame_discussion_comment
Create a Sesame discussion comment on a thread or an entity reference. Returns only the id of the new record. Required: authorId, comment, entityReference.
update_a_sesame_discussion_comment_by_id
Update a Sesame discussion comment's text by id. Returns no content (HTTP 204). Required: id, comment.
delete_a_sesame_discussion_comment_by_id
Delete a Sesame discussion comment by id. Returns no content (HTTP 204). Required: id.
list_all_sesame_requests
List the employee requests (approval workflows) of the Sesame company. Filter by status, employee, request type and date range. Paginated by Truto (page/limit, 100 records per page). Each record has: id, title, status, employeeId, requestType, createdAt, updatedAt, resolvedAt, resolvedById, flowTotalLevels (+2 more).
get_single_sesame_request_by_id
Get one Sesame employee request by id. Returns: id, title, status, employeeId, requestType, createdAt, updatedAt, resolvedAt, resolvedById, flowTotalLevels (+2 more). Required: id.
list_all_sesame_request_documents
List the documents attached to one Sesame request (request_id). Not paginated: the endpoint documents no page or limit. Each record has: id, name, fileType, fileSize, createdAt. Required: request_id.
list_all_sesame_request_types
List the Sesame request types. Filter by name[contains] and archived state. Paginated by Truto (page/limit, 100 records per page). Each record has: id, name, icon, archivedAt, createdAt, updatedAt.
list_all_sesame_third_party_context_all_mx_employee_datas
List Mexican employees with the master payroll data a payroll system needs (personal, address, employment, salary, bank and custom fields). The company must be in Mexico with the payroll module or add-on, otherwise Sesame returns 403. For incremental sync pass updatedSince (the highest updatedAt you received); the order is fixed (most recently changed first). Page sizes above 150 return 422. Paginated by Truto (page/limit, 100 records per page). Each record has: id, updatedAt, personalData, address, employmentData, salaryData, bankData, customFields.
get_single_sesame_third_party_context_all_mx_employee_data_by_id
Get one Mexican employee's master payroll data (same fields as the list). id is the employee id; an unknown, deleted or other company's id returns 422, and the 403 country/module gates apply. Returns: id, updatedAt, personalData, address, employmentData, salaryData, bankData, customFields. Required: id.
list_all_sesame_skills
List the skills in the Sesame company skill catalog (v4 API). Paginated by Truto (page/limit, 20 records per page). Each record has: id, name, createdAt, updatedAt.
create_a_sesame_skill
Create a skill in the Sesame company skill catalog (v4 API). Returns only the id of the new record. Required: name.
get_single_sesame_skill_by_id
Get one skill from the Sesame company skill catalog by id (v4 API). Returns: id, name, createdAt, updatedAt. Required: id.
update_a_sesame_skill_by_id
Rename a skill in the Sesame company skill catalog by id (v4 API). Returns no content (HTTP 204). Required: id, name.
delete_a_sesame_skill_by_id
Delete a skill from the Sesame company skill catalog by id (v4 API), cascading to employee assignments. Without force=true, Sesame returns 409 when employees still have the skill. Returns no content (HTTP 204). Required: id.
list_all_sesame_language_skills
List the ISO-639 language catalogue of Sesame (v4 API, read-only). isoCode is the id that the employee_language_skills methods take. Not paginated: the endpoint documents no page or limit. Each record has: isoCode, name.
list_all_sesame_employee_skills
List the skills assigned to one Sesame employee (employee_id) (v4 API). Paginated by Truto (page/limit, 20 records per page). Each record has: employeeId, skillId, skillName, level, comment, createdAt, updatedAt. Required: employee_id.
update_a_sesame_employee_skill_by_id
Assign a skill (id = skill id) to one Sesame employee (employee_id), or replace the level and comment of the existing assignment (v4 upsert, HTTP PUT). Returns no content (HTTP 201 when the assignment is created, 204 when it is updated). Required: id, employee_id, level.
delete_a_sesame_employee_skill_by_id
Remove a skill (id = skill id) from one Sesame employee (employee_id). The skill stays in the catalog (v4 API). Returns no content (HTTP 204). Required: id, employee_id.
list_all_sesame_employee_language_skills
List the languages assigned to one Sesame employee (employee_id) (v4 API). Paginated by Truto (page/limit, 20 records per page). Each record has: employeeId, languageSkillId, languageName, level, comment, createdAt, updatedAt. Required: employee_id.
update_a_sesame_employee_language_skill_by_id
Assign a language (id = ISO-639 code from language_skills.list) to one Sesame employee (employee_id), or replace the level and comment of the existing assignment (v4 upsert, HTTP PUT). Returns no content (HTTP 201 when the assignment is created, 204 when it is updated). Required: id, employee_id, level.
delete_a_sesame_employee_language_skill_by_id
Remove a language (id = ISO-639 code) from one Sesame employee (employee_id). The catalogue is unaffected (v4 API). Returns no content (HTTP 204). Required: id, employee_id.
list_all_sesame_core_employee_managers
Deprecated (sunset 2027-03-09; use employee_managers.list): list Sesame employee-manager assignments. Filter by employee, manager or permission. Paginated by Truto (page/limit, 100 records per page). Each record has: id, manager, employee, permission, order, createdAt, updatedAt.
create_a_sesame_core_employee_manager
Assign a manager to a Sesame employee for a permission type (absencesManagement or checksManageRequestsAndIncidences) with a validator order. Returns: id, manager, employee, permission, order, createdAt, updatedAt. Required: employeeId, managerId, permission, order.
update_a_sesame_core_employee_manager_by_id
Change the manager of a Sesame employee-manager assignment by id. Returns: id, manager, employee, permission, order, createdAt, updatedAt. Required: id, managerId.
delete_a_sesame_core_employee_manager_by_id
Delete a Sesame employee-manager assignment by id. Returns no content: Sesame answers HTTP 200 with an empty data value. Required: id.
list_all_sesame_day_off_requests
List vacation day off requests and then absence day off requests in one paginated list: pages through GET /schedule/v1/vacation-day-off-requests and continues with GET /schedule/v1/absence-day-off-requests (both families share the same filters: employeeId, absencesValidator, fromDayOff, toDayOff, updatedAt[gt], updatedAt[lt], status). A family ends when meta.currentPage reaches meta.lastPage. Records keep Sesame's shape: vacation requests carry vacationCalendar, absence requests carry absenceCalendar.
list_all_sesame_day_off_types
List vacation configurations and then absence types in one paginated list: pages through GET /schedule/v1/vacation-configurations and continues with GET /schedule/v1/absence-types. A family ends when meta.currentPage reaches meta.lastPage. Records keep Sesame's shape: absence types carry pickMode and category, vacation configurations carry dayType and maxDaysOff.
list_all_sesame_departments_and_entity_groups
List departments and then entity groups in one paginated list: pages through GET /core/v3/departments and continues with GET /core/v3/entity-groups. A family ends when meta.currentPage reaches meta.lastPage. Filters are not forwarded per family, so send none (use departments.list or entity_groups.list to filter). Departments carry only id and name; entity groups also carry groupId, parentId, description, showGroup, costCenter and employeesCount.
Why Truto
Why use Truto’s MCP server for Sesame
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 800+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
Unified APIs
Unified APIs for Sesame
Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.
Unified HRIS API
Bank Info
Bank info represent the Bank Account information for an Employee
Companies
Companies represent the companies in HRIS
Employee Compensations
Represent the compensation configuration for an Employee
Employees
Represents an employee in HRIS
Employments
Employments represent a job position at a company.
Fields
Represent the fields for various entities in the company
Groups
Groups represent the groups for an Employee
Job Roles
Represent the job roles in a company
Locations
Locations represent the locations in HRIS
Timeoff Policies
Represent the time off policies in a company
Timeoff Requests
Represent the time off requests for an Employee
Timeoff Types
Represent the time off types in a company
Timesheet Entries
Represents a block of time an employee worked or reported, such as a shift, a punch or a timesheet line, attributed to a single work date
How It Works
From zero to integrated
Go live with Sesame in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Sesame account
Use Truto’s frontend SDK to connect your customer’s Sesame account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Sesame
Truto’s Proxy API is a 1-to-1 mapping of the Sesame API. You call us, we call Sesame, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Sesame’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Sesame on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
Is the Sesame integration available as a pre-built Unified API on Truto?
Sesame is not yet part of a pre-built Unified API. Truto builds Sesame integrations on request, tailored to the specific endpoints and workflows your product needs. Reach out to the Truto team to scope your integration.
How does authentication work with Sesame's API?
Sesame supports API key-based authentication. Truto manages the credential lifecycle so your end users can securely connect their Sesame accounts without you handling token storage or rotation directly.
Does Sesame support webhooks for real-time data sync?
Yes. Sesame offers webhooks for key lifecycle events such as employee creation and termination. This enables real-time reactions to HR changes instead of relying solely on periodic polling.
What data can I access from Sesame through this integration?
Sesame's API exposes employee demographics, employment contracts, time-tracking work entries, absence requests and vacation calendars, departments, offices, and teams. The exact endpoints Truto connects depend on your use case.
Is Sesame migrating its API? How does that affect my integration?
Sesame announced a major API overhaul in early 2025, deprecating older endpoints in favor of a more consistent schema. Truto monitors these changes and adapts the integration layer so your product doesn't break during the migration.
Can I write data back to Sesame, or is it read-only?
Sesame's API supports both read and write operations on key resources like Employees and work entries. This means you can push new employee records or log hours worked, not just pull data.
Sesame
Get Sesame integrated into your app
Our team understands what it takes to make a Sesame integration successful. A short, crisp 30 minute call with folks who understand the problem.