SeamlessHR
Read SeamlessHR (Nigeria, Africa) employees, direct reports, departments, job roles, contract types, leave and recruitment job postings. Read-only; sensitive HR fields are never mapped.
Feed Nigerian HR records, org structure, leave and open job requisitions from SeamlessHR into screening, access, workforce-planning and reporting flows without exposing pay, bank or personal data.
Source actions
17
Destination actions
0
Data types
14
Validation status
Implemented · fixture tested.
Implementation is checked against provider-shaped fixtures for every action, authentication failures, rate limits, pagination and duplicate safety. Provider sandbox and authorised account validation are recorded separately when credential-backed runs are completed.
What you can map
contract types
- Get contract typeSource
Get a contract type by its name.
contract_types.get - List contract typesSource
List employment contract types such as Full Time, Contract Staff or NYSC.
contract_types.list
countries
- List countriesSource
List countries used for job posting locations.
countries.list
departments
- List departments and org unitsSource
List the company's departments, or directorates, divisions or units by org unit type.
departments.list
direct reports
- List direct reportsSource
List an employee's direct reports by employee code (never by email).
direct_reports.list
employees on leave
- List employees on leaveSource
List approved leave for a period (today by default), optionally for one department or org unit.
employees_on_leave.list
employees
- Get employeeSource
Get one employee's minimal work profile by staff ID (employee code).
employees.get - List employeesSource
List employees with a minimal work profile, filtered by status, creation date, employment or exit date range, or a name or employee-code search.
employees.list
job companies
- List recruitment companiesSource
List the companies that publish jobs in the recruitment system.
job_companies.list
job roles
- List job rolesSource
List the company's job roles.
job_roles.list
job specializations
- List job specialisationsSource
List the specialisations used to categorise job postings.
job_specializations.list
jobs
- Get job postingSource
Get one recruitment job posting by ID.
jobs.get - List job postingsSource
List recruitment job postings (requisitions) by status, search text, work style, location or job type.
jobs.list
leave balances
- Get leave balanceSource
Get an employee's balance for one leave type, for the current or a given year.
leave_balances.get
leave policies
- List leave policiesSource
List leave policies (leave types) and their rules.
leave_policies.list
leave requests
- List leave requestsSource
List leave requests for the company or one employee, optionally only pending, current or upcoming leave.
leave_requests.list
states
- List statesSource
List the states of a country, used for job posting locations.
states.list
Authentication
Client ID and client secret (x-client-id / x-client-secret headers)
Plans and access
SeamlessHR customers (Africa, primarily Nigeria) with API access enabled for their company. Client ID and client secret are issued by SeamlessHR on request (support@seamlesshr.com) and grant company-wide access to the modules enabled for them.
Test environment
SeamlessHR documents a test environment at api-sandbox.seamlesshr.app; request sandbox credentials from support@seamlesshr.com.
Rate limits
SeamlessHR does not publish numeric limits. Its docs say rate limiting is usually returned as HTTP 503 with a Retry-After header; Nexra treats that as a rate limit and backs off. HTTP 429 is documented as the employee-limit error when adding employees, which this connector never does.
Pagination
Employees use page and limit (default 10). Job postings return 10 per page with meta.current_page and meta.last_page. Leave requests, employees on leave and leave policies return a meta paginator; Nexra sends page while meta reports more pages. Org, contract type and reference lists are single pages.
Provider events
SeamlessHR webhooks for employee created, updated and deactivated, birthdays, work anniversaries and leave request events, signed with HMAC SHA-512 in x-seamlesshr-signature. The webhook URL is configured by SeamlessHR. Nexra event triggers are not yet available; flows run on demand or on a schedule.
Before you build a flow
- Read-only. Adding, updating, activating, deactivating or exiting employees, creating or updating departments, job roles and contract types, loans, payments, attendance sync and performance (KPIs, objectives) writes are intentionally not implemented. Deletes are never implemented.
- The public recruitment (RMS) API covers job postings, companies, specialisations, countries and states only. Candidates, applicants, applications, stages, notes, offers and hires are not in the public API, so they cannot be read or written; no rejection, stage move, offer or hire is automated.
- Sensitive fields are never mapped: salary, net pay, pay group and grade, bank and account numbers, pension and tax PINs, loans, date of birth, age, sex, marital status, religion, state of origin, personal email, phone numbers, addresses, next of kin, qualifications, experience, photos, exit reasons and remarks, and leave reasons or proof documents. Birthdays, pay groups, payroll, ledger and pay-item endpoints are not used.
- Email addresses and phone numbers are never sent in URLs: direct reports are looked up by employee code only, and employee search refuses values that contain @ or look like phone numbers.
- No updated-since filter is documented. Employees can be filtered by creation date (date) and by employment or exit date ranges.
- Departments, job roles and contract types have no numeric ID in the API; Nexra uses the department or job role code when set, otherwise the name, and the contract type title.
- Date-range filters are sent as indexed array parameters (employment_date[0], employment_date[1]); SeamlessHR documents the employment_date[] form, which PHP parses identically. Not yet verified on a live account.
- The page parameter for leave requests, employees on leave and leave policies is inferred from the meta paginator the docs show; it is not listed as a parameter. Without meta, these lists return a single page.
- Get employee puts the staff ID in the URL path, so staff IDs containing a slash (for example ADV/FTE/22/09) are refused; find them with List employees and search.
- The employee page-size maximum is not documented; Nexra caps limit at 100.
- Locations: there is no locations or branches endpoint. Employee records include branch, region and deployed state, and RMS countries and states give job-posting locations. Whether other org unit tags (for example branch) are accepted is not documented.
- RMS endpoints are documented for career pages; whether a client credential sees every job state (DRAFT, SUSPENDED) depends on SeamlessHR's configuration.
Developer reference
- Create the SeamlessHR credentials described above with the narrowest permissions your flows need.
- In Nexra, open Connect, then Connections, then New connection, choose SeamlessHR, enter its settings and credentials, and tick only the write actions you need. Connection guide
- Test the connection, then use its actions as flow sources and destinations. Flow guide
Machine-readable detail: GET /api/public/connect/connectors/seamlesshr and the Connections API.