Skip to content
All connectors
SeamlessHR logo

SeamlessHR

HR, recruitment & payroll

Bring new starters, changes and leavers from SeamlessHR into every system that needs them, with HR approving each change.

18 ways to read.

Quality checks

Built and tested with example responses.

  1. Ready to connect: doneEvery listed action is built in.
  2. Built and tested with example responses: doneEach action is built from the provider’s published API and tested against example responses, errors, rate limits and paging.
SeamlessHR with Nexra

Connected, approved, proven.

The things teams do most with SeamlessHR, an example flow with a person in the loop, and what Nexra keeps as proof.

Top actions

  • List direct reportsRead

Example flow

  1. SeamlessHR · List direct reportsDone
  2. Nexra · Record the decision and result in the evidence chainProven

Example workflow. Routine runs go through on their own. Only a change your rules flag, such as one over a limit you set, waits for the right person, who sees the exact change and the rule before it reaches SeamlessHR.

What gets logged

  • Whether it ran on its own or who approved it, and under which rule
  • A fingerprint of the exact request sent to SeamlessHR
  • SeamlessHR's reply: what it created or changed
  • One entry in the evidence chain, linked to the one before

Try this in the sandbox

Run the whole flow with test data in your sandbox, then connect your own account when you are ready to go live.

For developers

Technical detail

Read SeamlessHR (Nigeria, Africa) employees, direct reports, departments, job roles, contract types, attendance (clock-ins), leave and recruitment job postings. Read-only; sensitive HR fields are never mapped.

SeamlessHR API docs
Source actions
18
Data types
15

What you can map

Reads are always available. Writes are off until you switch them on for a connection, and governed writes follow your policies.

Attendance1
  • List attendance (clock-ins)Source

    Clock-in and clock-out records for every employee for a day or a date range (today by default), with the scheduled times and SeamlessHR's punctuality status.

Contract types2
  • Get contract typeSource

    Get a contract type by its name.

  • List contract typesSource

    List employment contract types such as Full Time, Contract Staff or NYSC.

Countries1
  • List countriesSource

    List countries used for job posting locations.

Departments1
  • List departments and org unitsSource

    List the company's departments, or directorates, divisions or units by org unit type.

Direct reports1
  • List direct reportsSource

    List an employee's direct reports by employee code (never by email).

Employees on leave1
  • List employees on leaveSource

    List approved leave for a period (today by default), optionally for one department or org unit.

Employees2
  • Get employeeSource

    Get one employee's minimal work profile by staff ID (employee code).

  • 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.

Job companies1
  • List recruitment companiesSource

    List the companies that publish jobs in the recruitment system.

Job roles1
  • List job rolesSource

    List the company's job roles.

Job specializations1
  • List job specialisationsSource

    List the specialisations used to categorise job postings.

Jobs2
  • Get job postingSource

    Get one recruitment job posting by ID.

  • List job postingsSource

    List recruitment job postings (requisitions) by status, search text, work style, location or job type.

Leave balances1
  • Get leave balanceSource

    Get an employee's balance for one leave type, for the current or a given year.

Leave policies1
  • List leave policiesSource

    List leave policies (leave types) and their rules.

Leave requests1
  • List leave requestsSource

    List leave requests for the company or one employee, optionally only pending, current or upcoming leave.

States1
  • List statesSource

    List the states of a country, used for job posting locations.

Access and limits

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
Attendance uses page and perPage with meta.to and meta.total. 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. Flows can start the moment something happens: when a new employee is added; when an employee's details change; when an employee leaves; when a leave request is approved.

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.
  • Attendance (clock-ins) is read from Get Attendance Records with a custom date range. It needs SeamlessHR's Time and Attendance module; where the business doesn't use it, the read returns no rows and Nexra's "Who's in today" falls back to active employees minus those on leave. Bulk Sync Attendance Records (a write) is not implemented.
  • 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

  1. Create the SeamlessHR credentials described above with the narrowest permissions your flows need.
  2. 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
  3. 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.