Worker self-service

This guide covers the worker-side self-service API surface for active EOR employees: reading employment details, accessing documents and payslips, managing time off, signing amendments, and initiating resignation.

All endpoints in this guide use a worker-scoped token. See Getting started for how to generate worker tokens or magic links.

Profile and employment details

Use these endpoints to let workers read their employment record and update personal profile information. Amendment requests are forwarded to the employer for review.

MethodEndpointPurpose
GET/people/{hris_profile_id}View employment details including contract, salary, and benefits
PATCH/eor/workers/contracts/{contract_id}/additional-informationUpdate worker profile details
POST/eor/contracts/{contract_id}/amendmentsRequest changes to employment terms; creates an amendment requiring employer review

Subscribe to worker.v2.updated to receive notifications when profile data changes.

Documents

Use the following endpoints to give workers access to payslips, tax documents, HR letters, and their employment contract.

MethodEndpointPurpose
GET/eor/workers/{worker_id}/payslipsList payslips
GET/eor/workers/{worker_id}/payslips/{payslip_id}/downloadDownload payslip PDF
GET/eor/workers/tax-documentsList tax documents
GET/eor/workers/contracts/{contract_id}/hr-documentsList HR verification letters and documents
GET/eor/workers/contracts/{contract_id}/employee-agreement/downloadDownload the signed employment agreement
GET/eor/workers/contracts/{contract_id}/offer-letterDownload contract document

Time off

Workers submit and manage their own leave requests using the worker token. The employer reviews and approves or rejects requests via POST /time_offs/review. See Employment management.

1

Check available balance

Retrieve the worker’s current leave entitlements and remaining balance before presenting the request form.

GET /time_offs/profile/{hris_profile_id}/entitlements

2

Submit a time off request

Submit the request with the required fields. type_id is obtained from the worker’s time off policy.

POST /time_offs

Required fields: hris_profile_id, type_id, start_date, end_date. Optional: note.

3

Track request status

Poll or use webhooks to monitor the outcome after submission.

GET /time_offs?hris_profile_id={id}

The request waits for employer review. Subscribe to time-off.reviewed to receive the outcome without polling.

To cancel a pending request, use DELETE /time_offs/{time_off_id}. Cancellation is only possible while the request is in pending status; approved or rejected requests cannot be cancelled via API.

Amendment signing

When an amendment is created, the worker must sign it before changes take effect. Call the signing endpoint using the worker token once the amendment reaches the worker signing stage.

POST /workers/amendments/{amendment_id}/sign

Subscribe to eor.amendment.status.updated to receive a notification when an amendment reaches the worker signing stage and action is required.

Offboarding (resignation)

Workers can initiate a resignation from the worker side. The employer must review accrued PTO before the offboarding flow can proceed. See Amendments and offboarding for the employer-side review step.

1

Submit resignation

The worker submits their resignation with a desired end date and reason. The employer is notified and must review accrued paid time off before offboarding can continue.

POST /eor/workers/contracts/{contract_id}/offboarding

Required fields: desired_end_date, reason.

2

Sign the resignation letter

After the employer reviews PTO, the worker signs the resignation letter to complete the offboarding initiation.

POST /eor/workers/contracts/{contract_id}/offboarding/resignation-letter/sign

Webhook events

EventTrigger
eor.amendment.status.updatedAmendment ready for worker signature
time-off.reviewedEmployer approved or rejected a time off request

See the Webhooks guide for event payload structure and signature verification.

Next steps