Download OpenAPI specification:Download
This event is triggered when an offboarding request is done.
Deprecated since April 2024 in favour of offboarding.submitted_to_payroll webhook.
employment_id required | string |
event_type required | string |
offboarding_request_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "offboarding.done",
- "offboarding_request_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
This event is triggered when an offboarding request is completed.
employment_id required | string |
event_type required | string |
offboarding_request_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "offboarding.completed",
- "offboarding_request_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
This event is triggered when an offboarding request has been submitted to payroll.
employment_id required | string |
event_type required | string |
offboarding_request_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "offboarding.submitted_to_payroll",
- "offboarding_request_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
This event is triggered whenever an offboarding request starts being reviewed.
employment_id required | string |
event_type required | string |
offboarding_request_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "offboarding.review_started",
- "offboarding_request_id": "ba310525-9282-40c9-8977-14d844bf891a"
}
This event is triggered whenever an offboarding request is deleted.
employment_id required | string |
event_type required | string |
offboarding_request_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "offboarding.deleted",
- "offboarding_request_id": "ba310525-9282-40c9-8977-14d844bf891a"
}
This event is triggered when an offboarding request is submitted.
employment_id required | string |
event_type required | string |
offboarding_request_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "offboarding.submitted",
- "offboarding_request_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
Lists Offboarding requests.
employment_id | string Example: employment_id=93t3j-employment-id-9suej43 Filter by Employment ID |
type | string Example: type=paid Filter by offboarding type |
include_confidential | string Example: include_confidential=true By default, the results do not include confidential termination requests.
Send |
page | integer Example: page=1 Starts fetching records after the given page |
page_size | integer Example: page_size=30 Change the amount of records returned per page, defaults to 20, limited to 100 |
{- "current_page": 1,
- "offboardings": [
- {
- "additional_comments": "",
- "agrees_to_pto_amount": "true",
- "confidential": false,
- "employee_awareness": {
- "date": "2023-12-12",
- "note": "optional text to add details"
}, - "employment_id": "1e74fdc2-7420-4eef-ab0a-b794cbbef4e1",
- "id": "ba310525-9282-40c9-8977-14d844bf891a",
- "proposed_termination_date": "2023-12-20",
- "requested_by": "5a31f3c1-d7a7-4311-89cb-928959d3d540",
- "risk_assessment_reasons": [
- "pregnant_or_breastfeeding",
- "family_leave"
], - "status": "submitted",
- "submitted_at": "2023-04-13T13:35:06Z",
- "termination_date": "2023-12-20",
- "termination_reason": "workforce_reduction",
- "type": "termination",
- "will_challenge_termination": true,
- "will_challenge_termination_description": "additional details for the offboarding risk assessment"
}
], - "total_count": 1,
- "total_pages": 1
}
Creates an Offboarding request.
Offboarding
employment_id required | string |
required | object (TerminationDetailsParams) |
type required | string Value: "termination" The type of the offboarding request. For now, only |
{- "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
- "termination_details": {
- "additional_comments": "additional comments regarding the termination reason",
- "confidential": false,
- "employee_awareness": {
- "date": "2023-12-12",
- "note": "optional text to add details"
}, - "proposed_termination_date": "2023-12-20",
- "reason_description": "termination reason",
- "risk_assessment_reasons": [
- "pregnant_or_breastfeeding",
- "family_leave"
], - "termination_reason": "workforce_reduction",
- "termination_reason_files": [
- {
- "content": "UGVyaW9kIEVuZCBEYXRlLFBheSBEYXRlLEVtcG...5jZSBPZiBSZXNpZGVuYdXJyZW50LEFsbG93",
- "name": "termination_letter.pdf"
}
], - "will_challenge_termination": true,
- "will_challenge_termination_description": "additional details for the offboarding risk assessment"
}, - "type": "termination"
}
{- "data": {
- "offboarding": {
- "additional_comments": "",
- "agrees_to_pto_amount": "true",
- "confidential": false,
- "employee_awareness": {
- "date": "2023-12-12",
- "note": "optional text to add details"
}, - "employment_id": "1e74fdc2-7420-4eef-ab0a-b794cbbef4e1",
- "id": "ba310525-9282-40c9-8977-14d844bf891a",
- "proposed_termination_date": "2023-12-20",
- "requested_by": "5a31f3c1-d7a7-4311-89cb-928959d3d540",
- "risk_assessment_reasons": [
- "pregnant_or_breastfeeding",
- "family_leave"
], - "status": "submitted",
- "submitted_at": "2023-04-13T13:35:06Z",
- "termination_date": "2023-12-20",
- "termination_reason": "workforce_reduction",
- "type": "termination",
- "will_challenge_termination": true,
- "will_challenge_termination_description": "additional details for the offboarding risk assessment"
}
}
}
Shows an Offboarding request.
id required | string Offboarding request ID |
{- "data": {
- "offboarding": {
- "additional_comments": "",
- "agrees_to_pto_amount": "true",
- "confidential": false,
- "employee_awareness": {
- "date": "2023-12-12",
- "note": "optional text to add details"
}, - "employment_id": "1e74fdc2-7420-4eef-ab0a-b794cbbef4e1",
- "id": "ba310525-9282-40c9-8977-14d844bf891a",
- "proposed_termination_date": "2023-12-20",
- "requested_by": "5a31f3c1-d7a7-4311-89cb-928959d3d540",
- "risk_assessment_reasons": [
- "pregnant_or_breastfeeding",
- "family_leave"
], - "status": "submitted",
- "submitted_at": "2023-04-13T13:35:06Z",
- "termination_date": "2023-12-20",
- "termination_reason": "workforce_reduction",
- "type": "termination",
- "will_challenge_termination": true,
- "will_challenge_termination_description": "additional details for the offboarding risk assessment"
}
}
}
This event is triggered when a timesheet is submitted by an employee
employment_id required | string |
event_type required | string |
timesheet_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "timesheet.submitted",
- "timesheet_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
Shows a timesheet by its ID.
id required | string Example: ec23ebda-4b7a-4dbd-9d79-bd1eec3f83c9 Timesheet ID |
{- "data": {
- "timesheet": {
- "approval_required": true,
- "break_hours": {
- "hours": 35,
- "minutes": 13
}, - "country_code": "PRT",
- "employment_id": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
- "end_date": "2021-07-01",
- "holiday_hours": {
- "hours": 35,
- "minutes": 13
}, - "id": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
- "night_hours": {
- "hours": 35,
- "minutes": 13
}, - "notes": "Some notes",
- "on_call_hours": {
- "hours": 35,
- "minutes": 13
}, - "overtime_hours": {
- "hours": 35,
- "minutes": 13
}, - "regular_hours": {
- "hours": 35,
- "minutes": 13
}, - "start_date": "2021-07-01",
- "status": "submitted",
- "submitted_at": "2021-07-15T18:18:17Z",
- "time_tracking": [
- {
- "clock_in": "2021-07-15T18:18:17Z",
- "clock_out": "2021-07-15T18:18:17Z",
- "has_holiday_hours": false,
- "has_night_hours": false,
- "has_weekend_hours": false,
- "holiday_hours": {
- "hours": 35,
- "minutes": 13
}, - "night_hours": {
- "hours": 35,
- "minutes": 13
}, - "notes": "Time tracking project.",
- "time_breakdown": {
- "day": {
- "holiday": {
- "hours": 35,
- "minutes": 13
}, - "regular": {
- "hours": 35,
- "minutes": 13
}, - "weekend": {
- "hours": 35,
- "minutes": 13
}
}, - "night": {
- "holiday": {
- "hours": 35,
- "minutes": 13
}, - "regular": {
- "hours": 35,
- "minutes": 13
}, - "weekend": {
- "hours": 35,
- "minutes": 13
}
}
}, - "timezone": "Etc/UTC",
- "total_hours": {
- "hours": 35,
- "minutes": 13
}, - "type": "regular_hours",
- "weekend_hours": {
- "hours": 35,
- "minutes": 13
}
}
], - "total_hours": {
- "hours": 35,
- "minutes": 13
}, - "weekend_hours": {
- "hours": 35,
- "minutes": 13
}
}
}
}
Lists all timesheets.
status | string (TimesheetStatus) Enum: "open" "submitted" "approved" "in_calibration" "processed" Example: status=submitted Filter timesheets by their status |
order | string Enum: "asc" "desc" Example: order=asc Sort order |
sort_by | string Value: "submitted_at" Example: sort_by=submitted_at Field to sort by |
page | integer >= 1 Default: 1 Example: page=1 Starts fetching records after the given page |
page_size | integer [ 1 .. 100 ] Default: 20 Example: page_size=20 Number of items per page |
{- "current_page": 1,
- "timesheets": [
- {
- "approval_required": true,
- "break_hours": {
- "hours": 35,
- "minutes": 13
}, - "country_code": "PRT",
- "employment_id": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
- "end_date": "2021-07-01",
- "holiday_hours": {
- "hours": 35,
- "minutes": 13
}, - "id": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
- "night_hours": {
- "hours": 35,
- "minutes": 13
}, - "notes": "Some notes",
- "on_call_hours": {
- "hours": 35,
- "minutes": 13
}, - "overtime_hours": {
- "hours": 35,
- "minutes": 13
}, - "regular_hours": {
- "hours": 35,
- "minutes": 13
}, - "start_date": "2021-07-01",
- "status": "submitted",
- "submitted_at": "2021-07-15T18:18:17Z",
- "time_tracking": [
- {
- "clock_in": "2021-07-15T18:18:17Z",
- "clock_out": "2021-07-15T18:18:17Z",
- "has_holiday_hours": false,
- "has_night_hours": false,
- "has_weekend_hours": false,
- "holiday_hours": {
- "hours": 35,
- "minutes": 13
}, - "night_hours": {
- "hours": 35,
- "minutes": 13
}, - "notes": "Time tracking project.",
- "time_breakdown": {
- "day": {
- "holiday": {
- "hours": 35,
- "minutes": 13
}, - "regular": {
- "hours": 35,
- "minutes": 13
}, - "weekend": {
- "hours": 35,
- "minutes": 13
}
}, - "night": {
- "holiday": {
- "hours": 35,
- "minutes": 13
}, - "regular": {
- "hours": 35,
- "minutes": 13
}, - "weekend": {
- "hours": 35,
- "minutes": 13
}
}
}, - "timezone": "Etc/UTC",
- "total_hours": {
- "hours": 35,
- "minutes": 13
}, - "type": "regular_hours",
- "weekend_hours": {
- "hours": 35,
- "minutes": 13
}
}
], - "total_hours": {
- "hours": 35,
- "minutes": 13
}, - "weekend_hours": {
- "hours": 35,
- "minutes": 13
}
}
], - "total_count": 1,
- "total_pages": 1
}
Sends the given timesheet back to the employee for review or modification.
timesheet_id required | string Example: ec23ebda-4b7a-4dbd-9d79-bd1eec3f83c9 Timesheet ID |
SendBackTimesheetParams
sent_back_reason required | string |
{- "sent_back_reason": "Please review the timesheet."
}
{- "data": {
- "timesheet": {
- "id": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
- "sent_back": true,
- "sent_back_reason": "Please review the timesheet.",
- "status": "submitted"
}
}
}
Approves the given timesheet.
timesheet_id required | string Example: ec23ebda-4b7a-4dbd-9d79-bd1eec3f83c9 Timesheet ID |
{- "data": {
- "timesheet": {
- "approval_required": true,
- "country_code": "PRT",
- "employment_id": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
- "end_date": "2021-07-01",
- "id": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
- "notes": "Some notes",
- "start_date": "2021-07-01",
- "status": "submitted",
- "submitted_at": "2021-07-15T18:18:17Z"
}
}
}
Shows the current SSO Configuration for the company.
{- "data": {
- "audience_uri": "urn:auth:remote-sso:89c4fbb2-some-id-8e4b-280f8795bbd8",
- "domain": "yourcompanydomain1.com,yourcompanydomain2.com",
}
}
Creates the SSO Configuration for the company.
CreateSSOConfiguration
certificate required | string <binary> |
domain required | string |
identity_provider_url required | string |
{- "certificate": "c29tZSBjZXJ0aWZpY2F0ZSBleGFtcGxl...",
- "domain": "example.com",
- "identity_provider_url": "example.provider.com"
}
{- "data": {
- "audience_uri": "urn:auth:remote-sso:89c4fbb2-some-id-8e4b-280f8795bbd8",
- "certificate": "c29tZSBjZXJ0aWZpY2F0ZSBleGFtcGxl...",
- "domain": "example.com",
- "identity_provider_url": "example.provider.com",
}
}
This event is triggered whenever an incentive is deleted.
employment_id required | string |
event_type required | string |
incentive_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "incentive.deleted",
- "incentive_id": "129d02bc-dd6a-11ed-ac99-cb057df06a33"
}
This event is triggered whenever an incentive is updated.
employment_id required | string |
event_type required | string |
incentive_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "incentive.updated",
- "incentive_id": "129d02bc-dd6a-11ed-ac99-cb057df06a33"
}
This event is triggered whenever an incentive is paid
employment_id required | string |
event_type required | string |
incentive_id required | string |
{- "employment_id": "2610f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "incentive.paid",
- "incentive_id": "0078fcb5-b669-4e4a-b963-2a47744e75a1"
}
This event is triggered when an incentive is created
employment_id | string |
event_type | string |
incentive_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "incentive.created",
- "incentive_id": "129d02bc-dd6a-11ed-ac99-cb057df06a33"
}
This event is triggered when an incentive has its processing started
employment_id | string |
event_type | string |
incentive_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "incentive.processing_started",
- "incentive_id": "129d02bc-dd6a-11ed-ac99-cb057df06a33"
}
Lists all Incentives of a company
employment_id | string Example: employment_id=93t3j-employment-id-9suej43 Filter by Employment ID |
status | string Example: status=paid Filter by Incentive status |
recurring_incentive_id | string Example: recurring_incentive_id=2f900aaf-4952-4ec4-ac7c-2b917a2b4da9 Filter by Recurring Incentive id |
page | integer Example: page=1 Starts fetching records after the given page |
page_size | integer Example: page_size=30 Change the amount of records returned per page, defaults to 20, limited to 100 |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "current_page": 1,
- "incentives": [
- {
- "amount": 50000,
- "amount_tax_type": "net",
- "effective_date": "2021-12-20",
- "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
- "expected_payout_date": "2021-12-31",
- "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
- "note": "Signing bonus",
- "recurring_incentive_id": "1c130827-f95c-4495-b7cb-5876dce686b8",
- "status": "pending",
- "type": "signing_bonus"
}
], - "total_count": 1,
- "total_pages": 1
}
Creates an Incentive.
Incentives use the currency of the employment specified provided in the employment_id
field.
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
Incentive
amount required | integer The amount (in the currency of the employment) to be given to the employee. This field accepts fractional amounts as well. However to avoid precision issues and errors that can arise from storing fractional amounts, the Remote API only accepts currencies and their fractional amounts as integers. This means you should append fractional amounts to the end of the amount you're passing in with this field. For example, if the incentive you're offering is EUR 500.25, you would specify |
amount_tax_type required | string (AmountTaxType) Enum: "gross" "net" Whether the amount given accounts for taxes or not. |
effective_date required | string <date> The date at which the incentive should take effect. Note that the incentive is not paid out on the effective date, but during the next payroll cycle. The effective date determines which payroll cycle the incentive will be paid out in. The effective date needs to be today or a future date. Note for recurring incentives: since the months don't have the same amount of days,
if day of month of |
note | string or null |
employment_id required | string |
type required | string Enum: "acting_up_allowance" "allowance" "car_allowance" "health_and_wellness_allowance" "internet_allowance" "meal_allowance" "on_call_allowance" "parenthood_allowance" "phone_allowance" "relocation_allowance" "travel_allowance" "work_from_home_allowance" "bonus" "holiday_bonus" "referral_bonus" "retention_bonus" "commission" "other" "overtime" "stipend" "signing_bonus" |
{- "amount": 50000,
- "amount_tax_type": "net",
- "effective_date": "2021-12-20",
- "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
- "note": "Bonus for moving start date to an earlier date",
- "type": "signing_bonus"
}
{- "data": {
- "incentive": {
- "amount": 50000,
- "amount_tax_type": "net",
- "effective_date": "2021-12-20",
- "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
- "expected_payout_date": "2021-12-31",
- "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
- "note": "Signing bonus",
- "recurring_incentive_id": "1c130827-f95c-4495-b7cb-5876dce686b8",
- "status": "pending",
- "type": "signing_bonus"
}
}
}
Delete an incentive.
one_time
incentives that have the following status CANNOT be deleted:
processing
paid
id required | string Incentive ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "status": "ok"
}
}
Show an Incentive's details
id required | string Incentive ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "incentive": {
- "amount": 50000,
- "amount_tax_type": "net",
- "effective_date": "2021-12-20",
- "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
- "expected_payout_date": "2021-12-31",
- "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
- "note": "Signing bonus",
- "recurring_incentive_id": "1c130827-f95c-4495-b7cb-5876dce686b8",
- "status": "pending",
- "type": "signing_bonus"
}
}
}
Updates an Incentive.
Incentives use the currency of the employment specified provided in the employment_id
field.
The API doesn't support updating paid incentives.
id required | string Incentive ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
Incentive
amount | integer The amount (in the currency of the employment) to be given to the employee. This field accepts fractional amounts as well. However to avoid precision issues and errors that can arise from storing fractional amounts, the Remote API only accepts currencies and their fractional amounts as integers. This means you should append fractional amounts to the end of the amount you're passing in with this field. For example, if the incentive you're offering is EUR 500.25, you would specify |
amount_tax_type | string (AmountTaxType) Enum: "gross" "net" Whether the amount given accounts for taxes or not. |
effective_date | string <date> The date at which the incentive should take effect. Note that the incentive is not paid out on the effective date, but during the next payroll cycle. The effective date determines which payroll cycle the incentive will be paid out in. The effective date needs to be today or a future date. Note for recurring incentives: since the months don't have the same amount of days,
if day of month of |
note | string or null |
type | string A valid type according to the payment frequency |
{- "amount": 50000,
- "amount_tax_type": "net",
- "effective_date": "2021-12-20",
- "note": "Bonus for moving start date to an earlier date",
- "type": "signing_bonus"
}
{- "data": {
- "incentive": {
- "amount": 50000,
- "amount_tax_type": "net",
- "effective_date": "2021-12-20",
- "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
- "expected_payout_date": "2021-12-31",
- "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
- "note": "Signing bonus",
- "recurring_incentive_id": "1c130827-f95c-4495-b7cb-5876dce686b8",
- "status": "pending",
- "type": "signing_bonus"
}
}
}
Updates an Incentive.
Incentives use the currency of the employment specified provided in the employment_id
field.
The API doesn't support updating paid incentives.
id required | string Incentive ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
Incentive
amount | integer The amount (in the currency of the employment) to be given to the employee. This field accepts fractional amounts as well. However to avoid precision issues and errors that can arise from storing fractional amounts, the Remote API only accepts currencies and their fractional amounts as integers. This means you should append fractional amounts to the end of the amount you're passing in with this field. For example, if the incentive you're offering is EUR 500.25, you would specify |
amount_tax_type | string (AmountTaxType) Enum: "gross" "net" Whether the amount given accounts for taxes or not. |
effective_date | string <date> The date at which the incentive should take effect. Note that the incentive is not paid out on the effective date, but during the next payroll cycle. The effective date determines which payroll cycle the incentive will be paid out in. The effective date needs to be today or a future date. Note for recurring incentives: since the months don't have the same amount of days,
if day of month of |
note | string or null |
type | string A valid type according to the payment frequency |
{- "amount": 50000,
- "amount_tax_type": "net",
- "effective_date": "2021-12-20",
- "note": "Bonus for moving start date to an earlier date",
- "type": "signing_bonus"
}
{- "data": {
- "incentive": {
- "amount": 50000,
- "amount_tax_type": "net",
- "effective_date": "2021-12-20",
- "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
- "expected_payout_date": "2021-12-31",
- "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
- "note": "Signing bonus",
- "recurring_incentive_id": "1c130827-f95c-4495-b7cb-5876dce686b8",
- "status": "pending",
- "type": "signing_bonus"
}
}
}
This event is triggered whenever a contract amendment request status is updated to 'in review'.
employment_id required | string |
event_type required | string |
employment_request_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "employment_request_id": "129d02bc-dd6a-11ed-ac99-cb057df06a33",
- "event_type": "contract_amendment.review_started"
}
This event is triggered whenever a contract amendment status is updated to done.
employment_id required | string |
event_type required | string |
employment_request_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "employment_request_id": "129d02bc-dd6a-11ed-ac99-cb057df06a33",
- "event_type": "contract_amendment.done"
}
This event is triggered whenever a contract amendment request status is updated to canceled.
employment_id required | string |
event_type required | string |
employment_request_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "employment_request_id": "129d02bc-dd6a-11ed-ac99-cb057df06a33",
- "event_type": "contract_amendment.canceled"
}
This event is triggered whenever a contract amendment request status is updated to submitted.
employment_id required | string |
event_type required | string |
employment_request_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "employment_request_id": "129d02bc-dd6a-11ed-ac99-cb057df06a33",
- "event_type": "contract_amendment.submitted"
}
This event is triggered whenever a contract amendment request status is updated to deleted.
employment_id required | string |
event_type required | string |
employment_request_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "employment_request_id": "129d02bc-dd6a-11ed-ac99-cb057df06a33",
- "event_type": "contract_amendment.deleted"
}
List Contract Amendment requests.
employment_id | string Employment ID |
status | string (ContractAmendmentStatus) Enum: "submitted" "in_review" "done" "canceled" "deleted" Example: status=submitted Contract Amendment status |
page | integer >= 1 Default: 1 Example: page=1 Starts fetching records after the given page |
page_size | integer [ 1 .. 100 ] Default: 20 Example: page_size=20 Number of items per page |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "contract_amendments": [
- {
- "employment_id": "1e74fdc2-7420-4eef-ab0a-b794cbbef4e1",
- "id": "ba310525-9282-40c9-8977-14d844bf891a",
- "job_title": "Engineer",
- "reason_for_change": "annual_pay_adjustment",
- "requested_by": "5a31f3c1-d7a7-4311-89cb-928959d3d540",
- "requested_effective_date": "2023-04-13T13:35:06Z",
- "status": "submitted",
- "submitted_at": "2023-04-13T13:35:06Z"
}
], - "current_page": 1,
- "total_count": 1,
- "total_pages": 1
}
Creates a Contract Amendment request.
This endpoint requires and returns country-specific data. The exact required and returned fields will vary depending on which country the employment is in. To see the list of parameters for each country, see the Show form schema endpoint under the Contract Amendments category.
Please note that the compliance requirements for each country are subject to change according to local laws. Given its continual updates, using Remote's json-schema-form should be considered in order to avoid compliance issues and to have the latest version of a country requirements.
If you are using this endpoint to build an integration, make sure you are dynamically collecting or displaying the latest parameters for each country by querying the "Show form schema" endpoint.
For more information on JSON Schemas, see the How JSON Schemas work documentation.
To learn how you can dynamically generate forms to display in your UI, see the documentation for the json-schema-form tool.
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
Contract Amendment
amendment_contract_id required | string The contract ID of the contract that needs to be amended. |
contract_amendment required | object Contract amendment informations. As its properties may vary depending on the country,
you must query the Show form schema endpoint
passing the country code, |
employment_id required | string The employment ID that is related to the contract amendment request. |
{- "amendment_contract_id": "c15993d8-aa8a-4fbb-b395-8b7a54f57db1",
- "contract_amendment": { },
- "employment_id": "e31adae1-company-id-af5fba7dd803"
}
{- "data": {
- "contract_amendment": {
- "amendment_contract_id": "8772a9f1-b43c-46be-a1ce-e50b6819f5ee",
- "changes": {
- "compensation.amount": {
- "current": 500000,
- "previous": 400000
}, - "contract.job_title": {
- "current": "A new job title",
- "previous": "An old job title"
}, - "contract_details.details.contract_duration_type": {
- "current": "fixed_term",
- "previous": "indefinite"
}
}, - "employment_id": "1e74fdc2-7420-4eef-ab0a-b794cbbef4e1",
- "id": "ba310525-9282-40c9-8977-14d844bf891a",
- "requested_by": "5a31f3c1-d7a7-4311-89cb-928959d3d540",
- "requested_details": {
- "additional_comments": null,
- "effective_date": "2024-03-04",
- "reason_for_change": "annual_pay_adjustment",
- "reason_for_change_description": null,
- "salary_decrease_details": null
}, - "status": "submitted",
- "submitted_at": "2023-04-13T13:35:06Z",
}
}
}
Show a single Contract Amendment request.
id required | string Example: 93t3j-contract_amendment_id-9suej43 Contract amendment request ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "contract_amendment": {
- "amendment_contract_id": "8772a9f1-b43c-46be-a1ce-e50b6819f5ee",
- "changes": {
- "compensation.amount": {
- "current": 500000,
- "previous": 400000
}, - "contract.job_title": {
- "current": "A new job title",
- "previous": "An old job title"
}, - "contract_details.details.contract_duration_type": {
- "current": "fixed_term",
- "previous": "indefinite"
}
}, - "employment_id": "1e74fdc2-7420-4eef-ab0a-b794cbbef4e1",
- "id": "ba310525-9282-40c9-8977-14d844bf891a",
- "requested_by": "5a31f3c1-d7a7-4311-89cb-928959d3d540",
- "requested_details": {
- "additional_comments": null,
- "effective_date": "2024-03-04",
- "reason_for_change": "annual_pay_adjustment",
- "reason_for_change_description": null,
- "salary_decrease_details": null
}, - "status": "submitted",
- "submitted_at": "2023-04-13T13:35:06Z",
}
}
}
Check if a contract amendment request is automatable. If the contract amendment request is automatable, then after submission, it will instantly amend the employee's contract and send them an updated document.
This endpoint requires and returns country-specific data. The exact required and returned fields will vary depending on which country the employment is in. To see the list of parameters for each country, see the Show form schema endpoint under the Contract Amendments category.
Please note that the compliance requirements for each country are subject to change according to local laws. Given its continual updates, using Remote's json-schema-form should be considered in order to avoid compliance issues and to have the latest version of a country requirements.
If you are using this endpoint to build an integration, make sure you are dynamically collecting or displaying the latest parameters for each country by querying the "Show form schema" endpoint.
For more information on JSON Schemas, see the How JSON Schemas work documentation.
To learn how you can dynamically generate forms to display in your UI, see the documentation for the json-schema-form tool.
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
Contract Amendment
amendment_contract_id required | string The contract ID of the contract that needs to be amended. |
contract_amendment required | object Contract amendment informations. As its properties may vary depending on the country,
you must query the Show form schema endpoint
passing the country code, |
employment_id required | string The employment ID that is related to the contract amendment request. |
{- "amendment_contract_id": "c15993d8-aa8a-4fbb-b395-8b7a54f57db1",
- "contract_amendment": { },
- "employment_id": "e31adae1-company-id-af5fba7dd803"
}
{- "data": {
- "automatable": true,
- "message": "string"
}
}
Returns the json schema of the contract_amendment
form for a specific employment.
This endpoint requires a company access token, as forms are dependent on certain
properties of companies and their current employments.
employment_id required | string Example: employment_id=31b8e49b-aa1c-47af-849c-3d0a53e20e0d The ID of the employment concerned by the contract amendment request. |
country_code required | string Example: country_code=CAN Country code according to ISO 3-digit alphabetic codes. |
form | string Value: "contract_amendment" Example: form=contract_amendment Name of the desired form |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "additionalProperties": false,
- "properties": {
- "effective_date": {
- "description": "If you want to backdate this amendment, we cannot guarantee your preferred date is possible due to country-specific laws.\nPlease enter your preferred date, and we’ll reach out to you if there are any issues.\n",
- "title": "Effective date of change",
- "type": "date"
}, - "job_title": {
- "description": "What is their job title? E.g. Product designer",
- "maxLength": 255,
- "title": "Job title",
- "type": "string"
}
}, - "required": [
- "job_title",
- "effective_date"
], - "type": "object"
}
}
This event is triggered whenever a new contract becomes active for an employment.
employment_id required | string |
event_type required | string |
contract_id required | string |
{- "contract_id": "ba310525-9282-40c9-8977-14d844bf891a",
- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "employment_contract.active_contract_updated"
}
Get all the pending changes (waiting for aproval or signature) for the employment contract.
employment_id required | string Example: 93t3j-employment_id-9suej43 Employment ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "pending_changes": [
- {
- "changes": {
- "contract.job_title": {
- "current": "Senior Engineer",
- "previous": "Engineer"
}
}, - "contract_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
- "effective_at": "2021-07-15T18:18:17Z"
}
]
}
}
Get the employment contract history (list of all contracts active or not) for a given employment.
employment_id required | string Example: employment_id=93t3j-employment_id-9suej43 Employment ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "employment_contracts": [
- {
- "activated_at": "2021-07-15T18:18:17Z",
- "amendment_contract_id": "e31adae1-contract-id-af5fba7dd803",
- "compensation": {
- "amount": 33000,
- "currency_code": "CAD"
}, - "contract_details": { },
- "contract_id": "20a72f86-contract-id-9e4942a902ff",
- "country": {
- "code": "CAN",
- "name": "Canada"
}, - "effective_at": "2021-07-15T18:18:17Z",
- "job_title": "Engineer",
- "status": "active"
}
]
}
}
This event is triggered when a travel letter authorization is declined by remote
employment_id required | string |
event_type required | string |
travel_letter_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "travel_letter.declined_by_remote",
- "travel_letter_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
This event is triggered when a travel letter authorization is approved by a manager
employment_id required | string |
event_type required | string |
travel_letter_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "travel_letter.approved_by_manager",
- "travel_letter_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
This event is triggered when a travel letter authorization is approved by remote
employment_id required | string |
event_type required | string |
travel_letter_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "travel_letter.approved_by_remote",
- "travel_letter_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
This event is triggered when a travel letter authorization is declined by a manager
employment_id required | string |
event_type required | string |
travel_letter_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "travel_letter.declined_by_manager",
- "travel_letter_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
This event is triggered when a travel letter authorization is requested
employment_id required | string |
event_type required | string |
travel_letter_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "travel_letter.requested",
- "travel_letter_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
Show a single travel letter request.
id required | string <uuid> (UuidSlug) Example: 93t3j-travel_letter_id-9suej43 travel letter request ID |
{- "data": {
- "travel_letter_request": {
- "additional_information": "Some additional information",
- "destination_country": {
- "alpha_2_code": "PT",
- "code": "PRT",
- "country_subdivisions": [
- {
- "code": "PT-06",
- "name": "Coimbra",
- "subdivision_type": "District"
}, - {
- "code": "PT-11",
- "name": "Lisboa",
- "subdivision_type": "District"
}
], - "name": "Portugal",
- "region": "Europe",
- "subregion": "Southern Europe",
- "supported_json_schemas": [
- "additional_documents",
- "address_details",
- "administrative_details",
- "employment-basic-information",
- "bank_account_details",
- "contract_details",
- "emergency_contact"
]
}, - "embassy_address": "some embassy address",
- "employer_approver": {
- "email": "user0@company.com",
- "id": "93aaf0b3-1d79-4d2c-8d47-3d5406727d70",
- "name": "User Name"
}, - "employer_special_instructions": "Some special instruction",
- "id": "f4b4369e-cb29-47f0-a608-afd5e19a2102",
- "reason": "Some reason",
- "requires_travel_address": false,
- "responsible_for_accommodation_cost": "employee",
- "responsible_for_meal_cost": "employee",
- "responsible_for_travel_cost": "employee",
- "status": "pending",
- "submitted_at": "2021-07-15T18:18:17Z",
- "travel_address": "Some travel address",
- "travel_date_end": "2021-07-01",
- "travel_date_start": "2021-07-01",
- "travel_document_number": "FC123456",
- "travel_reason": "Some travel reason",
- "travel_reason_details": "Some details",
- "user": {
- "email": "user0@company.com",
- "id": "93aaf0b3-1d79-4d2c-8d47-3d5406727d70",
- "name": "User Name"
}
}
}
}
Updates a travel letter request
id required | string Example: 3ab2e491-ad1c-47af-849c-3d0a53e20e0d Travel letter Request ID |
Travel letter Request
employer_special_instructions | string or null |
responsible_for_accommodation_cost required | string Enum: "employee" "employer" |
responsible_for_meal_cost required | string Enum: "employee" "employer" |
responsible_for_travel_cost required | string Enum: "employee" "employer" |
status required | string Value: "approved_by_manager" |
{- "employer_special_instructions": "some special instruction",
- "responsible_for_accommodation_cost": "employee",
- "responsible_for_meal_cost": "employee",
- "responsible_for_travel_cost": "employee",
- "status": "approved_by_manager"
}
{- "data": {
- "travel_letter_request": {
- "additional_information": "Some additional information",
- "destination_country": {
- "alpha_2_code": "PT",
- "code": "PRT",
- "country_subdivisions": [
- {
- "code": "PT-06",
- "name": "Coimbra",
- "subdivision_type": "District"
}, - {
- "code": "PT-11",
- "name": "Lisboa",
- "subdivision_type": "District"
}
], - "name": "Portugal",
- "region": "Europe",
- "subregion": "Southern Europe",
- "supported_json_schemas": [
- "additional_documents",
- "address_details",
- "administrative_details",
- "employment-basic-information",
- "bank_account_details",
- "contract_details",
- "emergency_contact"
]
}, - "embassy_address": "some embassy address",
- "employer_approver": {
- "email": "user0@company.com",
- "id": "93aaf0b3-1d79-4d2c-8d47-3d5406727d70",
- "name": "User Name"
}, - "employer_special_instructions": "Some special instruction",
- "id": "f4b4369e-cb29-47f0-a608-afd5e19a2102",
- "reason": "Some reason",
- "requires_travel_address": false,
- "responsible_for_accommodation_cost": "employee",
- "responsible_for_meal_cost": "employee",
- "responsible_for_travel_cost": "employee",
- "status": "pending",
- "submitted_at": "2021-07-15T18:18:17Z",
- "travel_address": "Some travel address",
- "travel_date_end": "2021-07-01",
- "travel_date_start": "2021-07-01",
- "travel_document_number": "FC123456",
- "travel_reason": "Some travel reason",
- "travel_reason_details": "Some details",
- "user": {
- "email": "user0@company.com",
- "id": "93aaf0b3-1d79-4d2c-8d47-3d5406727d70",
- "name": "User Name"
}
}
}
}
Updates a travel letter request
id required | string Example: 3ab2e491-ad1c-47af-849c-3d0a53e20e0d Travel letter Request ID |
Travel letter Request
employer_special_instructions | string or null |
responsible_for_accommodation_cost required | string Enum: "employee" "employer" |
responsible_for_meal_cost required | string Enum: "employee" "employer" |
responsible_for_travel_cost required | string Enum: "employee" "employer" |
status required | string Value: "approved_by_manager" |
{- "employer_special_instructions": "some special instruction",
- "responsible_for_accommodation_cost": "employee",
- "responsible_for_meal_cost": "employee",
- "responsible_for_travel_cost": "employee",
- "status": "approved_by_manager"
}
{- "data": {
- "travel_letter_request": {
- "additional_information": "Some additional information",
- "destination_country": {
- "alpha_2_code": "PT",
- "code": "PRT",
- "country_subdivisions": [
- {
- "code": "PT-06",
- "name": "Coimbra",
- "subdivision_type": "District"
}, - {
- "code": "PT-11",
- "name": "Lisboa",
- "subdivision_type": "District"
}
], - "name": "Portugal",
- "region": "Europe",
- "subregion": "Southern Europe",
- "supported_json_schemas": [
- "additional_documents",
- "address_details",
- "administrative_details",
- "employment-basic-information",
- "bank_account_details",
- "contract_details",
- "emergency_contact"
]
}, - "embassy_address": "some embassy address",
- "employer_approver": {
- "email": "user0@company.com",
- "id": "93aaf0b3-1d79-4d2c-8d47-3d5406727d70",
- "name": "User Name"
}, - "employer_special_instructions": "Some special instruction",
- "id": "f4b4369e-cb29-47f0-a608-afd5e19a2102",
- "reason": "Some reason",
- "requires_travel_address": false,
- "responsible_for_accommodation_cost": "employee",
- "responsible_for_meal_cost": "employee",
- "responsible_for_travel_cost": "employee",
- "status": "pending",
- "submitted_at": "2021-07-15T18:18:17Z",
- "travel_address": "Some travel address",
- "travel_date_end": "2021-07-01",
- "travel_date_start": "2021-07-01",
- "travel_document_number": "FC123456",
- "travel_reason": "Some travel reason",
- "travel_reason_details": "Some details",
- "user": {
- "email": "user0@company.com",
- "id": "93aaf0b3-1d79-4d2c-8d47-3d5406727d70",
- "name": "User Name"
}
}
}
}
List travel letter requests.
status | string Enum: "pending" "cancelled" "declined_by_manager" "declined_by_remote" "approved_by_manager" "approved_by_remote" Filter results on the given status |
employment_id | string Filter results on the given employment slug |
employee_name | string Filter results on the given employee name |
order | string Enum: "asc" "desc" Example: order=asc Sort order |
sort_by | string Value: "submitted_at" Example: sort_by=submitted_at Field to sort by |
page | integer >= 1 Default: 1 Example: page=1 Starts fetching records after the given page |
page_size | integer [ 1 .. 100 ] Default: 20 Example: page_size=20 Number of items per page |
{- "current_page": 1,
- "total_count": 1,
- "total_pages": 1,
- "travel_letter_requests": [
- {
- "additional_information": "Some additional information",
- "destination_country": {
- "alpha_2_code": "PT",
- "code": "PRT",
- "country_subdivisions": [
- {
- "code": "PT-06",
- "name": "Coimbra",
- "subdivision_type": "District"
}, - {
- "code": "PT-11",
- "name": "Lisboa",
- "subdivision_type": "District"
}
], - "name": "Portugal",
- "region": "Europe",
- "subregion": "Southern Europe",
- "supported_json_schemas": [
- "additional_documents",
- "address_details",
- "administrative_details",
- "employment-basic-information",
- "bank_account_details",
- "contract_details",
- "emergency_contact"
]
}, - "embassy_address": "some embassy address",
- "employer_approver": {
- "email": "user0@company.com",
- "id": "93aaf0b3-1d79-4d2c-8d47-3d5406727d70",
- "name": "User Name"
}, - "employer_special_instructions": "Some special instruction",
- "id": "f4b4369e-cb29-47f0-a608-afd5e19a2102",
- "reason": "Some reason",
- "requires_travel_address": false,
- "responsible_for_accommodation_cost": "employee",
- "responsible_for_meal_cost": "employee",
- "responsible_for_travel_cost": "employee",
- "status": "pending",
- "submitted_at": "2021-07-15T18:18:17Z",
- "travel_address": "Some travel address",
- "travel_date_end": "2021-07-01",
- "travel_date_start": "2021-07-01",
- "travel_document_number": "FC123456",
- "travel_reason": "Some travel reason",
- "travel_reason_details": "Some details",
- "user": {
- "email": "user0@company.com",
- "id": "93aaf0b3-1d79-4d2c-8d47-3d5406727d70",
- "name": "User Name"
}
}
]
}
This event is triggered when a payslip is ready and available for an employee.
employment_id required | string |
event_type required | string |
payslip_id required | string |
{- "employment_id": "45b34922-2590-43a0-ac05-ad23834adb8f",
- "event_type": "payslip.released",
- "payslip_id": "86e56288-ca62-11ed-9702-a703c40b6c0d"
}
Lists all payslips belonging to a company. Can also filter for a single employment belonging to that company.
employment_id | string Example: employment_id=93t3j-employment-id-9suej43 Employment ID |
start_date | string Example: start_date="2022-12-15" Filters by payslips |
end_date | string Example: end_date="2023-12-15" Filters by payslips |
expected_payout_start_date | string Example: expected_payout_start_date="2022-12-15" Filters by payslips |
expected_payout_end_date | string Example: expected_payout_end_date="2023-12-15" Filters by payslips |
page | integer Example: page=1 Starts fetching records after the given page |
page_size | integer Example: page_size=30 Change the amount of records returned per page, defaults to 20, limited to 100 |
{- "current_page": 1,
- "payslips": [
- {
- "employment_id": "98d3f-employment-id-1oi45n",
- "expected_payout_date": "2021-07-01",
- "id": "93t3j-employment-id-9suej43",
- "issued_at": "2021-07-01",
- "net_pay_converted_amount": 1500000,
- "net_pay_source_amount": 1000000
}
], - "total_count": 1,
- "total_pages": 1
}
Given an ID, shows a payslip.
Please contact api-support@remote.com to request access to this endpoint.
id required | string Example: 93t3j-payslip-id-9suej43 Payslip ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "payslips": {
- "employment_id": "98d3f-employment-id-1oi45n",
- "expected_payout_date": "2021-07-01",
- "id": "93t3j-employment-id-9suej43",
- "issued_at": "2021-07-01",
- "net_pay_converted_amount": 1500000,
- "net_pay_source_amount": 1000000
}
}
}
Given a Payslip ID, downloads a payslip. It is important to note that each country has a different payslip format and they are not authored by Remote.
payslip_id required | string Example: 93t3j-payslip-id-9suej43 Payslip ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
"string"
This event is triggered when an employment probation completion letter request is submitted
employment_id required | string |
event_type required | string |
probation_completion_letter_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "employment.probation_completion_letter.submitted",
- "probation_completion_letter_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
This event is triggered when the probation completion letter request is cancelled.
employment_id required | string |
event_type required | string |
probation_completion_letter_request_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "employment.probation_completion_letter.cancelled",
- "probation_completion_letter_request_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
This event is triggered when an employment probation completion letter request is completed
employment_id required | string |
event_type required | string |
probation_completion_letter_request_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "employment.probation_completion_letter.completed",
- "probation_completion_letter_request_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
Create a new probation completion letter request.
Work Authorization Request
employment_id required | string The employment ID. |
{- "employment_id": "f4e2f1fe-2056-4d9f-b9e0-ea322b781eb7"
}
{- "data": {
- "probation_completion_letter_request": {
- "employment_id": "c7ee6462-a9cf-4a69-9806-5906b975f616",
- "id": "f4e2f1fe-2056-4d9f-b9e0-ea322b781eb7",
- "letter": {
- "id": "f4e2f1fe-2056-4d9f-b9e0-ea322b781eb7",
- "inserted_at": "2021-01-01T00:00:00Z",
- "name": "2024-05-29_Hero8_ProbationConfirmationLetter.pdf",
- "sub_type": "probation_completion_letter",
- "type": "contract"
}, - "status": "submitted",
- "submitted_at": "2021-07-15T18:18:17Z",
}
}
}
Show a single probation completion letter.
id required | string Example: 93t3j-probation_completion_letter_id-9suej43 probation completion letter ID |
{- "data": {
- "probation_completion_letter_request": {
- "employment_id": "c7ee6462-a9cf-4a69-9806-5906b975f616",
- "id": "f4e2f1fe-2056-4d9f-b9e0-ea322b781eb7",
- "letter": {
- "id": "f4e2f1fe-2056-4d9f-b9e0-ea322b781eb7",
- "inserted_at": "2021-01-01T00:00:00Z",
- "name": "2024-05-29_Hero8_ProbationConfirmationLetter.pdf",
- "sub_type": "probation_completion_letter",
- "type": "contract"
}, - "status": "submitted",
- "submitted_at": "2021-07-15T18:18:17Z",
}
}
}
This event is triggered when the start date of an employment is changed
employment_id required | string |
event_type required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "employment.start_date.changed"
}
This event is triggered when an employment onboarding is completed and the
employment is set to active
.
An onboarding is considered complete when the employee finishes their self-enrollment and has completed all the onboarding tasks assigned to them (Personal profile, Administrative details, Emergency contact, Supporting documentation, etc).
employment_id required | string |
event_type required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "employment.onboarding.completed"
}
This event is triggered whenever an employment personal details is updated. Personal details includes personal informations, home address and emergency contact.
employment_id required | string |
event_type required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "employment.personal_information.updated"
}
This event is triggered when an employee probation period is nearing it's end, it is triggered 30 days and 7 days before the probation period ends.
probation_period_end_date required | string |
employment_id required | string |
event_type required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "employment.probation.period_ending_reminder_sent",
- "probation_period_end_date": "2030-02-01"
}
This event is triggered whenever an employment user is updated to the active status.
employment_id required | string |
event_type required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "employment.user_status.activated"
}
This event is triggered when an employment is no longer eligible for onboarding cancellation.
employment_slug required | string |
{- "employment_slug": "ba310525-9282-40c9-8977-14d844bf891a"
}
This event is triggered when an employment onboarding is cancelled.
employment_id required | string |
event_type required | string |
{- "employment_id": "f8e9d2c7-3a1b-4f5c-9e6d-8b7a2c1d0e3f",
- "event_type": "employment.onboarding.cancelled"
}
This event is triggered whenever an employment department
or manager
is updated.
employment_id required | string |
event_type required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "employment.details.updated"
}
This event is triggered everytime an employment onboarding task (Personal profile, Administrative details, Emergency contact, Supporting documentation, etc) is completed by an employee during the self-enrollment.
company_id required | string |
employment_id required | string |
event_type required | string |
object |
{- "company_id": "97c7ce7e-ca67-11ed-bce5-3bb70cbb9f9e",
- "completed_task": {
- "action": "administrative_details",
- "completed_at": "2023-03-23T03:21:23Z",
- "description": "description for administrative details",
- "name": "Administrative details",
- "required": true,
- "status": "completed"
}, - "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "employment.onboarding_task.completed"
}
This event is triggered when a invoice report is created for a employment.
company_id required | string |
employment_id required | string |
event_type required | string |
invoice_report_id required | string |
{- "company_id": "f2a1b3c4-d5e6-7f8g-9h0i-j1k2l3m4n5o6",
- "employment_id": "f8e9d2c7-3a1b-4f5c-9e6d-8b7a2c1d0e3f",
- "event_type": "employment.eor_hiring.invoice_created",
- "invoice_report_id": "c7f8e9d2-3a1b-4f5c-9e6d-8b7a2c1d0e3f"
}
This event is triggered whenever an employment user is updated to the inactive status.
employment_id required | string |
event_type required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "employment.user_status.deactivated"
}
This event is triggered when a proof of payment is accepted.
company_id required | string |
employment_id required | string |
event_type required | string |
proof_of_payment_id required | string |
{- "company_id": "f2a1b3c4-d5e6-7f8g-9h0i-j1k2l3m4n5o6",
- "employment_id": "f8e9d2c7-3a1b-4f5c-9e6d-8b7a2c1d0e3f",
- "event_type": "employment.eor_hiring.proof_of_payment_accepted",
- "proof_of_payment_id": "c7f8e9d2-3a1b-4f5c-9e6d-8b7a2c1d0e3f"
}
This event is triggered when an employment agreement is available for a user
employment_id required | string |
event_type required | string |
file_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "employment.employment_agreement.available",
- "file_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
This event is triggered whenever an employment account email is updated.
employment_id required | string |
event_type required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "employment.account.updated"
}
Shows all the information of an employment.
This endpoint requires and returns country-specific data. The exact required and returned fields will vary depending on which country the employment is in. To see the list of parameters for each country, see the Show form schema endpoint under the Countries category.
Please note that the compliance requirements for each country are subject to change according to local laws. Given its continual updates, using Remote's json-schema-form should be considered in order to avoid compliance issues and to have the latest version of a country requirements.
If you are using this endpoint to build an integration, make sure you are dynamically collecting or displaying the latest parameters for each country by querying the "Show form schema" endpoint.
For more information on JSON Schemas, see the How JSON Schemas work documentation.
To learn how you can dynamically generate forms to display in your UI, see the documentation for the json-schema-form tool.
employment_id required | string Example: 93t3j-employment-id-9suej43 Employment ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "employment": {
- "address_details": { },
- "administrative_details": { },
- "bank_account_details": [ ],
- "basic_information": { },
- "billing_address_details": { },
- "company_id": "e31adae1-company-id-af5fba7dd803",
- "contract_details": { },
- "country": {
- "code": "AUT",
- "name": "Austria"
}, - "created_at": "2021-11-11T18:44:39",
- "eligible_for_onboarding_cancellation": true,
- "emergency_contact_details": { },
- "files": [ ],
- "full_name": "Jane Smith",
- "id": "20a72f86-employment-id-9e4942a902ff",
- "job_title": "Engineer",
- "manager": "John Doe",
- "manager_email": "john.doe@company.com",
- "manager_employment_id": "20a72f86-employment-id-9e4942a902ff",
- "onboarding_tasks": {
- "address_details": {
- "description": "Primary residence.",
- "status": "completed"
}, - "administrative_details": {
- "description": "Information we need for tax purposes.",
- "status": "completed"
}, - "bank_account_details": {
- "description": "Bank account used for receiving salary payments.",
- "status": "completed"
}, - "billing_address_details": {
- "description": "Address associated with the employee's bank account.",
- "status": "completed"
}, - "contract_details": {
- "description": "Employee-specific details for their employment agreement.",
- "status": "completed"
}, - "emergency_contact_details": {
- "description": "Who should be called in an emergency.",
- "status": "completed"
}, - "employment_document_details": {
- "description": "We need some additional documents.",
- "status": "pending"
}, - "personal_details": {
- "description": "Personal details, such as name and date of birth.",
- "status": "completed"
}, - "pricing_plan_details": {
- "description": "How often Remote will bill employers for management fees.",
- "status": "completed"
}
}, - "personal_details": { },
- "personal_email": "jane@smith.com",
- "pricing_plan_details": {
- "frequency": "annually"
}, - "provisional_start_date": "2021-07-03",
- "status": "created",
- "type": "employee",
- "updated_at": "2021-11-11T18:44:39",
- "user_status": "active",
- "work_email": "jane.smith@company.com"
}
}
}
Updates an employment.
For created
employments: You can change all basic params and onboarding tasks or perform a per onboarding task update. You can also update basic_information.
For active
employments: You can update the manager (manager_id
field), emergency_contact_details and address_details.
This endpoint requires and returns country-specific data. The exact required and returned fields will vary depending on which country the employment is in. To see the list of parameters for each country, see the Show form schema endpoint under the Countries category.
Please note that the compliance requirements for each country are subject to change according to local laws. Given its continual updates, using Remote's json-schema-form should be considered in order to avoid compliance issues and to have the latest version of a country requirements.
If you are using this endpoint to build an integration, make sure you are dynamically collecting or displaying the latest parameters for each country by querying the "Show form schema" endpoint.
For more information on JSON Schemas, see the How JSON Schemas work documentation.
To learn how you can dynamically generate forms to display in your UI, see the documentation for the json-schema-form tool.
When you submit the contract_details
and pricing_plan_details
, Remote should have all the required data to automatically
send an invite to the employee. You can tell if an automatic invite has been sent by looking at the employment_lifecycle_stage
field value. If its value is employee_self_enrollment
, it means the employee has received an email to join the Remote platform
at their personal_email
.
After an automatic invite is sent to an employee, you will not be able to update employment data through the Remote API.
After onboarding, only a limited set of employment data will be available for updates, such as emergency_contact_details
.
If you want to provide additional information for an employment, please make sure to do so before the employee is invited.
We block updates to some employment data because employees need to agree to amendments in certain cases,
such as when there are changes to their contract_details.
Currently, these amendments can only be done through the Remote UI.
Please contact Remote if you need to update contractors via API since it's currently not supported.
employment_id required | string Example: 93t3j-employment-id-9suej43 Employment ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
Employment params
address_details | object Home address information. As its properties may vary depending on the country,
you must query the Show form schema endpoint
passing the country code and |
administrative_details | object Administrative information. As its properties may vary depending on the country,
you must query the Show form schema endpoint
passing the country code and |
bank_account_details | object Bank account information. As its properties may vary depending on the country,
you must query the Show form schema endpoint
passing the country code and |
billing_address_details | object Billing address information. As its properties may vary depending on the country,
you must query the Show form schema endpoint
passing the country code and |
company_id | string |
contract_details | object Contract information. As its properties may vary depending on the country,
you must query the Show form schema endpoint
passing the country code and |
object (Country) A supported country on Remote | |
country_code required | string |
emergency_contact_details | object Emergency contact information. As its properties may vary depending on the country,
you must query the Show form schema endpoint
passing the country code and |
full_name required | string |
job_title required | string |
manager_id | string The user id of the manager, who should have an |
personal_details | object Personal details information. As its properties may vary depending on the country,
you must query the Show form schema endpoint
passing the country code and |
personal_email required | string |
object (PricingPlanDetails) Selected type of payment. | |
provisional_start_date | string <date> (ProvisionalStartDate) Indicates the expected start date of the employee or contractor. Required for employees, but optional for contractors. Date format is in ISO8601 without the time component. See the Date and Time Format documentation for more details on how the Remote API works with dates. |
seniority_date | string <date-time> (EmploymentSeniorityDate) The date the employee first started working for your company. If you don’t include a seniority date, the employee’s start date with Remote will be deemed as the start of the employee’s seniority. Example: Your employee started working for your company on Feb 1, 2022. On Aug 1, 2022, you transferred the employee to Remote and started managing them on the platform. Feb 1, 2022 would be their seniority date. Aug 1, 2022 would be their starting date. |
{- "address_details": { },
- "administrative_details": { },
- "bank_account_details": { },
- "billing_address_details": { },
- "company_id": "e31adae1-company-id-af5fba7dd803",
- "contract_details": { },
- "country": {
- "alpha_2_code": "PT",
- "code": "PRT",
- "country_subdivisions": [
- {
- "code": "PT-06",
- "name": "Coimbra",
- "subdivision_type": "District"
}, - {
- "code": "PT-11",
- "name": "Lisboa",
- "subdivision_type": "District"
}
], - "name": "Portugal",
- "region": "Europe",
- "subregion": "Southern Europe",
- "supported_json_schemas": [
- "additional_documents",
- "address_details",
- "administrative_details",
- "employment-basic-information",
- "bank_account_details",
- "contract_details",
- "emergency_contact"
]
}, - "country_code": "AUS",
- "emergency_contact_details": { },
- "full_name": "Jane Smith",
- "job_title": "Backend Engineer",
- "manager_id": "string",
- "personal_details": { },
- "personal_email": "jane@smith.com",
- "pricing_plan_details": {
- "frequency": "annually"
}, - "provisional_start_date": "2021-07-03",
- "seniority_date": "2022-03-21",
- "basic_information": {
- "email": "jane@smith.com",
- "has_seniority_date": "no",
- "job_title": "Backend Engineer",
- "name": "Jane Smith",
- "provisional_start_date": "2021-07-03"
}, - "department_id": "3bb56f01-3243-412b-bfaa-a5cfaaf2e431",
- "manager": "Taylor Johnson",
- "work_email": "jane.smith@company.com"
}
{- "data": {
- "employment": {
- "address_details": { },
- "administrative_details": { },
- "bank_account_details": [ ],
- "basic_information": { },
- "billing_address_details": { },
- "company_id": "e31adae1-company-id-af5fba7dd803",
- "contract_details": { },
- "country": {
- "code": "AUT",
- "name": "Austria"
}, - "created_at": "2021-11-11T18:44:39",
- "eligible_for_onboarding_cancellation": true,
- "emergency_contact_details": { },
- "files": [ ],
- "full_name": "Jane Smith",
- "id": "20a72f86-employment-id-9e4942a902ff",
- "job_title": "Engineer",
- "manager": "John Doe",
- "manager_email": "john.doe@company.com",
- "manager_employment_id": "20a72f86-employment-id-9e4942a902ff",
- "onboarding_tasks": {
- "address_details": {
- "description": "Primary residence.",
- "status": "completed"
}, - "administrative_details": {
- "description": "Information we need for tax purposes.",
- "status": "completed"
}, - "bank_account_details": {
- "description": "Bank account used for receiving salary payments.",
- "status": "completed"
}, - "billing_address_details": {
- "description": "Address associated with the employee's bank account.",
- "status": "completed"
}, - "contract_details": {
- "description": "Employee-specific details for their employment agreement.",
- "status": "completed"
}, - "emergency_contact_details": {
- "description": "Who should be called in an emergency.",
- "status": "completed"
}, - "employment_document_details": {
- "description": "We need some additional documents.",
- "status": "pending"
}, - "personal_details": {
- "description": "Personal details, such as name and date of birth.",
- "status": "completed"
}, - "pricing_plan_details": {
- "description": "How often Remote will bill employers for management fees.",
- "status": "completed"
}
}, - "personal_details": { },
- "personal_email": "jane@smith.com",
- "pricing_plan_details": {
- "frequency": "annually"
}, - "provisional_start_date": "2021-07-03",
- "status": "created",
- "type": "employee",
- "updated_at": "2021-11-11T18:44:39",
- "user_status": "active",
- "work_email": "jane.smith@company.com"
}
}
}
Updates an employment.
For created
employments: You can change all basic params and onboarding tasks or perform a per onboarding task update. You can also update basic_information.
For active
employments: You can update the manager (manager_id
field), emergency_contact_details and address_details.
This endpoint requires and returns country-specific data. The exact required and returned fields will vary depending on which country the employment is in. To see the list of parameters for each country, see the Show form schema endpoint under the Countries category.
Please note that the compliance requirements for each country are subject to change according to local laws. Given its continual updates, using Remote's json-schema-form should be considered in order to avoid compliance issues and to have the latest version of a country requirements.
If you are using this endpoint to build an integration, make sure you are dynamically collecting or displaying the latest parameters for each country by querying the "Show form schema" endpoint.
For more information on JSON Schemas, see the How JSON Schemas work documentation.
To learn how you can dynamically generate forms to display in your UI, see the documentation for the json-schema-form tool.
When you submit the contract_details
and pricing_plan_details
, Remote should have all the required data to automatically
send an invite to the employee. You can tell if an automatic invite has been sent by looking at the employment_lifecycle_stage
field value. If its value is employee_self_enrollment
, it means the employee has received an email to join the Remote platform
at their personal_email
.
After an automatic invite is sent to an employee, you will not be able to update employment data through the Remote API.
After onboarding, only a limited set of employment data will be available for updates, such as emergency_contact_details
.
If you want to provide additional information for an employment, please make sure to do so before the employee is invited.
We block updates to some employment data because employees need to agree to amendments in certain cases,
such as when there are changes to their contract_details.
Currently, these amendments can only be done through the Remote UI.
Please contact Remote if you need to update contractors via API since it's currently not supported.
employment_id required | string Example: 93t3j-employment-id-9suej43 Employment ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
Employment params
address_details | object Home address information. As its properties may vary depending on the country,
you must query the Show form schema endpoint
passing the country code and |
administrative_details | object Administrative information. As its properties may vary depending on the country,
you must query the Show form schema endpoint
passing the country code and |
bank_account_details | object Bank account information. As its properties may vary depending on the country,
you must query the Show form schema endpoint
passing the country code and |
billing_address_details | object Billing address information. As its properties may vary depending on the country,
you must query the Show form schema endpoint
passing the country code and |
company_id | string |
contract_details | object Contract information. As its properties may vary depending on the country,
you must query the Show form schema endpoint
passing the country code and |
object (Country) A supported country on Remote | |
country_code required | string |
emergency_contact_details | object Emergency contact information. As its properties may vary depending on the country,
you must query the Show form schema endpoint
passing the country code and |
full_name required | string |
job_title required | string |
manager_id | string The user id of the manager, who should have an |
personal_details | object Personal details information. As its properties may vary depending on the country,
you must query the Show form schema endpoint
passing the country code and |
personal_email required | string |
object (PricingPlanDetails) Selected type of payment. | |
provisional_start_date | string <date> (ProvisionalStartDate) Indicates the expected start date of the employee or contractor. Required for employees, but optional for contractors. Date format is in ISO8601 without the time component. See the Date and Time Format documentation for more details on how the Remote API works with dates. |
seniority_date | string <date-time> (EmploymentSeniorityDate) The date the employee first started working for your company. If you don’t include a seniority date, the employee’s start date with Remote will be deemed as the start of the employee’s seniority. Example: Your employee started working for your company on Feb 1, 2022. On Aug 1, 2022, you transferred the employee to Remote and started managing them on the platform. Feb 1, 2022 would be their seniority date. Aug 1, 2022 would be their starting date. |
{- "address_details": { },
- "administrative_details": { },
- "bank_account_details": { },
- "billing_address_details": { },
- "company_id": "e31adae1-company-id-af5fba7dd803",
- "contract_details": { },
- "country": {
- "alpha_2_code": "PT",
- "code": "PRT",
- "country_subdivisions": [
- {
- "code": "PT-06",
- "name": "Coimbra",
- "subdivision_type": "District"
}, - {
- "code": "PT-11",
- "name": "Lisboa",
- "subdivision_type": "District"
}
], - "name": "Portugal",
- "region": "Europe",
- "subregion": "Southern Europe",
- "supported_json_schemas": [
- "additional_documents",
- "address_details",
- "administrative_details",
- "employment-basic-information",
- "bank_account_details",
- "contract_details",
- "emergency_contact"
]
}, - "country_code": "AUS",
- "emergency_contact_details": { },
- "full_name": "Jane Smith",
- "job_title": "Backend Engineer",
- "manager_id": "string",
- "personal_details": { },
- "personal_email": "jane@smith.com",
- "pricing_plan_details": {
- "frequency": "annually"
}, - "provisional_start_date": "2021-07-03",
- "seniority_date": "2022-03-21",
- "basic_information": {
- "email": "jane@smith.com",
- "has_seniority_date": "no",
- "job_title": "Backend Engineer",
- "name": "Jane Smith",
- "provisional_start_date": "2021-07-03"
}, - "department_id": "3bb56f01-3243-412b-bfaa-a5cfaaf2e431",
- "manager": "Taylor Johnson",
- "work_email": "jane.smith@company.com"
}
{- "data": {
- "employment": {
- "address_details": { },
- "administrative_details": { },
- "bank_account_details": [ ],
- "basic_information": { },
- "billing_address_details": { },
- "company_id": "e31adae1-company-id-af5fba7dd803",
- "contract_details": { },
- "country": {
- "code": "AUT",
- "name": "Austria"
}, - "created_at": "2021-11-11T18:44:39",
- "eligible_for_onboarding_cancellation": true,
- "emergency_contact_details": { },
- "files": [ ],
- "full_name": "Jane Smith",
- "id": "20a72f86-employment-id-9e4942a902ff",
- "job_title": "Engineer",
- "manager": "John Doe",
- "manager_email": "john.doe@company.com",
- "manager_employment_id": "20a72f86-employment-id-9e4942a902ff",
- "onboarding_tasks": {
- "address_details": {
- "description": "Primary residence.",
- "status": "completed"
}, - "administrative_details": {
- "description": "Information we need for tax purposes.",
- "status": "completed"
}, - "bank_account_details": {
- "description": "Bank account used for receiving salary payments.",
- "status": "completed"
}, - "billing_address_details": {
- "description": "Address associated with the employee's bank account.",
- "status": "completed"
}, - "contract_details": {
- "description": "Employee-specific details for their employment agreement.",
- "status": "completed"
}, - "emergency_contact_details": {
- "description": "Who should be called in an emergency.",
- "status": "completed"
}, - "employment_document_details": {
- "description": "We need some additional documents.",
- "status": "pending"
}, - "personal_details": {
- "description": "Personal details, such as name and date of birth.",
- "status": "completed"
}, - "pricing_plan_details": {
- "description": "How often Remote will bill employers for management fees.",
- "status": "completed"
}
}, - "personal_details": { },
- "personal_email": "jane@smith.com",
- "pricing_plan_details": {
- "frequency": "annually"
}, - "provisional_start_date": "2021-07-03",
- "status": "created",
- "type": "employee",
- "updated_at": "2021-11-11T18:44:39",
- "user_status": "active",
- "work_email": "jane.smith@company.com"
}
}
}
Invite an employment to start the self-enrollment.
Requirements for the invitation to succeed:
contract_details
and pricing_plan_details
provisional_start_date
must consider the minimum onboarding time of the employment's countryIf there are validations errors, they are returned with a Conflict HTTP Status (409) and a descriptive message. HTTP Status OK (200) is returned in case of success.
In case of the following error message:
"Please reselect benefits - the previous selection is no longer available"
it means that the benefit options have been updated and the employment's benefits are no longer compliant with the new schema.
In this case, reselect benefits by updating contract_details
JSON Schema form.
employment_id required | string Example: 31b8e49b-aa1c-47af-849c-3d0a53e20e0d Employment ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "status": "ok"
}
}
Lists all employments, except for the deleted ones.
This endpoint requires and returns country-specific data. The exact required and returned fields will vary depending on which country the employment is in. To see the list of parameters for each country, see the Show form schema endpoint under the Countries category.
Please note that the compliance requirements for each country are subject to change according to local laws. Given its continual updates, using Remote's json-schema-form should be considered in order to avoid compliance issues and to have the latest version of a country requirements.
If you are using this endpoint to build an integration, make sure you are dynamically collecting or displaying the latest parameters for each country by querying the "Show form schema" endpoint.
For more information on JSON Schemas, see the How JSON Schemas work documentation.
To learn how you can dynamically generate forms to display in your UI, see the documentation for the json-schema-form tool.
company_id | string Example: company_id=93t3j-company-id-9suej43 Company ID |
string Example: email=anna@example.com Filters the results by employments whose login email matches the value | |
status | string Example: status=active Filters the results by employments whose status matches the value |
employment_type | string Example: employment_type=contractor Filters the results by employments whose employment product type matches the value
Possible values: |
page | integer Example: page=1 Starts fetching records after the given page |
page_size | integer Example: page_size=30 Change the amount of records returned per page, defaults to 20, limited to 100 |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "current_page": 1,
- "employments": [
- {
- "country": {
- "code": "AUS",
- "name": "Australia"
}, - "department": null,
- "department_id": null,
- "full_name": "Jane Smith",
- "id": "add736b8-employment-id-a76ccae2abe8",
- "job_title": "Engineer",
- "personal_email": "janesmith@company.com",
- "status": "created",
- "type": "employee"
}
], - "total_count": 1,
- "total_pages": 1
}
Creates an employment. We support creating employees and contractors.
This endpoint requires and returns country-specific data. The exact required and returned fields will vary depending on which country the employment is in. To see the list of parameters for each country, see the Show form schema endpoint under the Countries category.
Please note that the compliance requirements for each country are subject to change according to local laws. Given its continual updates, using Remote's json-schema-form should be considered in order to avoid compliance issues and to have the latest version of a country requirements.
If you are using this endpoint to build an integration, make sure you are dynamically collecting or displaying the latest parameters for each country by querying the "Show form schema" endpoint.
For more information on JSON Schemas, see the How JSON Schemas work documentation.
To learn how you can dynamically generate forms to display in your UI, see the documentation for the json-schema-form tool.
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
Employment params
basic_information | object Employment basic information. When using this field, the same other root level fields (full_name, personal_email, job_title,
provisional_start_date, and seniority_date) will be ignored.
Its properties may vary depending on the country, you must query the Show form schema endpoint
passing the country code and |
company_id | string This optional field is deprecated. |
country_code required | string |
external_id | string <= 64 characters A unique reference code for the employment record in a non-Remote system. This optional field links to external data sources. If not provided, it defaults to |
type | string Enum: "employee" "contractor" If not provided, it will default to |
{- "basic_information": {
- "email": "jane@smith.com",
- "has_seniority_date": "no",
- "job_title": "Engineer",
- "name": "Jane Smith",
- "provisional_start_date": "2022-07-10"
}, - "company_id": "string",
- "country_code": "AUS",
- "external_id": "string",
- "type": "employee",
- "full_name": "Jane Smith",
- "job_title": "Engineer",
- "personal_email": "jane@smith.com",
- "provisional_start_date": "2022-07-10"
}
{- "data": {
- "employment": {
- "basic_information": {
- "email": "jane@smith.com",
- "has_seniority_date": "no",
- "job_title": "Engineer",
- "name": "Jane Smith",
- "provisional_start_date": "2022-07-10"
}, - "company_id": "20a72f86-company-id-20a72f86",
- "country_code": "AUS",
- "created_at": "2023-02-01T15:42:03",
- "employment_lifecycle_stage": "employment_creation",
- "full_name": "Jane Smith",
- "id": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
- "job_title": "Engineer",
- "personal_email": "jane@smith.com",
- "provisional_start_date": "2022-07-10",
- "type": "employee",
- "updated_at": "2023-02-01T15:42:03"
}
}
}
Completes the employee onboarding. When all tasks are completed, the employee is marked as in review
status
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
Employment slug
employment_id | string |
{- "employment_id": "string"
}
{- "data": {
- "employment": {
- "address_details": { },
- "administrative_details": { },
- "bank_account_details": [ ],
- "basic_information": { },
- "billing_address_details": { },
- "company_id": "e31adae1-company-id-af5fba7dd803",
- "contract_details": { },
- "country": {
- "code": "AUT",
- "name": "Austria"
}, - "created_at": "2021-11-11T18:44:39",
- "eligible_for_onboarding_cancellation": true,
- "emergency_contact_details": { },
- "files": [ ],
- "full_name": "Jane Smith",
- "id": "20a72f86-employment-id-9e4942a902ff",
- "job_title": "Engineer",
- "manager": "John Doe",
- "manager_email": "john.doe@company.com",
- "manager_employment_id": "20a72f86-employment-id-9e4942a902ff",
- "onboarding_tasks": {
- "address_details": {
- "description": "Primary residence.",
- "status": "completed"
}, - "administrative_details": {
- "description": "Information we need for tax purposes.",
- "status": "completed"
}, - "bank_account_details": {
- "description": "Bank account used for receiving salary payments.",
- "status": "completed"
}, - "billing_address_details": {
- "description": "Address associated with the employee's bank account.",
- "status": "completed"
}, - "contract_details": {
- "description": "Employee-specific details for their employment agreement.",
- "status": "completed"
}, - "emergency_contact_details": {
- "description": "Who should be called in an emergency.",
- "status": "completed"
}, - "employment_document_details": {
- "description": "We need some additional documents.",
- "status": "pending"
}, - "personal_details": {
- "description": "Personal details, such as name and date of birth.",
- "status": "completed"
}, - "pricing_plan_details": {
- "description": "How often Remote will bill employers for management fees.",
- "status": "completed"
}
}, - "personal_details": { },
- "personal_email": "jane@smith.com",
- "pricing_plan_details": {
- "frequency": "annually"
}, - "provisional_start_date": "2021-07-03",
- "status": "created",
- "type": "employee",
- "updated_at": "2021-11-11T18:44:39",
- "user_status": "active",
- "work_email": "jane.smith@company.com"
}
}
}
This event is triggered whenever an identity verification is required for an employment.
employment_id required | string |
event_type required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "identity_verification.verification_required"
}
Gets necessary information to perform the identity verification of an employee.
employment_id required | string Example: 0a8s2d1-employment-id-2e3f4th Employment ID |
{- "data": {
- "identity_verification_data": {
- "contract_id": "1c130827-f95c-4495-b7cb-5876dce686b8",
- "employment_document": {
- "id": "f4e2f1fe-2056-4d9f-b9e0-ea322b781eb7",
- "inserted_at": "2021-01-01T00:00:00Z",
- "name": "2024-05-29_Hero8r5-document.pdf",
- "sub_type": "identity_verification",
- "type": "mobility"
}, - "employment_image": {
- "id": "f4e2f1fe-2056-4d9f-b9e0-ea322b781eb7",
- "inserted_at": "2021-01-01T00:00:00Z",
- "name": "2024-05-29_Hero8r5-image.png",
- "sub_type": "identity_verification",
- "type": "mobility"
}, - "status": "pending"
}
}
}
Endpoint to confirms the employment profile is from the actual employee
employment_id required | string Example: 0a8s2d1-employment-id-2e3f4th Employment ID |
{- "data": {
- "status": "ok"
}
}
This event is triggered when additional information is required for the EOR hiring process.
company_id required | string |
event_type required | string |
{- "company_id": "ba310525-9282-40c9-8977-14d844bf891a",
- "event_type": "company.eor_hiring.additional_information_required"
}
This event is triggered when a reserve payment is requested.
company_id required | string |
event_type required | string |
{- "company_id": "ba310525-9282-40c9-8977-14d844bf891a",
- "event_type": "company.eor_hiring.reserve_payment_requested"
}
This event is triggered when a company is archived.
company_id required | string |
event_type required | string |
{- "company_id": "ba310525-9282-40c9-8977-14d844bf891a",
- "event_type": "company.archived"
}
This event is triggered when a company verification is completed.
company_id required | string |
event_type required | string |
{- "company_id": "f2a1b3c4-d5e6-7f8g-9h0i-j1k2l3m4n5o6",
- "event_type": "company.eor_hiring.verification_completed"
}
This event is triggered when a company is activated.
company_id required | string |
event_type required | string |
{- "company_id": "ba310525-9282-40c9-8977-14d844bf891a",
- "event_type": "company.activated"
}
List all companies that authorized your integration to act on their behalf. In other words, these are all the companies that your integration can manage. Any company that has completed the authorization flow for your integration will be included in the response.
Authorization required | string Example: Bearer <CLIENT-CREDENTIALS ACCESS TOKEN> Requires a client credentials access token obtained through the Client Credentials flow or the Refresh Token flow. The refresh token needs to have been obtained through the Client Credentials flow. |
{- "data": {
- "companies": [
- {
- "address_details": {
- "address": "1709 Broderick St",
- "address_line_2": "Flat number 123",
- "city": "San Francisco",
- "postal_code": "94115",
- "state": "CA"
}, - "bank_account_details": {
- "account_holder": "Joe Smith",
- "account_number": "31234123123",
- "account_type": "savings",
- "name": "Bank name",
- "ownership_type": "BUSINESS",
- "routing_number": "123124123"
}, - "company_owner_email": "te@remote.com",
- "company_owner_name": "Joe Smith",
- "country_code": "USA",
- "created_at": "2021-10-29T12:39:13",
- "desired_currency": "USD",
- "external_id": "00001111",
- "id": "e5a8b061-company-id-4c5c81ac885e",
- "name": "Your Company Name",
- "phone_number": "+1123123456",
- "status": "active",
- "terms_of_service_accepted_at": "2021-10-29T12:39:15Z",
- "updated_at": "2021-10-29T12:39:15"
}
]
}
}
Creates a new company.
When you call this endpoint and omit all the optional parameters in the request body, the following resources get created upon a successful response:
pending
.initiated
. See the update a company endpoint for
more details on how to get your company and its owner to active
status.
If you'd like to create a company and its owner with active
status in a single request,
please provide the optional address_details
parameter as well.
A required step for creating a company in Remote is to accept our Terms of Service (ToS).
Company managers need to be aware of our Terms of Service and Privacy Policy, hence it's the responsibility of our partners to advise and ensure company managers read and accept the ToS. The terms have to be accepted only once, before creating a company, and the Remote API will collect the acceptance timestamp as its confirmation.
To ensure users read the most recent version of Remote's Terms of Service, their acceptance must be done within the last fifteen minutes prior the company creation action.
To retrieve this information, partners can provide an element with any text and a description explaining that by performing that action they are accepting Remote's Term of Service. For instance, the partner can add a checkbox or a "Create Remote Account" button followed by a description saying "By creating an account, you agree to Remote's Terms of Service. Also see Remote's Privacy Policy".
action | string Example: action=get_oauth_access_tokens,send_create_password_email Complementary action(s) to perform when creating a company:
If |
Authorization required | string Example: Bearer <CLIENT-CREDENTIALS ACCESS TOKEN> Requires a client credentials access token obtained through the Client Credentials flow or the Refresh Token flow. The refresh token needs to have been obtained through the Client Credentials flow. |
Create Company params
address_details | object Fields can vary depending on the country. Please, check the required fields structure using the Show form schema endpoint.
Use the desired country and |
bank_account_details | object Fields can vary depending on the country. Please, check the required fields structure using the Show form schema endpoint.
Use the desired country and |
company_owner_email required | string <email> The company owner email. This value cannot be changed once set. |
company_owner_name required | string The company owner name. This value cannot be changed from the Remote API once set. |
country_code required | string 3-letter country code of the country the company address is located in. For a list of countries supported through the Remote API, make a call to the list countries endpoint. This endpoint will also include the 3-letter country codes you can use for this field. |
desired_currency required | string Enum: "AUD" "CAD" "CHF" "DKK" "EUR" "GBP" "JPY" "NOK" "NZD" "SEK" "SGD" "USD" Desired currency for invoicing and displaying converted salaries in Remote UI regardless of the employee's country. |
email_domain | string The domain of the company. Use this field to specify the company domain name when it's different from the domain in the company owner's email. |
external_id | string Id of the company as represented in the external partner system. |
name required | string The company name |
phone_number | string A phone number the company can be contacted with. |
registration_number | string The company registration number. This field or |
tax_number | string The tax identifier of the company. This field or |
terms_of_service_accepted_at required | string <date-time> Date and time the Terms of Service were accepted. To ensure users read the most recent version of Remote's Terms of Service, their action cannot have been done more than fifteen minutes ago. The UTC offset must be included in the ISO 8601 format: |
{- "address_details": {
- "address": "1709 Broderick St",
- "address_line_2": "Flat number 123",
- "city": "San Francisco",
- "postal_code": "94115",
- "state": "CA"
}, - "bank_account_details": {
- "account_holder": "Joe Smith",
- "account_number": "31234123123",
- "account_type": "savings",
- "name": "Bank name",
- "ownership_type": "BUSINESS",
- "routing_number": "123124123"
}, - "company_owner_email": "ceo@techvision.com",
- "company_owner_name": "Joe Smith",
- "country_code": "USA",
- "desired_currency": "USD",
- "external_id": "00001111",
- "name": "Tech Vision",
- "phone_number": "+11123123456",
- "tax_number": "123456789",
- "terms_of_service_accepted_at": "2022-05-05 15:03:45Z"
}
{- "data": {
- "data": {
- "company": {
- "address_details": {
- "address": "1709 Broderick St",
- "address_line_2": "Flat number 123",
- "city": "San Francisco",
- "postal_code": "94115",
- "state": "CA"
}, - "bank_account_details": {
- "account_holder": "Joe Smith",
- "account_number": "31234123123",
- "account_type": "savings",
- "name": "Bank name",
- "ownership_type": "BUSINESS",
- "routing_number": "123124123"
}, - "company_owner_email": "te@remote.com",
- "company_owner_name": "Joe Smith",
- "country_code": "USA",
- "created_at": "2021-10-29T12:39:13",
- "desired_currency": "USD",
- "external_id": "00001111",
- "id": "e5a8b061-company-id-4c5c81ac885e",
- "name": "Your Company Name",
- "phone_number": "+1123123456",
- "status": "active",
- "terms_of_service_accepted_at": "2021-10-29T12:39:15Z",
- "updated_at": "2021-10-29T12:39:15"
}
}
}
}
Given an ID, shows a company
company_id required | string Example: 0a8s2d1-company-id-2e3f4th Company ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "company": {
- "address_details": {
- "address": "1709 Broderick St",
- "address_line_2": "Flat number 123",
- "city": "San Francisco",
- "postal_code": "94115",
- "state": "CA"
}, - "bank_account_details": {
- "account_holder": "Joe Smith",
- "account_number": "31234123123",
- "account_type": "savings",
- "name": "Bank name",
- "ownership_type": "BUSINESS",
- "routing_number": "123124123"
}, - "company_owner_email": "te@remote.com",
- "company_owner_name": "Joe Smith",
- "country_code": "USA",
- "created_at": "2021-10-29T12:39:13",
- "desired_currency": "USD",
- "external_id": "00001111",
- "id": "e5a8b061-company-id-4c5c81ac885e",
- "name": "Your Company Name",
- "phone_number": "+1123123456",
- "status": "active",
- "terms_of_service_accepted_at": "2021-10-29T12:39:15Z",
- "updated_at": "2021-10-29T12:39:15"
}
}
}
Given an ID and a request object with new information, updates a company.
active
statusIf you created a company using the
create a company endpoint without all the required
request body parameters, you can use this endpoint to provide the missing data. Once the company
and its owner have all the necessary data, both their statuses will be set to active
and the company
onboarding will be marked as "completed".
The following constitutes a company with "all the necessary data":
address
, with valid address
, postal_code
, country
and state
parameters (Varies by country. Use the
show form schema endpoint to see which address parameters
are required).tax_number
or registration_number
is not nilname
is not nil (already required when creating the company)desired_currency
in their bank account (already required when creating the company)company_id required | string Example: 0a8s2d1-company-id-2e3f4th Company ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
Update Company params
address_details | object Fields can vary depending on the country. Please, check the required fields structure using the Show form schema endpoint.
Use the desired country and |
bank_account_details | object Fields can vary depending on the country. Please, check the required fields structure using the Show form schema endpoint.
Use the desired country and |
country_code | string Country of company address |
desired_currency | string Enum: "AUD" "CAD" "CHF" "DKK" "EUR" "GBP" "JPY" "NOK" "NZD" "SEK" "SGD" "USD" Desired currency for invoicing and displaying converted salaries in Remote UI regardless of the employee's country. This field is only accepted if company is in status |
name | string This field is only accepted if company is in status |
phone_number | string A phone number the company can be contacted with. |
registration_number | string The company registration number. This field or tax_number (but not both) should be submitted. This field is only accepted if company is in status |
tax_number | string The tax identifier of the company. This field or registration_number (but not both) should be submitted. This field is only accepted if company is in status |
{- "address_details": {
- "address": "1709 Broderick St",
- "address_line_2": "Flat number 123",
- "city": "San Francisco",
- "postal_code": "94115",
- "state": "CA"
}, - "bank_account_details": {
- "account_holder": "Joe Smith",
- "account_number": "31234123123",
- "account_type": "savings",
- "name": "Bank name",
- "ownership_type": "BUSINESS",
- "routing_number": "123124123"
}, - "country_code": "USA",
- "desired_currency": "USD",
- "name": "Tech Vision",
- "phone_number": "+11123123456",
- "tax_number": "123456789"
}
{- "data": {
- "company": {
- "address_details": {
- "address": "1709 Broderick St",
- "address_line_2": "Flat number 123",
- "city": "San Francisco",
- "postal_code": "94115",
- "state": "CA"
}, - "bank_account_details": {
- "account_holder": "Joe Smith",
- "account_number": "31234123123",
- "account_type": "savings",
- "name": "Bank name",
- "ownership_type": "BUSINESS",
- "routing_number": "123124123"
}, - "company_owner_email": "te@remote.com",
- "company_owner_name": "Joe Smith",
- "country_code": "USA",
- "created_at": "2021-10-29T12:39:13",
- "desired_currency": "USD",
- "external_id": "00001111",
- "id": "e5a8b061-company-id-4c5c81ac885e",
- "name": "Your Company Name",
- "phone_number": "+1123123456",
- "status": "active",
- "terms_of_service_accepted_at": "2021-10-29T12:39:15Z",
- "updated_at": "2021-10-29T12:39:15"
}
}
}
Given an ID and a request object with new information, updates a company.
active
statusIf you created a company using the
create a company endpoint without all the required
request body parameters, you can use this endpoint to provide the missing data. Once the company
and its owner have all the necessary data, both their statuses will be set to active
and the company
onboarding will be marked as "completed".
The following constitutes a company with "all the necessary data":
address
, with valid address
, postal_code
, country
and state
parameters (Varies by country. Use the
show form schema endpoint to see which address parameters
are required).tax_number
or registration_number
is not nilname
is not nil (already required when creating the company)desired_currency
in their bank account (already required when creating the company)company_id required | string Example: 0a8s2d1-company-id-2e3f4th Company ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
Update Company params
address_details | object Fields can vary depending on the country. Please, check the required fields structure using the Show form schema endpoint.
Use the desired country and |
bank_account_details | object Fields can vary depending on the country. Please, check the required fields structure using the Show form schema endpoint.
Use the desired country and |
country_code | string Country of company address |
desired_currency | string Enum: "AUD" "CAD" "CHF" "DKK" "EUR" "GBP" "JPY" "NOK" "NZD" "SEK" "SGD" "USD" Desired currency for invoicing and displaying converted salaries in Remote UI regardless of the employee's country. This field is only accepted if company is in status |
name | string This field is only accepted if company is in status |
phone_number | string A phone number the company can be contacted with. |
registration_number | string The company registration number. This field or tax_number (but not both) should be submitted. This field is only accepted if company is in status |
tax_number | string The tax identifier of the company. This field or registration_number (but not both) should be submitted. This field is only accepted if company is in status |
{- "address_details": {
- "address": "1709 Broderick St",
- "address_line_2": "Flat number 123",
- "city": "San Francisco",
- "postal_code": "94115",
- "state": "CA"
}, - "bank_account_details": {
- "account_holder": "Joe Smith",
- "account_number": "31234123123",
- "account_type": "savings",
- "name": "Bank name",
- "ownership_type": "BUSINESS",
- "routing_number": "123124123"
}, - "country_code": "USA",
- "desired_currency": "USD",
- "name": "Tech Vision",
- "phone_number": "+11123123456",
- "tax_number": "123456789"
}
{- "data": {
- "company": {
- "address_details": {
- "address": "1709 Broderick St",
- "address_line_2": "Flat number 123",
- "city": "San Francisco",
- "postal_code": "94115",
- "state": "CA"
}, - "bank_account_details": {
- "account_holder": "Joe Smith",
- "account_number": "31234123123",
- "account_type": "savings",
- "name": "Bank name",
- "ownership_type": "BUSINESS",
- "routing_number": "123124123"
}, - "company_owner_email": "te@remote.com",
- "company_owner_name": "Joe Smith",
- "country_code": "USA",
- "created_at": "2021-10-29T12:39:13",
- "desired_currency": "USD",
- "external_id": "00001111",
- "id": "e5a8b061-company-id-4c5c81ac885e",
- "name": "Your Company Name",
- "phone_number": "+1123123456",
- "status": "active",
- "terms_of_service_accepted_at": "2021-10-29T12:39:15Z",
- "updated_at": "2021-10-29T12:39:15"
}
}
}
Returns the json schema of the requested company form.
Currently only supports the address_details
form.
country_code required | string Example: country_code=CAN Country code according to ISO 3-digit alphabetic codes. |
form required | string Value: "address_details" Example: form=address_details Name of the desired form |
{- "data": {
- "additionalProperties": false,
- "properties": {
- "address": {
- "maxLength": 255,
- "title": "Address",
- "type": "string"
}
}
}
}
This event is triggered when a timeoff has status changed to canceled.
employment_id required | string |
event_type required | string |
timeoff_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "timeoff.canceled",
- "timeoff_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
This event is triggered when a timeoff is set as taken.
employment_id required | string |
event_type required | string |
timeoff_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "timeoff.taken",
- "timeoff_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
This event is triggered when a timeoff is set as approved.
employment_id required | string |
event_type required | string |
timeoff_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "timeoff.approved",
- "timeoff_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
This event is triggered when a timeoff has its date changed.
employment_id required | string |
event_type required | string |
timeoff_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "timeoff.date_changed",
- "timeoff_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
This event is triggered when a timeoff is updated.
employment_id required | string |
event_type required | string |
timeoff_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "timeoff.updated",
- "timeoff_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
This event is triggered when a timeoff is declined
employment_id required | string |
event_type required | string |
timeoff_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "timeoff.declined",
- "timeoff_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
This event is triggered when a timeoff is requested
employment_id required | string |
event_type required | string |
timeoff_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "timeoff.requested",
- "timeoff_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
Shows a single Time Off record
id required | string Example: 93t3j-timeoff-id-9suej43 Timeoff ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "timeoff": {
- "document": {
- "id": "9880b711-file-id-ecf8f551bd78",
- "inserted_at": "2021-07-15T18:18:17Z",
- "name": "id.pdf",
- "sub_type": "personal_id",
- "type": "id"
}, - "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
- "end_date": "2021-12-21",
- "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
- "notes": "Some notes",
- "start_date": "2021-12-20",
- "status": "approved",
- "timeoff_days": [
- {
- "day": "2021-12-20",
- "hours": 8
}, - {
- "day": "2021-12-21",
- "hours": 8
}
], - "timeoff_type": "paid_time_off",
- "timezone": "Asia/Kolkata"
}
}
}
Updates a Time Off record.
Warning: Updating the status of a time off through this endpoint is deprecated and will be removed on January 13, 2025.
To approve or cancel an approved time off, use the /approve
and /cancel
endpoints instead.
id required | string Example: 93t3j-timeoff-id-9suej43 Timeoff ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
UpdateTimeoff
approved_at | string <date-time> (DateTimeIso8601) UTC date time in ISO 8601 format. |
approver_id | string or null (NullableApproverId) The field matches the |
cancel_reason required | string The reason for cancelling a time off. Required when updating to status |
object (TimeoffDocumentParams) Timeoff document params | |
edit_reason required | string The reason for the update. Required when updating the time off data but not changing the status. |
end_date | string <date> (Date) UTC date in ISO 8601 format |
notes | string |
start_date | string <date> (Date) UTC date in ISO 8601 format |
status | string Deprecated Enum: "approved" "cancelled" |
Array of objects (TimeoffDaysParams) | |
timeoff_type | string (TimeoffType) Enum: "paid_time_off" "sick_leave" "public_holiday" "unpaid_leave" "extended_leave" "in_lieu_time" "maternity_leave" "paternity_leave" "parental_leave" "bereavement" "military_leave" "other" |
timezone | string (Timezone) |
{- "approved_at": "2021-07-15T18:18:17Z",
- "approver_id": "51546f60-dd71-4223-9312-4efede68a497",
- "cancel_reason": "string",
- "document": {
- "content": "string",
- "name": "string"
}, - "edit_reason": "string",
- "end_date": "2021-07-01",
- "notes": "string",
- "start_date": "2021-07-01",
- "status": "approved",
- "timeoff_days": [
- {
- "day": "2021-07-01",
- "hours": 0
}
], - "timeoff_type": "sick_leave",
- "timezone": "Etc/UTC"
}
{- "data": {
- "timeoff": {
- "document": {
- "id": "9880b711-file-id-ecf8f551bd78",
- "inserted_at": "2021-07-15T18:18:17Z",
- "name": "id.pdf",
- "sub_type": "personal_id",
- "type": "id"
}, - "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
- "end_date": "2021-12-21",
- "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
- "notes": "Some notes",
- "start_date": "2021-12-20",
- "status": "approved",
- "timeoff_days": [
- {
- "day": "2021-12-20",
- "hours": 8
}, - {
- "day": "2021-12-21",
- "hours": 8
}
], - "timeoff_type": "paid_time_off",
- "timezone": "Asia/Kolkata"
}
}
}
Updates a Time Off record.
Warning: Updating the status of a time off through this endpoint is deprecated and will be removed on January 13, 2025.
To approve or cancel an approved time off, use the /approve
and /cancel
endpoints instead.
id required | string Example: 93t3j-timeoff-id-9suej43 Timeoff ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
UpdateTimeoff
approved_at | string <date-time> (DateTimeIso8601) UTC date time in ISO 8601 format. |
approver_id | string or null (NullableApproverId) The field matches the |
cancel_reason required | string The reason for cancelling a time off. Required when updating to status |
object (TimeoffDocumentParams) Timeoff document params | |
edit_reason required | string The reason for the update. Required when updating the time off data but not changing the status. |
end_date | string <date> (Date) UTC date in ISO 8601 format |
notes | string |
start_date | string <date> (Date) UTC date in ISO 8601 format |
status | string Deprecated Enum: "approved" "cancelled" |
Array of objects (TimeoffDaysParams) | |
timeoff_type | string (TimeoffType) Enum: "paid_time_off" "sick_leave" "public_holiday" "unpaid_leave" "extended_leave" "in_lieu_time" "maternity_leave" "paternity_leave" "parental_leave" "bereavement" "military_leave" "other" |
timezone | string (Timezone) |
{- "approved_at": "2021-07-15T18:18:17Z",
- "approver_id": "51546f60-dd71-4223-9312-4efede68a497",
- "cancel_reason": "string",
- "document": {
- "content": "string",
- "name": "string"
}, - "edit_reason": "string",
- "end_date": "2021-07-01",
- "notes": "string",
- "start_date": "2021-07-01",
- "status": "approved",
- "timeoff_days": [
- {
- "day": "2021-07-01",
- "hours": 0
}
], - "timeoff_type": "sick_leave",
- "timezone": "Etc/UTC"
}
{- "data": {
- "timeoff": {
- "document": {
- "id": "9880b711-file-id-ecf8f551bd78",
- "inserted_at": "2021-07-15T18:18:17Z",
- "name": "id.pdf",
- "sub_type": "personal_id",
- "type": "id"
}, - "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
- "end_date": "2021-12-21",
- "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
- "notes": "Some notes",
- "start_date": "2021-12-20",
- "status": "approved",
- "timeoff_days": [
- {
- "day": "2021-12-20",
- "hours": 8
}, - {
- "day": "2021-12-21",
- "hours": 8
}
], - "timeoff_type": "paid_time_off",
- "timezone": "Asia/Kolkata"
}
}
}
Lists all Time Off records.
employment_id | string Example: employment_id=31b8e49b-aa1c-47af-849c-3d0a53e20e0d Only show time off for a specific employment |
timeoff_type | string (TimeoffType) Enum: "paid_time_off" "sick_leave" "public_holiday" "unpaid_leave" "extended_leave" "in_lieu_time" "maternity_leave" "paternity_leave" "parental_leave" "bereavement" "military_leave" "other" Example: timeoff_type=sick_leave Filter time off by its type |
status | string (TimeoffStatus) Enum: "approved" "cancelled" "declined" "requested" "taken" "cancel_requested" Example: status=approved Filter time off by its status |
order | string Enum: "asc" "desc" Example: order=asc Sort order |
sort_by | string Enum: "timeoff_type" "status" Example: sort_by=timeoff_type Field to sort by |
page | integer >= 1 Default: 1 Example: page=1 Starts fetching records after the given page |
page_size | integer [ 1 .. 100 ] Default: 20 Example: page_size=20 Number of items per page |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "current_page": 1,
- "timeoffs": [
- {
- "document": {
- "id": "9880b711-file-id-ecf8f551bd78",
- "inserted_at": "2021-07-15T18:18:17Z",
- "name": "id.pdf",
- "sub_type": "personal_id",
- "type": "id"
}, - "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
- "end_date": "2021-12-21",
- "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
- "notes": "Some notes",
- "start_date": "2021-12-20",
- "status": "approved",
- "timeoff_days": [
- {
- "day": "2021-12-20",
- "hours": 8
}, - {
- "day": "2021-12-21",
- "hours": 8
}
], - "timeoff_type": "paid_time_off",
- "timezone": "Asia/Kolkata"
}
], - "total_count": 1,
- "total_pages": 1
}
Creates a Time Off record
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
Timeoff
object (TimeoffDocumentParams) Timeoff document params | |
employment_id required | string |
end_date required | string <datetime> |
notes | string |
start_date required | string <datetime> |
required | Array of objects (TimeoffDaysParams) |
timeoff_type required | string (TimeoffType) Enum: "paid_time_off" "sick_leave" "public_holiday" "unpaid_leave" "extended_leave" "in_lieu_time" "maternity_leave" "paternity_leave" "parental_leave" "bereavement" "military_leave" "other" |
timezone required | string (Timezone) |
approved_at required | string <date-time> (DateTimeIso8601) UTC date time in ISO 8601 format. |
approver_id required | string or null (NullableApproverId) The field matches the |
status required | string Value: "approved" |
{- "document": {
- "content": "string",
- "name": "string"
}, - "employment_id": "string",
- "end_date": "string",
- "notes": "string",
- "start_date": "string",
- "timeoff_days": [
- {
- "day": "2021-07-01",
- "hours": 0
}
], - "timeoff_type": "sick_leave",
- "timezone": "Etc/UTC",
- "approved_at": "2021-07-15T18:18:17Z",
- "approver_id": "51546f60-dd71-4223-9312-4efede68a497",
- "status": "approved"
}
{- "data": {
- "timeoff": {
- "document": {
- "id": "9880b711-file-id-ecf8f551bd78",
- "inserted_at": "2021-07-15T18:18:17Z",
- "name": "id.pdf",
- "sub_type": "personal_id",
- "type": "id"
}, - "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
- "end_date": "2021-12-21",
- "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
- "notes": "Some notes",
- "start_date": "2021-12-20",
- "status": "approved",
- "timeoff_days": [
- {
- "day": "2021-12-20",
- "hours": 8
}, - {
- "day": "2021-12-21",
- "hours": 8
}
], - "timeoff_type": "paid_time_off",
- "timezone": "Asia/Kolkata"
}
}
}
Cancel a time off request that was already approved.
timeoff_id required | string Example: 93t3j-timeoff-id-9suej43 Time Off ID |
CancelTimeoff
cancel_reason required | string |
{- "cancel_reason": "string"
}
{- "data": {
- "timeoff": {
- "document": {
- "id": "9880b711-file-id-ecf8f551bd78",
- "inserted_at": "2021-07-15T18:18:17Z",
- "name": "id.pdf",
- "sub_type": "personal_id",
- "type": "id"
}, - "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
- "end_date": "2021-12-21",
- "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
- "notes": "Some notes",
- "start_date": "2021-12-20",
- "status": "approved",
- "timeoff_days": [
- {
- "day": "2021-12-20",
- "hours": 8
}, - {
- "day": "2021-12-21",
- "hours": 8
}
], - "timeoff_type": "paid_time_off",
- "timezone": "Asia/Kolkata"
}
}
}
Approve a time off request.
timeoff_id required | string Example: 93t3j-timeoff-id-9suej43 Time Off ID |
ApproveTimeoff
approver_id required | string or null (NullableApproverId) The field matches the |
{- "approver_id": "51546f60-dd71-4223-9312-4efede68a497"
}
{- "data": {
- "timeoff": {
- "document": {
- "id": "9880b711-file-id-ecf8f551bd78",
- "inserted_at": "2021-07-15T18:18:17Z",
- "name": "id.pdf",
- "sub_type": "personal_id",
- "type": "id"
}, - "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
- "end_date": "2021-12-21",
- "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
- "notes": "Some notes",
- "start_date": "2021-12-20",
- "status": "approved",
- "timeoff_days": [
- {
- "day": "2021-12-20",
- "hours": 8
}, - {
- "day": "2021-12-21",
- "hours": 8
}
], - "timeoff_type": "paid_time_off",
- "timezone": "Asia/Kolkata"
}
}
}
Lists all time off types that can be used for the timeoff_type
parameter
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "description": "string",
- "name": "sick_leave"
}
}
This event is triggered when an expense is deleted by an employee or canceled by an admin.
employment_id required | string |
event_type required | string |
expense_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "expense.deleted",
- "expense_id": "129d02bc-dd6a-11ed-ac99-cb057df06a33"
}
This event is triggered when an expense is reimbursed.
employment_id required | string |
event_type required | string |
expense_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "expense.reimbursed",
- "expense_id": "129d02bc-dd6a-11ed-ac99-cb057df06a33"
}
This event is triggered when an expense is submitted by an employee.
employment_id required | string |
event_type required | string |
expense_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "expense.submitted",
- "expense_id": "129d02bc-dd6a-11ed-ac99-cb057df06a33"
}
This event is triggered when an expense is declined.
employment_id required | string |
event_type required | string |
expense_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "expense.declined",
- "expense_id": "129d02bc-dd6a-11ed-ac99-cb057df06a33"
}
This event is triggered when an expense is approved.
employment_id required | string |
event_type required | string |
expense_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "expense.approved",
- "expense_id": "129d02bc-dd6a-11ed-ac99-cb057df06a33"
}
This event is triggered whenever an expense is updated.
employment_id required | string |
event_type required | string |
expense_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "expense.updated",
- "expense_id": "129d02bc-dd6a-11ed-ac99-cb057df06a33"
}
Lists all expenses records
page | integer Example: page=1 Starts fetching records after the given page |
page_size | integer Example: page_size=30 Change the amount of records returned per page, defaults to 20, limited to 100 |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "current_page": 1,
- "expenses": [
- {
- "amount": 1000,
- "converted_amount": 1000,
- "converted_currency": {
- "code": "CZK",
- "name": "Czech Koruna",
- "symbol": "Kč"
}, - "converted_tax_amount": 500,
- "currency": {
- "code": "CZK",
- "name": "Czech Koruna",
- "symbol": "Kč"
}, - "employment_id": "ba9ead59-e471-4043-a7ea-07dbb105e72c",
- "expense_date": "2021-09-03",
- "receipts": [
- {
- "id": "9880b711-file-id-ecf8f551bd78",
- "inserted_at": "2021-07-15T18:18:17Z",
- "name": "id.pdf",
- "sub_type": "personal_id",
- "type": "id"
}
], - "tax_amount": 500,
- "title": "New desk"
}
], - "total_count": 1,
- "total_pages": 1
}
Creates an approved expense
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
Expenses
amount required | integer |
category required | string Enum: "car_rental" "coworking_office" "education_training" "entertainment" "flight" "fuel" "gifts" "insurance" "lodging" "meals" "other" "parking_toll" "subscription" "tech_equipment" "telecommunication" "transport" "utilities" "vaccination_testing" "visa" "wellness" "coworking" "home_office" "phone_utilities" "travel" Categories allowed for an expense. |
currency required | string The three-letter code for the expense currency. |
employment_id required | string The ID for the employment to which this expense relates. |
expense_date required | string Date of the purchase, which must be in the past |
object (Base64File) All the params needed upload a base64 file. | |
Array of objects (Base64File) <= 5 items | |
reviewed_at | string <date> The date and time that the expense was reviewed in ISO8601 format. If not provided, it defaults to the current datetime. |
reviewer_id | string If the person reviewing the expense is a user in Remote, you can provide its user id for this field. If a value is not provided, defaults to the user that generated the API token. |
tax_amount | integer |
timezone | string (Timezone) |
title required | string |
{- "amount": 8000,
- "category": "tech_equipment",
- "currency": "EUR",
- "employment_id": "d4ebc714-4950-47a9-a464-28e1f1ab2a90",
- "expense_date": "2020-12-11",
- "receipt": {
- "content": "UGVyaW9kIEVuZCBEYXRlLFBheSBEYXRlLEVtcG...5jZSBPZiBSZXNpZGVuYdXJyZW50LEFsbG93",
- "name": "receipt.pdf"
}, - "reviewed_at": "2023-01-11T11:12:13Z",
- "reviewer_id": "14c14128-f5f4-475a-8ec0-6329b4832a61",
- "tax_amount": 0,
- "timezone": "Etc/UTC",
- "title": "new keyboard"
}
{- "data": {
- "expense": {
- "amount": 1000,
- "converted_amount": 1000,
- "converted_currency": {
- "code": "CZK",
- "name": "Czech Koruna",
- "symbol": "Kč"
}, - "converted_tax_amount": 500,
- "currency": {
- "code": "CZK",
- "name": "Czech Koruna",
- "symbol": "Kč"
}, - "employment_id": "ba9ead59-e471-4043-a7ea-07dbb105e72c",
- "expense_date": "2021-09-03",
- "receipts": [
- {
- "id": "9880b711-file-id-ecf8f551bd78",
- "inserted_at": "2021-07-15T18:18:17Z",
- "name": "id.pdf",
- "sub_type": "personal_id",
- "type": "id"
}
], - "tax_amount": 500,
- "title": "New desk"
}
}
}
Shows a single expense record
id required | string Expense ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "expense": {
- "amount": 1000,
- "converted_amount": 1000,
- "converted_currency": {
- "code": "CZK",
- "name": "Czech Koruna",
- "symbol": "Kč"
}, - "converted_tax_amount": 500,
- "currency": {
- "code": "CZK",
- "name": "Czech Koruna",
- "symbol": "Kč"
}, - "employment_id": "ba9ead59-e471-4043-a7ea-07dbb105e72c",
- "expense_date": "2021-09-03",
- "receipts": [
- {
- "id": "9880b711-file-id-ecf8f551bd78",
- "inserted_at": "2021-07-15T18:18:17Z",
- "name": "id.pdf",
- "sub_type": "personal_id",
- "type": "id"
}
], - "tax_amount": 500,
- "title": "New desk"
}
}
}
Updates an expense
id required | string Expense ID |
Expenses
status required | string Value: "approved" |
{- "status": "approved"
}
{- "data": {
- "expense": {
- "amount": 1000,
- "converted_amount": 1000,
- "converted_currency": {
- "code": "CZK",
- "name": "Czech Koruna",
- "symbol": "Kč"
}, - "converted_tax_amount": 500,
- "currency": {
- "code": "CZK",
- "name": "Czech Koruna",
- "symbol": "Kč"
}, - "employment_id": "ba9ead59-e471-4043-a7ea-07dbb105e72c",
- "expense_date": "2021-09-03",
- "receipts": [
- {
- "id": "9880b711-file-id-ecf8f551bd78",
- "inserted_at": "2021-07-15T18:18:17Z",
- "name": "id.pdf",
- "sub_type": "personal_id",
- "type": "id"
}
], - "tax_amount": 500,
- "title": "New desk"
}
}
}
Updates an expense
id required | string Expense ID |
Expenses
status required | string Value: "approved" |
{- "status": "approved"
}
{- "data": {
- "expense": {
- "amount": 1000,
- "converted_amount": 1000,
- "converted_currency": {
- "code": "CZK",
- "name": "Czech Koruna",
- "symbol": "Kč"
}, - "converted_tax_amount": 500,
- "currency": {
- "code": "CZK",
- "name": "Czech Koruna",
- "symbol": "Kč"
}, - "employment_id": "ba9ead59-e471-4043-a7ea-07dbb105e72c",
- "expense_date": "2021-09-03",
- "receipts": [
- {
- "id": "9880b711-file-id-ecf8f551bd78",
- "inserted_at": "2021-07-15T18:18:17Z",
- "name": "id.pdf",
- "sub_type": "personal_id",
- "type": "id"
}
], - "tax_amount": 500,
- "title": "New desk"
}
}
}
Downloads an expense receipt.
Deprecated since late February 2024 in favour of Download a receipt by id endpoint.
expense_id required | string Example: 3ab2e491-ad1c-47af-849c-3d0a53e20e0d The expense ID |
{- "message": "invalid {resource}"
}
Download a receipt by id.
expense_id required | string Example: 3ab2e491-ad1c-47af-849c-3d0a53e20e0d The expense ID |
receipt_id required | string Example: 6ab2e49o-ad1c-47af-849c-3d0a53e21e0e The receipt ID |
{- "message": "invalid {resource}"
}
This event is triggered when a new billing document is issued to the company.
document_type required | string Enum: "prefunding_invoice" "reconciliation_invoice" "supplemental_service_invoice" "prefunding_credit_note" "reconciliation_credit_note" "supplemental_service_credit_note" |
event_type required | string |
billing_document_id required | string |
{- "billing_document_id": "2f2b7ce8-3f80-47fe-a0b1-57ad9217636d",
- "document_type": "reconciliation_invoice",
- "event_type": "billing_document.issued"
}
List billing documents for a company
period | string Example: period="2023-01" The month for the billing documents (in ISO-8601 format) |
page | integer >= 1 Default: 1 Example: page=1 Starts fetching records after the given page |
page_size | integer [ 1 .. 100 ] Default: 20 Example: page_size=20 Number of items per page |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "billing_documents": [
- {
- "billing_document_period": "2023-12",
- "billing_document_type": "base_salary",
- "id": "8772a9f1-b43c-46be-a1ce-e50b6819f5ee"
}
], - "current_page": 1,
- "total_count": 1,
- "total_pages": 1
}
}
Downloads a billing document PDF
billing_document_id required | string Example: 93t3j-billing-doc-id-9suej43 The billing document's ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
"string"
Shows a billing document details.
Please contact api-support@remote.com to request access to this endpoint.
billing_document_id required | string Example: 93t3j-billing-doc-id-9suej43 The billing document's ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "billing_document": {
- "billing_document_currency": "USD",
- "billing_document_number": "12345678901",
- "billing_document_period": "2023-12",
- "billing_document_type": "reconciliation_invoice",
- "company_id": "305ae616-2ef6-4b2d-bed3-b75eb3ccc069",
- "id": "8772a9f1-b43c-46be-a1ce-e50b6819f5ee",
- "issued_date": "2024-03-01",
- "items": [
- {
- "billing_document_amount": 1000000,
- "billing_document_currency": "USD",
- "employment_id": "0d25c513-employment-id-198557128104",
- "source_amount": 500000,
- "source_currency": "USD",
- "type": "base_salary"
}
], - "total": "12345"
}
}
}
This event is triggered when an employment probation period extension request is submitted
employment_id required | string |
event_type required | string |
probation_extension_request_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "employment.probation_period_extension.submitted",
- "probation_extension_request_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
This event is triggered when an employment probation period extension request is completed
employment_id required | string |
event_type required | string |
probation_extension_request_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "employment.probation_period_extension.completed",
- "probation_extension_request_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
This event is triggered when the probation period extension request is cancelled.
employment_id required | string |
event_type required | string |
probation_extension_request_id required | string |
{- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "employment.probation_period_extension.cancelled",
- "probation_extension_request_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1"
}
Shows a Probation Extension Request.
id required | string Example: 93t3j-probation_extension_id-9suej43 Probation Extension Request ID |
{- "data": {
- "probation_extension": {
- "employment_id": "93t3j-employment_id-9suej43",
- "id": "93t3j-sfies9_id-9suej43",
- "requested_by": "93t3j-requested_by_id-9suej43",
- "status": "submitted",
- "submitted_at": "2021-09-01T00:00:00Z",
}
}
}
Create a probation extension request.
ProbationExtension
additional_details | string Any additional details that need to be considered for the probation extension. |
date_of_discussion_with_employee | string <date> The date when the discussion with the employee took place. Is required when |
duration_of_extension_in_days required | integer The number of days to add to the existing probation end date. |
employment_id required | string The employment ID that is related to the probation extension request. |
reason_for_extension required | string The reason for the probation extension. |
object (ProbationExtensionFile) Upload performance improvement plan or any other supporting document.
This optional document can be sent only if | |
was_employee_informed required | boolean Whether the employee was informed about the probation extension. |
{- "additional_details": "Employee is on leave.",
- "date_of_discussion_with_employee": "2021-09-01",
- "duration_of_extension_in_days": 30,
- "employment_id": "93t3j-employment_id-9suej43",
- "reason_for_extension": "Employee is on leave.",
- "supporting_document": {
- "content": "base64_encoded_content",
- "name": "supporting_document.pdf"
}, - "was_employee_informed": true
}
{- "data": {
- "probation_extension": {
- "employment_id": "93t3j-employment_id-9suej43",
- "id": "93t3j-sfies9_id-9suej43",
- "requested_by": "93t3j-requested_by_id-9suej43",
- "status": "submitted",
- "submitted_at": "2021-09-01T00:00:00Z",
}
}
}
This event is triggered when a custom field value is updated.
employment_id required | string |
event_type required | string |
custom_field_id required | string |
{- "custom_field_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
- "employment_id": "2614f814-b08e-4c8e-8c4d-ddbcc4692d99",
- "event_type": "custom_field.value_updated"
}
Returns custom fields definitions
page | integer >= 1 Default: 1 Example: page=1 Starts fetching records after the given page |
page_size | integer [ 1 .. 100 ] Default: 20 Example: page_size=20 Number of items per page |
{- "current_page": 1,
- "custom_fields": [
- {
- "id": "01c0e4d2-f41b-11ed-9d3f-cb3ecccebb58",
- "name": "Internal ID",
- "type": "string"
}
], - "total_count": 1,
- "total_pages": 1
}
Creates a new custom field definition.
Custom Field Definition Create Parameters
data_entry_access required | string (CustomFieldDataEntryAccess) Enum: "company_admin_only" "employee_only" "everyone" The data entry access of the custom field |
name required | string |
required required | boolean |
type required | string (CustomFieldSimpleDataType) Enum: "string" "text" "integer" "date" "boolean" "percentage" "decimal" "link" The datatype of the custom field |
visibility_scope required | string (CustomFieldVisibilityScope) Enum: "company_admin_only" "everyone" The visibility scope of the custom field |
{- "data_entry_access": "company_admin_only",
- "name": "Internal ID",
- "required": false,
- "type": "string",
- "visibility_scope": "everyone"
}
{- "data": {
- "custom_field": {
- "id": "01c0e4d2-f41b-11ed-9d3f-cb3ecccebb58",
- "name": "Internal ID",
- "type": "string"
}
}
}
Returns a custom field value for a given employment
custom_field_id required | string Example: ec23ebda-4b7a-4dbd-9d79-bd1eec3f83c9 Custom field ID |
employment_id required | string Example: ec23ebda-4b7a-4dbd-9d79-bd1eec3f83c9 Employment ID |
{- "data": {
- "custom_field_value": {
- "custom_field_id": "01c0e4d2-f41b-11ed-9d3f-cb3ecccebb58",
- "value": "UXH34HG"
}
}
}
Updates a custom field value for a given employment.
custom_field_id required | string Example: ec23ebda-4b7a-4dbd-9d79-bd1eec3f83c9 Custom field ID |
employment_id required | string Example: ec23ebda-4b7a-4dbd-9d79-bd1eec3f83c9 Employment ID |
Custom Field Value Update Parameters
required | string or integer or Date (string) or boolean or OptionValue (string) |
{- "value": "UXH34HG"
}
{- "data": {
- "custom_field_value": {
- "custom_field_id": "01c0e4d2-f41b-11ed-9d3f-cb3ecccebb58",
- "value": "UXH34HG"
}
}
}
Updates a custom field value for a given employment.
custom_field_id required | string Example: ec23ebda-4b7a-4dbd-9d79-bd1eec3f83c9 Custom field ID |
employment_id required | string Example: ec23ebda-4b7a-4dbd-9d79-bd1eec3f83c9 Employment ID |
Custom Field Value Update Parameters
required | string or integer or Date (string) or boolean or OptionValue (string) |
{- "value": "UXH34HG"
}
{- "data": {
- "custom_field_value": {
- "custom_field_id": "01c0e4d2-f41b-11ed-9d3f-cb3ecccebb58",
- "value": "UXH34HG"
}
}
}
This event is triggered when a Benefit Renewal Request is created.
country_code required | string |
event_type required | string |
benefit_renewal_request_id required | string |
{- "benefit_renewal_request_id": "ba310525-9282-40c9-8977-14d844bf891a",
- "country_code": "FRA",
- "event_type": "benefit_renewal_request.created"
}
List Benefit Renewal Requests for each country.
page | integer >= 1 Default: 1 Example: page=1 Starts fetching records after the given page |
page_size | integer [ 1 .. 100 ] Default: 20 Example: page_size=20 Number of items per page |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "benefit_renewal_requests": [
- {
- "benefit_group": {
- "country_code": "FRA",
- "id": "03b20f23-06b2-4fe2-8f21-49b445ccc1bb",
- "name": "Health"
}, - "benefit_renewal_response": {
- "benefit_tier": {
- "description": "A tier for testing purposes",
- "display_cost": "~$100",
- "id": "163d8f6c-2440-4f45-918b-d095f9e0ef79",
- "name": "Premium"
}, - "updated_at": "2021-07-01T00:00:00Z"
}, - "coverage_end_date": "2022-07-01",
- "coverage_start_date": "2021-07-01",
- "current_benefit_tier": {
- "description": "A tier for testing purposes",
- "display_cost": "~$100",
- "id": "163d8f6c-2440-4f45-918b-d095f9e0ef79",
- "name": "Premium"
}, - "id": "0073f4b5-b669-4b4a-b963-2a477f4e75a1",
- "number_of_affected_employees": 10,
- "renewal_selection_end_date": "2021-05-01",
- "renewal_selection_instructions": "We are delighted to announce our new Global Life Insurance plans, now available in 66 countries.\nThis addition is set to significantly enhance the benefits package for your international team.\nSelection Deadline: Review and choose the right Global Life Insurance plan for each country where your team is based by 11:59 PM on December 31, 2023.\nWe offer flexible coverage options from $50,000 to $600,000, so take your time to decide what's best for your team.\nIf you don't make a selection within this period, your team members won't be enrolled in the Global Life Insurance.\nIf you wish to do so anytime next year, please reach out to help@remote.com\nFor more information on how benefits work in different countries, check out our Global <a href=\"https://remote.com/benefits-guide/global-life-insurance\">benefits guide</a>.\n",
- "renewal_selection_start_date": "2021-03-01"
}
], - "current_page": 1,
- "total_count": 1,
- "total_pages": 1
}
Show Benefit Renewal Request details.
benefit_renewal_request_id required | string <uuid> (UuidSlug) Example: 31b8e49b-aa1c-47af-849c-3d0a53e20e0d Benefit Renewal Request Id |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "benefit_renewal_request": {
- "benefit_group": {
- "country_code": "FRA",
- "id": "03b20f23-06b2-4fe2-8f21-49b445ccc1bb",
- "name": "Health"
}, - "benefit_renewal_response": {
- "benefit_tier": {
- "description": "A tier for testing purposes",
- "display_cost": "~$100",
- "id": "163d8f6c-2440-4f45-918b-d095f9e0ef79",
- "name": "Premium"
}, - "updated_at": "2021-07-01T00:00:00Z"
}, - "coverage_end_date": "2022-07-01",
- "coverage_start_date": "2021-07-01",
- "current_benefit_tier": {
- "description": "A tier for testing purposes",
- "display_cost": "~$100",
- "id": "163d8f6c-2440-4f45-918b-d095f9e0ef79",
- "name": "Premium"
}, - "id": "0073f4b5-b669-4b4a-b963-2a477f4e75a1",
- "number_of_affected_employees": 10,
- "renewal_selection_end_date": "2021-05-01",
- "renewal_selection_instructions": "We are delighted to announce our new Global Life Insurance plans, now available in 66 countries.\nThis addition is set to significantly enhance the benefits package for your international team.\nSelection Deadline: Review and choose the right Global Life Insurance plan for each country where your team is based by 11:59 PM on December 31, 2023.\nWe offer flexible coverage options from $50,000 to $600,000, so take your time to decide what's best for your team.\nIf you don't make a selection within this period, your team members won't be enrolled in the Global Life Insurance.\nIf you wish to do so anytime next year, please reach out to help@remote.com\nFor more information on how benefits work in different countries, check out our Global <a href=\"https://remote.com/benefits-guide/global-life-insurance\">benefits guide</a>.\n",
- "renewal_selection_start_date": "2021-03-01"
}
}
}
Updates a Benefit Renewal Request with the given response.
benefit_renewal_request_id required | string <uuid> (UuidSlug) Example: 31b8e49b-aa1c-47af-849c-3d0a53e20e0d Benefit Renewal Request Id |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
Benefit Renewal Request Response
Upsert benefit offers Renewal Request.
This endpoint requires and returns country-specific data. The exact required and returned fields will vary depending on which country the employment is in. To see the list of parameters for each country, see the Show form schema endpoint under the Show benefit renewal request schema category.
Please note that the compliance requirements for each country are subject to change according to local laws. Given its continual updates, using Remote's json-schema-form should be considered in order to avoid compliance issues and to have the latest version of a country requirements.
If you are using this endpoint to build an integration, make sure you are dynamically collecting or displaying the latest parameters for each country by querying the "Show benefit renewal request schema" endpoint.
For more information on JSON Schemas, see the How JSON Schemas work documentation.
To learn how you can dynamically generate forms to display in your UI, see the documentation for the json-schema-form tool.
{ }
{- "data": {
- "status": "ok"
}
}
Returns the json schema of the benefit_renewal_request
form for a specific request.
This endpoint requires a company access token, as forms are dependent on certain
properties of companies and their current employments.
benefit_renewal_request_id required | string <uuid> (UuidSlug) Example: 31b8e49b-aa1c-47af-849c-3d0a53e20e0d Benefit Renewal Request Id |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": { }
}
Lists Contractor Invoice Schedule records.
start_date_from | string <date> (Date) Example: start_date_from=2021-01-01 Filters contractor invoice schedules by start date greater than or equal to the value. |
start_date_to | string <date> (Date) Example: start_date_to=2021-12-31 Filters contractor invoice schedules by start date less than or equal to the value. |
next_invoice_date_from | string <date> (Date) Example: next_invoice_date_from=2021-01-01 Filters contractor invoice schedules by next invoice date greater than or equal to the value. |
next_invoice_date_to | string <date> (Date) Example: next_invoice_date_to=2021-12-31 Filters contractor invoice schedules by next invoice date less than or equal to the value. |
status | string (ContractorInvoiceScheduleStatus) Enum: "inactive" "completed" "active" "processing" "pending_company_action" "pending_contractor_action" "generation_failed_unrelated_to_withdrawal_method" Example: status=active Filters contractor invoice schedules by status matching the value. |
employment_id | string <uuid> (UuidSlug) Example: employment_id=6a1c8523-894c-47a8-a534-53c1a42029a9 Filters contractor invoice schedules by employment id matching the value. |
periodicity | string (ContractorInvoiceSchedulePeriodicity) Enum: "bi_weekly" "monthly" "semi_monthly" "weekly" Example: periodicity=monthly Filters contractor invoice schedules by periodicity matching the value. |
currency | string Example: currency=USD Filters contractor invoice schedules by currency matching the value. |
sort_by | string Enum: "number" "total_amount" "next_invoice_at" "start_date" "nr_occurrences" Example: sort_by=number Field to sort by |
order | string Enum: "asc" "desc" Example: order=asc Sort order |
page | integer >= 1 Default: 1 Example: page=1 Starts fetching records after the given page |
page_size | integer >= 1 Default: 20 Example: page_size=20 Number of items per page |
{- "contractor_invoice_schedules": [
- {
- "currency": "BRL",
- "employment_id": "0fa069da-fa03-42fb-b443-524c23c9eacb",
- "id": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
- "items": [
- {
- "amount": 5000,
- "description": "Description"
}
], - "next_invoice_at": "2024-06-15T00:00:00Z",
- "note": "Mobile developer payment.",
- "nr_occurrences": 10,
- "number": "ABC123",
- "periodicity": "semi_monthly",
- "start_date": "2024-06-01",
- "status": "active",
- "total_amount": 500000
}
], - "current_page": 1,
- "total_count": 1,
- "total_pages": 1
}
Creates many invoice schedules records. It's supposed to return two lists: one containing created records, and another one containing the schedules that failed to be inserted.
Bulk creation payload
required | Array of objects (ContractorInvoiceScheduleCreateParams) [ 1 .. 200 ] items List of invoice schedules payload. |
{- "contractor_invoice_schedules": [
- {
- "currency": "BRL",
- "employment_id": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
- "items": [
- {
- "amount": 5000,
- "description": "Description"
}
], - "note": "A note to make it clear why schedule is needed.",
- "nr_occurrences": 10,
- "number": "CIS0001",
- "periodicity": "monthly",
- "start_date": "2024-06-01"
}, - {
- "currency": "USD",
- "employment_id": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
- "items": [
- {
- "amount": 5000,
- "description": "Description"
}
], - "note": "Contractor payment schedules.",
- "nr_occurrences": 15,
- "number": "XYZ0001",
- "periodicity": "bi_weekly",
- "start_date": "2024-06-01"
}
]
}
{- "data": {
- "failures": [ ],
- "successes": [
- {
- "currency": "BRL",
- "employment_id": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
- "id": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
- "items": [
- {
- "amount": 5000,
- "description": "Description"
}
], - "note": "A note to make it clear why schedule is needed.",
- "nr_occurrences": 10,
- "number": "CIS0001",
- "periodicity": "monthly",
- "start_date": "2024-06-01"
}
]
}
}
Shows a single Contractor Invoice Schedule record
id required | string <uuid> (UuidSlug) Example: ee852576-ac4d-4415-b6df-2384a0e170b7 Resource unique identifier |
{- "data": {
- "contractor_invoice_schedule": {
- "currency": "BRL",
- "employment_id": "1f95832b-6e7a-40df-9289-655404474ef9",
- "id": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
- "items": [
- {
- "amount": 5000,
- "description": "Description"
}
], - "next_invoice_at": "2024-06-15T00:00:00Z",
- "note": "Mobile developer payment.",
- "nr_occurrences": 10,
- "number": "ABC123",
- "periodicity": "semi_monthly",
- "start_date": "2024-06-01",
- "status": "active",
- "total_amount": 500000
}
}
}
Updates a contractor invoice schedule record
id required | string <uuid> (UuidSlug) Example: bd18eed0-a187-49a3-8ef4-d989c3b42b96 Resource unique identifier |
Update parameters
currency | string or null (CurrencyCode) = 3 characters Currency code in ISO 4217 format. |
Array of objects (ContractorInvoiceScheduleItem) List of invoice items that composes the overall invoice amount. | |
note | string or null Custom defined note. |
nr_occurrences | integer or null Count of remaining invoices that should be generated. |
number | string or null Invoice identifier. |
periodicity | string (ContractorInvoiceSchedulePeriodicity) Enum: "bi_weekly" "monthly" "semi_monthly" "weekly" Defines how often contractor invoices will be generated.
|
start_date | string <date> (Date) UTC date in ISO 8601 format |
{- "currency": "USD",
- "items": [
- {
- "amount": 5000,
- "description": "Description"
}
], - "note": "Contractor invoice note",
- "nr_occurrences": 8,
- "number": "Num321",
- "periodicity": "monthly",
- "start_date": "2021-07-01"
}
{- "data": {
- "contractor_invoice_schedule": {
- "currency": "BRL",
- "employment_id": "1f95832b-6e7a-40df-9289-655404474ef9",
- "id": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
- "items": [
- {
- "amount": 5000,
- "description": "Description"
}
], - "next_invoice_at": "2024-06-15T00:00:00Z",
- "note": "Mobile developer payment.",
- "nr_occurrences": 10,
- "number": "ABC123",
- "periodicity": "semi_monthly",
- "start_date": "2024-06-01",
- "status": "active",
- "total_amount": 500000
}
}
}
Updates a contractor invoice schedule record
id required | string <uuid> (UuidSlug) Example: c6ac931a-8386-41be-ae97-1ae9a23502e6 Resource unique identifier |
Update parameters
currency | string or null (CurrencyCode) = 3 characters Currency code in ISO 4217 format. |
Array of objects (ContractorInvoiceScheduleItem) List of invoice items that composes the overall invoice amount. | |
note | string or null Custom defined note. |
nr_occurrences | integer or null Count of remaining invoices that should be generated. |
number | string or null Invoice identifier. |
periodicity | string (ContractorInvoiceSchedulePeriodicity) Enum: "bi_weekly" "monthly" "semi_monthly" "weekly" Defines how often contractor invoices will be generated.
|
start_date | string <date> (Date) UTC date in ISO 8601 format |
{- "currency": "USD",
- "items": [
- {
- "amount": 5000,
- "description": "Description"
}
], - "note": "Contractor invoice note",
- "nr_occurrences": 8,
- "number": "Num321",
- "periodicity": "monthly",
- "start_date": "2021-07-01"
}
{- "data": {
- "contractor_invoice_schedule": {
- "currency": "BRL",
- "employment_id": "1f95832b-6e7a-40df-9289-655404474ef9",
- "id": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
- "items": [
- {
- "amount": 5000,
- "description": "Description"
}
], - "next_invoice_at": "2024-06-15T00:00:00Z",
- "note": "Mobile developer payment.",
- "nr_occurrences": 10,
- "number": "ABC123",
- "periodicity": "semi_monthly",
- "start_date": "2024-06-01",
- "status": "active",
- "total_amount": 500000
}
}
}
Creates a PDF cost estimation of employments based on the provided parameters.
Estimate params
employer_currency_slug required | string Currency Slug |
required | Array of objects (CostCalculatorEmploymentParam) |
include_benefits | boolean |
include_cost_breakdowns | boolean |
{- "employer_currency_slug": "string",
- "employments": [
- {
- "age": 0,
- "annual_gross_salary": 0,
- "annual_gross_salary_in_employer_currency": 0,
- "benefits": [
- {
- "benefit_group_slug": "string",
- "benefit_tier_slug": "string"
}
], - "employment_term": "fixed",
- "region_slug": "string",
- "regional_to_employer_exchange_rate": "string",
- "title": "string"
}
], - "include_benefits": true,
- "include_cost_breakdowns": true
}
{- "data": {
- "content": "string"
}
}
Returns required fields JSON Schema for a given region. These are required in order to calculate the cost of employment for the region. These fields are based on employer contributions that are associated with the region or any of it's parent regions.
slug required | string Slug |
{- "data": {
- "schema": {
- "properties": {
- "ssn": {
- "pattern": "^[0-9]{3}-[0-9]{2}-(?!0{4})[0-9]{4}$",
- "title": "Social security number",
- "type": "string",
- "x-jsf-presentation": {
- "inputType": "text",
- "mask": "999-99-9999",
- "maskPlaceholder": "AAA-GG-SSSS",
- "maskSecret": 4
}
}
}, - "required": [
- "ssn"
], - "type": "object",
- "x-jsf-order": [
- "ssn"
]
}, - "version": 7
}
}
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
Estimate params
employer_currency_slug required | string Currency Slug |
required | Array of objects (CostCalculatorEmploymentParam) |
include_benefits | boolean |
include_cost_breakdowns | boolean |
{- "employer_currency_slug": "string",
- "employments": [
- {
- "age": 0,
- "annual_gross_salary": 0,
- "annual_gross_salary_in_employer_currency": 0,
- "benefits": [
- {
- "benefit_group_slug": "string",
- "benefit_tier_slug": "string"
}
], - "employment_term": "fixed",
- "region_slug": "string",
- "regional_to_employer_exchange_rate": "string",
- "title": "string"
}
], - "include_benefits": true,
- "include_cost_breakdowns": true
}
{- "data": {
- "employments": [
- {
- "country": {
- "alpha_2_code": "PT",
- "code": "PRT",
- "name": "Portugal",
- "slug": "portugal-ab18d96a-a9fd-42c0-9688-24f963d8bdc1"
}, - "employer_currency_costs": {
- "annual_benefits_breakdown": [
- {
- "amount": 1120000,
- "description": "Description of how the amount is calculated.",
- "name": "Insurance",
}
], - "annual_benefits_total": 1441200,
- "annual_contributions_breakdown": [
- {
- "amount": 1120000,
- "description": "Description of how the amount is calculated.",
- "name": "Insurance",
}
], - "annual_contributions_total": 1441200,
- "annual_gross_salary": 12000000,
- "annual_indirect_tax": 120,
- "annual_total": 13441200,
- "currency": {
- "code": "EUR",
- "name": "European Euro",
- "slug": "eur-3b840951-099f-4bd5-90b9-032f7bfe51d9",
- "symbol": "€"
}, - "extra_statutory_payments_breakdown": [
- {
- "amount": 1120000,
- "description": "Description of how the amount is calculated.",
- "name": "Insurance",
}
], - "extra_statutory_payments_total": 0,
- "monthly_benefits_breakdown": [
- {
- "amount": 1120000,
- "description": "Description of how the amount is calculated.",
- "name": "Insurance",
}
], - "monthly_benefits_total": 120100,
- "monthly_contributions_breakdown": [
- {
- "amount": 1120000,
- "description": "Description of how the amount is calculated.",
- "name": "Insurance",
}
], - "monthly_contributions_total": 120100,
- "monthly_gross_salary": 1000000,
- "monthly_indirect_tax": 10,
- "monthly_tce": 1120000,
- "monthly_total": 1120100
}, - "has_extra_statutory_payment": false,
- "region": {
- "code": "USA",
- "name": "United States",
- "slug": "usd-663e0b79-c893-45ff-a1b2-f6dcabc098b5"
}, - "regional_currency_costs": {
- "annual_benefits_breakdown": [
- {
- "amount": 1120000,
- "description": "Description of how the amount is calculated.",
- "name": "Insurance",
}
], - "annual_benefits_total": 1441200,
- "annual_contributions_breakdown": [
- {
- "amount": 1120000,
- "description": "Description of how the amount is calculated.",
- "name": "Insurance",
}
], - "annual_contributions_total": 1441200,
- "annual_gross_salary": 12000000,
- "annual_indirect_tax": 120,
- "annual_total": 13441200,
- "currency": {
- "code": "EUR",
- "name": "European Euro",
- "slug": "eur-3b840951-099f-4bd5-90b9-032f7bfe51d9",
- "symbol": "€"
}, - "extra_statutory_payments_breakdown": [
- {
- "amount": 1120000,
- "description": "Description of how the amount is calculated.",
- "name": "Insurance",
}
], - "extra_statutory_payments_total": 0,
- "monthly_benefits_breakdown": [
- {
- "amount": 1120000,
- "description": "Description of how the amount is calculated.",
- "name": "Insurance",
}
], - "monthly_benefits_total": 120100,
- "monthly_contributions_breakdown": [
- {
- "amount": 1120000,
- "description": "Description of how the amount is calculated.",
- "name": "Insurance",
}
], - "monthly_contributions_total": 120100,
- "monthly_gross_salary": 1000000,
- "monthly_indirect_tax": 10,
- "monthly_tce": 1120000,
- "monthly_total": 1120100
}
}
]
}
}
Lists active and processing countries
Authorization required | string Example: Basic Y2xpZW50X2lkOmNsaWVudF9zZWNyZXQ Authorization header with basic authentication encoded with Base64. Check the Auth & Authorization section for more information on how to create the encoded token. |
{- "data": [
- {
- "availability": "active",
- "child_regions": {
- "code": "USA",
- "name": "United States",
- "slug": "663e0b79-c893-45ff-a1b2-f6dcabc098b5"
}, - "code": "PRT",
- "currency": {
- "code": "EUR",
- "name": "European Euro",
- "slug": "eur-3b840951-099f-4bd5-90b9-032f7bfe51d9",
- "symbol": "€"
}, - "has_additional_fields": "true",
- "name": "Portugal",
- "original_country_slug": "portugal-ab18d96a-a9fd-42c0-9688-24f963d8bdc1",
- "region_slug": "663e0b79-c893-45ff-a1b2-f6dcabc098b5"
}
]
}
Shows a single Contractor Invoice record.
id required | string <uuid> (UuidSlug) Example: 679c91dd-5d2f-436d-bcd3-4d830fb9ebdd Resource unique identifier |
{- "data": {
- "contractor_invoice": {
- "amount": 350000,
- "approved_at": "2024-06-05T00:00:00Z",
- "contractor_invoice_schedule_id": "6d2b47bc-5bc0-4442-b94d-b360e6cd300d",
- "currency": "BRL",
- "date": "2024-06-01",
- "description": "Mobile developer payment.",
- "due_date": "2024-06-15",
- "id": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
- "items": [
- {
- "amount": 5000,
- "description": "Description"
}
], - "number": "ABC123",
- "paid_out_at": "2024-06-05T12:00:00Z",
- "source_amount": 350000,
- "source_currency": "BRL",
- "status": "paid_out",
- "target_amount": 350000,
- "target_currency": "BRL"
}
}
}
Lists Contractor Invoice records.
status | string (ContractorInvoiceStatus) Enum: "issued" "draft" "approved" "pending_payment" "externally_paid" "rejected" "blocked" "pay_out_scheduled" "enqueued" "processing" "manual_payout" "paid_out" "pay_out_failed" "funds_returned" Example: status=issued Filters contractor invoices by status matching the value. |
contractor_invoice_schedule_id | string <uuid> (UuidSlug) Example: contractor_invoice_schedule_id=8c7c32d9-5b8d-4cf4-ad21-d6be83105549 Filters contractor invoices by invoice schedule ID matching the value. |
date_from | string <date> (Date) Example: date_from=2021-01-01 Filters contractor invoices by date greater than or equal to the value. |
date_to | string <date> (Date) Example: date_to=2021-01-01 Filters contractor invoices by date less than or equal to the value. |
due_date_from | string <date> (Date) Example: due_date_from=2021-01-01 Filters contractor invoices by due date greater than or equal to the value. |
due_date_to | string <date> (Date) Example: due_date_to=2021-01-01 Filters contractor invoices by due date less than or equal to the value. |
approved_date_from | string <date> (Date) Example: approved_date_from=2021-01-01 Filters contractor invoices by approved date greater than or equal to the value. |
approved_date_to | string <date> (Date) Example: approved_date_to=2021-01-01 Filters contractor invoices by approved date less than or equal to the value. |
paid_out_date_from | string <date> (Date) Example: paid_out_date_from=2021-01-01 Filters contractor invoices by paid out date greater than or equal to the value. |
paid_out_date_to | string <date> (Date) Example: paid_out_date_to=2021-01-01 Filters contractor invoices by paid out date less than or equal to the value. |
sort_by | string Enum: "date" "due_date" "approved_at" "paid_out_at" Example: sort_by=date Field to sort by |
order | string Enum: "asc" "desc" Example: order=asc Sort order |
page | integer >= 1 Default: 1 Example: page=1 Starts fetching records after the given page |
page_size | integer >= 1 Default: 20 Example: page_size=20 Number of items per page |
{- "contractor_invoices": [
- {
- "amount": 350000,
- "approved_at": "2024-06-05T00:00:00Z",
- "contractor_invoice_schedule_id": "fd06857e-d8b8-4e99-bad3-06ec5ff428af",
- "currency": "BRL",
- "date": "2024-06-01",
- "description": "Mobile developer payment.",
- "due_date": "2024-06-15",
- "id": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
- "items": [
- {
- "amount": 5000,
- "description": "Description"
}
], - "number": "ABC123",
- "paid_out_at": "2024-06-05T12:00:00Z",
- "source_amount": 350000,
- "source_currency": "BRL",
- "status": "paid_out",
- "target_amount": 350000,
- "target_currency": "BRL"
}
], - "current_page": 1,
- "total_count": 1,
- "total_pages": 1
}
Endpoint to exchange tokens in the Authorization Code, Client Credentials and Refresh Token flows
Authorization required | string Example: Basic Y2xpZW50X2lkOmNsaWVudF9zZWNyZXQ Authorization header with basic authentication encoded with Base64. Check the Auth & Authorization section for more information on how to create the encoded token. |
OAuth2Token
code required | string The authorization code generated in Authorization Code flow |
grant_type required | string Value: "authorization_code" The Authorization flow |
{- "code": "eyJhbG...xb6H0",
- "grant_type": "authorization_code"
}
{- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.cThIIoDvwdueQB468K5xDc5633seEFoqwxjF_xSJyQQ",
- "company_id": "6e60f5f9-e6a6-4b04-b13c-84bced848bab",
- "expires_in": 7200,
- "refresh_token": "b480036a-d229-49ef-a606-7e8fba58a5eb",
- "token_type": "Bearer",
- "user_id": "6550e536-8655-4bce-8bd9-b295f786ad71"
}
Delete a Recurring Incentive, that is, a monthly paid incentive.
Internally, Remote schedules upcoming incentives. As such, when you attempt to
delete a recurring incentive, Remote will ONLY delete scheduled incentives
with the pending
status.
Incentives payments that are already scheduled and cannot be deleted will be included in the response, in case you need to reference them.
id required | string Recurring Incentive ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "already_scheduled_incentives": [
- {
- "amount": 50000,
- "amount_tax_type": "net",
- "effective_date": "2021-12-20",
- "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
- "expected_payout_date": "2021-12-31",
- "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
- "note": "Signing bonus",
- "recurring_incentive_id": "1c130827-f95c-4495-b7cb-5876dce686b8",
- "status": "pending",
- "type": "signing_bonus"
}
], - "status": "string"
}
}
List all Recurring Incentives of a company.
status | string Example: status=active Filter by recurring incentive status: active or deactive. |
type | string Example: type=meal_allowance Filter by recurring incentive type. |
note | string Example: note=meal Filter by recurring incentives that contain the value in their notes. |
page | integer Example: page=1 Starts fetching records after the given page |
page_size | integer Example: page_size=30 Change the amount of records returned per page, defaults to 20, limited to 100 |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "current_page": 1,
- "recurring_incentives": [
- {
- "amount": 50000,
- "amount_tax_type": "net",
- "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
- "end_date": "2022-12-20",
- "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
- "note": "Monthly stipend to buy food",
- "start_date": "2021-12-20",
- "status": "active",
- "type": "meal_allowance"
}
], - "total_count": 1,
- "total_pages": 1
}
Create a Recurring Incentive, that is, a monthly paid incentive.
Incentives use the currency of the employment specified provided in the employment_id
field.
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
RecurringIncentive
amount required | integer The amount (in the currency of the employment) to be given to the employee. This field accepts fractional amounts as well. However to avoid precision issues and errors that can arise from storing fractional amounts, the Remote API only accepts currencies and their fractional amounts as integers. This means you should append fractional amounts to the end of the amount you're passing in with this field. For example, if the incentive you're offering is EUR 500.25, you would specify |
amount_tax_type required | string (AmountTaxType) Enum: "gross" "net" Whether the amount given accounts for taxes or not. |
effective_date required | string <date> The date at which the incentive should take effect. Note that the incentive is not paid out on the effective date, but during the next payroll cycle. The effective date determines which payroll cycle the incentive will be paid out in. The effective date needs to be today or a future date. Note for recurring incentives: since the months don't have the same amount of days,
if day of month of |
note | string or null |
duration_in_months | string <integer> How many times the payment will repeat. At the moment we only fully support monthly frequency. This field is only necessary if the recurring incentive has an end date. |
employment_id required | string |
type required | string Enum: "acting_up_allowance" "allowance" "car_allowance" "health_and_wellness_allowance" "internet_allowance" "meal_allowance" "on_call_allowance" "parenthood_allowance" "phone_allowance" "relocation_allowance" "travel_allowance" "work_from_home_allowance" "bonus" "holiday_bonus" "referral_bonus" "retention_bonus" "commission" "other" "overtime" "stipend" |
{- "amount": 50000,
- "amount_tax_type": "net",
- "duration_in_months": 3,
- "effective_date": "2021-12-20",
- "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
- "note": "Bonus for moving start date to an earlier date",
- "type": "meal_allowance"
}
{- "data": {
- "recurring_incentive": {
- "amount": 50000,
- "amount_tax_type": "net",
- "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
- "end_date": "2022-12-20",
- "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
- "note": "Monthly stipend to buy food",
- "start_date": "2021-12-20",
- "status": "active",
- "type": "meal_allowance"
}
}
}
Updates an employment. Use this endpoint to modify employment states for testing in the Sandbox environment. This endpoint will respond with a 404 outside of the Sandbox environment.
For updating an employment's parameters outside of testing purposes, use this Employment update endpoint.
employment_id required | string Example: e3ee69d7-1293-4664-92fc-02625dae5247 Employment ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
Employment params
status | string (EmploymentStatus) Enum: "active" "created" "created_awaiting_reserve" "created_reserve_paid" "initiated" "invited" "pending" "review" "archived" "deleted" The status of employment |
{- "status": "active"
}
{- "data": {
- "employment": {
- "address_details": { },
- "administrative_details": { },
- "bank_account_details": [ ],
- "basic_information": { },
- "billing_address_details": { },
- "company_id": "e31adae1-company-id-af5fba7dd803",
- "contract_details": { },
- "country": {
- "code": "AUT",
- "name": "Austria"
}, - "created_at": "2021-11-11T18:44:39",
- "eligible_for_onboarding_cancellation": true,
- "emergency_contact_details": { },
- "files": [ ],
- "full_name": "Jane Smith",
- "id": "20a72f86-employment-id-9e4942a902ff",
- "job_title": "Engineer",
- "manager": "John Doe",
- "manager_email": "john.doe@company.com",
- "manager_employment_id": "20a72f86-employment-id-9e4942a902ff",
- "onboarding_tasks": {
- "address_details": {
- "description": "Primary residence.",
- "status": "completed"
}, - "administrative_details": {
- "description": "Information we need for tax purposes.",
- "status": "completed"
}, - "bank_account_details": {
- "description": "Bank account used for receiving salary payments.",
- "status": "completed"
}, - "billing_address_details": {
- "description": "Address associated with the employee's bank account.",
- "status": "completed"
}, - "contract_details": {
- "description": "Employee-specific details for their employment agreement.",
- "status": "completed"
}, - "emergency_contact_details": {
- "description": "Who should be called in an emergency.",
- "status": "completed"
}, - "employment_document_details": {
- "description": "We need some additional documents.",
- "status": "pending"
}, - "personal_details": {
- "description": "Personal details, such as name and date of birth.",
- "status": "completed"
}, - "pricing_plan_details": {
- "description": "How often Remote will bill employers for management fees.",
- "status": "completed"
}
}, - "personal_details": { },
- "personal_email": "jane@smith.com",
- "pricing_plan_details": {
- "frequency": "annually"
}, - "provisional_start_date": "2021-07-03",
- "status": "created",
- "type": "employee",
- "updated_at": "2021-11-11T18:44:39",
- "user_status": "active",
- "work_email": "jane.smith@company.com"
}
}
}
Updates an employment. Use this endpoint to modify employment states for testing in the Sandbox environment. This endpoint will respond with a 404 outside of the Sandbox environment.
For updating an employment's parameters outside of testing purposes, use this Employment update endpoint.
employment_id required | string Example: e3ee69d7-1293-4664-92fc-02625dae5247 Employment ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
Employment params
status | string (EmploymentStatus) Enum: "active" "created" "created_awaiting_reserve" "created_reserve_paid" "initiated" "invited" "pending" "review" "archived" "deleted" The status of employment |
{- "status": "active"
}
{- "data": {
- "employment": {
- "address_details": { },
- "administrative_details": { },
- "bank_account_details": [ ],
- "basic_information": { },
- "billing_address_details": { },
- "company_id": "e31adae1-company-id-af5fba7dd803",
- "contract_details": { },
- "country": {
- "code": "AUT",
- "name": "Austria"
}, - "created_at": "2021-11-11T18:44:39",
- "eligible_for_onboarding_cancellation": true,
- "emergency_contact_details": { },
- "files": [ ],
- "full_name": "Jane Smith",
- "id": "20a72f86-employment-id-9e4942a902ff",
- "job_title": "Engineer",
- "manager": "John Doe",
- "manager_email": "john.doe@company.com",
- "manager_employment_id": "20a72f86-employment-id-9e4942a902ff",
- "onboarding_tasks": {
- "address_details": {
- "description": "Primary residence.",
- "status": "completed"
}, - "administrative_details": {
- "description": "Information we need for tax purposes.",
- "status": "completed"
}, - "bank_account_details": {
- "description": "Bank account used for receiving salary payments.",
- "status": "completed"
}, - "billing_address_details": {
- "description": "Address associated with the employee's bank account.",
- "status": "completed"
}, - "contract_details": {
- "description": "Employee-specific details for their employment agreement.",
- "status": "completed"
}, - "emergency_contact_details": {
- "description": "Who should be called in an emergency.",
- "status": "completed"
}, - "employment_document_details": {
- "description": "We need some additional documents.",
- "status": "pending"
}, - "personal_details": {
- "description": "Personal details, such as name and date of birth.",
- "status": "completed"
}, - "pricing_plan_details": {
- "description": "How often Remote will bill employers for management fees.",
- "status": "completed"
}
}, - "personal_details": { },
- "personal_email": "jane@smith.com",
- "pricing_plan_details": {
- "frequency": "annually"
}, - "provisional_start_date": "2021-07-03",
- "status": "created",
- "type": "employee",
- "updated_at": "2021-11-11T18:44:39",
- "user_status": "active",
- "work_email": "jane.smith@company.com"
}
}
}
Creates an employment without provisional_start_date validation.
This endpoint is only available in Sandbox and allows creating employments which
provisional_start_date
is in the past. This is especially helpful for:
This endpoint will respond with a 404 outside of the Sandbox environment.
For creating an employment's parameters outside of testing purposes, use this Employment create endpoint
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
Employment params
basic_information | object Employment basic information. When using this field, the same other root level fields (full_name, personal_email, job_title,
provisional_start_date, and seniority_date) will be ignored.
Its properties may vary depending on the country, you must query the Show form schema endpoint
passing the country code and |
company_id | string This optional field is deprecated. |
country_code required | string |
external_id | string <= 64 characters A unique reference code for the employment record in a non-Remote system. This optional field links to external data sources. If not provided, it defaults to |
type | string Enum: "employee" "contractor" If not provided, it will default to |
{- "basic_information": {
- "email": "jane@smith.com",
- "has_seniority_date": "no",
- "job_title": "Engineer",
- "name": "Jane Smith",
- "provisional_start_date": "2022-07-10"
}, - "company_id": "string",
- "country_code": "AUS",
- "external_id": "string",
- "type": "employee",
- "full_name": "Jane Smith",
- "job_title": "Engineer",
- "personal_email": "jane@smith.com",
- "provisional_start_date": "2022-07-10"
}
{- "data": {
- "employment": {
- "basic_information": {
- "email": "jane@smith.com",
- "has_seniority_date": "no",
- "job_title": "Engineer",
- "name": "Jane Smith",
- "provisional_start_date": "2022-07-10"
}, - "company_id": "20a72f86-company-id-20a72f86",
- "country_code": "AUS",
- "created_at": "2023-02-01T15:42:03",
- "employment_lifecycle_stage": "employment_creation",
- "full_name": "Jane Smith",
- "id": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
- "job_title": "Engineer",
- "personal_email": "jane@smith.com",
- "provisional_start_date": "2022-07-10",
- "type": "employee",
- "updated_at": "2023-02-01T15:42:03"
}
}
}
Creates a Benefit Renewal Request for a specific Benefit Group. This endpoint is only available in Sandbox, otherwise it will respond with a 404.
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
Benefit Renewal Request
benefit_group_id required | string |
{- "benefit_group_id": "03b20f23-06b2-4fe2-8f21-49b445ccc1bb"
}
{- "data": {
- "benefit_renewal_request": {
- "benefit_group": {
- "country_code": "FRA",
- "id": "03b20f23-06b2-4fe2-8f21-49b445ccc1bb",
- "name": "Health"
}, - "benefit_renewal_response": {
- "benefit_tier": {
- "description": "A tier for testing purposes",
- "display_cost": "~$100",
- "id": "163d8f6c-2440-4f45-918b-d095f9e0ef79",
- "name": "Premium"
}, - "updated_at": "2021-07-01T00:00:00Z"
}, - "coverage_end_date": "2022-07-01",
- "coverage_start_date": "2021-07-01",
- "current_benefit_tier": {
- "description": "A tier for testing purposes",
- "display_cost": "~$100",
- "id": "163d8f6c-2440-4f45-918b-d095f9e0ef79",
- "name": "Premium"
}, - "id": "0073f4b5-b669-4b4a-b963-2a477f4e75a1",
- "number_of_affected_employees": 10,
- "renewal_selection_end_date": "2021-05-01",
- "renewal_selection_instructions": "We are delighted to announce our new Global Life Insurance plans, now available in 66 countries.\nThis addition is set to significantly enhance the benefits package for your international team.\nSelection Deadline: Review and choose the right Global Life Insurance plan for each country where your team is based by 11:59 PM on December 31, 2023.\nWe offer flexible coverage options from $50,000 to $600,000, so take your time to decide what's best for your team.\nIf you don't make a selection within this period, your team members won't be enrolled in the Global Life Insurance.\nIf you wish to do so anytime next year, please reach out to help@remote.com\nFor more information on how benefits work in different countries, check out our Global <a href=\"https://remote.com/benefits-guide/global-life-insurance\">benefits guide</a>.\n",
- "renewal_selection_start_date": "2021-03-01"
}
}
}
Triggers a callback previously registered for webhooks. Use this endpoint to emit a webhook for testing in the Sandbox environment. This endpoint will respond with a 404 outside of the Sandbox environment.
Webhook Trigger Params
employment_id required | string |
event_type required | string Enum: "benefit_renewal_request.created" "billing_document.issued" "company.activated" "company.archived" "company.eor_hiring.additional_information_required" "company.eor_hiring.reserve_payment_requested" "company.eor_hiring.verification_completed" "contract_amendment.canceled" "contract_amendment.deleted" "contract_amendment.done" "contract_amendment.review_started" "contract_amendment.submitted" "custom_field.value_updated" "employment_contract.active_contract_updated" "employment.account.updated" "employment.details.updated" "employment.employment_agreement.available" "employment.eor_hiring.proof_of_payment_accepted" "employment.eor_hiring.invoice_created" "employment.no_longer_eligible_for_onboarding_cancellation" "employment.onboarding_task.completed" "employment.onboarding.completed" "employment.onboarding.cancelled" "employment.personal_information.updated" "employment.probation_completion_letter.cancelled" "employment.probation_completion_letter.completed" "employment.probation_completion_letter.submitted" "employment.probation.period_ending_reminder_sent" "employment.probation_period_extension.cancelled" "employment.probation_period_extension.completed" "employment.probation_period_extension.submitted" "employment.start_date.changed" "employment.user_status.activated" "employment.user_status.deactivated" "expense.approved" "expense.declined" "expense.deleted" "expense.reimbursed" "expense.submitted" "expense.updated" "identity_verification.verification_required" "incentive.created" "incentive.deleted" "incentive.paid" "incentive.processing_started" "incentive.updated" "offboarding.completed" "offboarding.deleted" "offboarding.done" "offboarding.review_started" "offboarding.submitted_to_payroll" "offboarding.submitted" "payslip.released" "sso_configuration.disabled" "sso_configuration.enabled" "sso_configuration.updated" "timeoff.approved" "timeoff.canceled" "timeoff.date_changed" "timeoff.declined" "timeoff.requested" "timeoff.taken" "timeoff.updated" "timesheet.submitted" "travel_letter.approved_by_manager" "travel_letter.approved_by_remote" "travel_letter.declined_by_manager" "travel_letter.declined_by_remote" "travel_letter.requested" "work_authorization.approved_by_manager" "work_authorization.approved_by_remote" "work_authorization.cancelled" "work_authorization.declined_by_manager" "work_authorization.declined_by_remote" "work_authorization.requested" |
{- "employment_id": "e966a8b8-1076-11ee-a5f2-9b3997a968f6",
- "event_type": "employment.onboarding_task.completed"
}
{- "data": {
- "status": "ok"
}
}
Approves a contract amendment request without the intervention of a Remote admin. Approvals done via this endpoint are effective immediately, regardless of the effective date entered on the contract amendment creation.
This endpoint is only available in Sandbox, otherwise it will respond with a 404.
contract_amendment_request_id required | string Example: 6d947344-b053-4a4f-acf0-79d296cbd082 Contract amendment request ID |
{- "data": {
- "contract_amendment": {
- "amendment_contract_id": "8772a9f1-b43c-46be-a1ce-e50b6819f5ee",
- "changes": {
- "compensation.amount": {
- "current": 500000,
- "previous": 400000
}, - "contract.job_title": {
- "current": "A new job title",
- "previous": "An old job title"
}, - "contract_details.details.contract_duration_type": {
- "current": "fixed_term",
- "previous": "indefinite"
}
}, - "employment_id": "1e74fdc2-7420-4eef-ab0a-b794cbbef4e1",
- "id": "ba310525-9282-40c9-8977-14d844bf891a",
- "requested_by": "5a31f3c1-d7a7-4311-89cb-928959d3d540",
- "requested_details": {
- "additional_comments": null,
- "effective_date": "2024-03-04",
- "reason_for_change": "annual_pay_adjustment",
- "reason_for_change_description": null,
- "salary_decrease_details": null
}, - "status": "submitted",
- "submitted_at": "2023-04-13T13:35:06Z",
}
}
}
Use this endpoint to cancel an existing contract amendment request.
This endpoint is only available in Sandbox, otherwise it will respond with a 404.
contract_amendment_request_id required | string Example: 5bdc2cb9-6bda-4cf7-bc6e-0b122791e52a Contract amendment request ID |
{- "data": {
- "status": "ok"
}
}
Shows the details of a resignation with status submitted
.
offboarding_request_id required | string Example: 3ab2e491-ad1c-47af-849c-3d0a53e20e0d Offboarding request ID |
{- "data": {
- "resignation": {
- "contract_currency_code": "USD",
- "contract_job_title": "Developer",
- "contract_proabtion_period_passed": true,
- "contract_probation_period_end_date": "2021-06-15",
- "contract_start_date": "2021-03-15",
- "days_of_notice": 31,
- "paid_timeoffs_breakdown_labels": [
- "Used until today: 60 days",
- "Waiting for approval: 0 days"
], - "proposed_last_day": "2024-04-12",
- "resignation_date": "2024-03-12",
- "resignation_reason_label": "Retirement"
}
}
}
Downloads a resignation letter from an employment request.
offboarding_request_id required | string Example: 3ab2e491-ad1c-47af-849c-3d0a53e20e0d Offboarding request ID |
{- "message": "invalid {resource}"
}
Validates a resignation employment request
offboarding_request_id required | string Example: 3ab2e491-ad1c-47af-849c-3d0a53e20e0d Offboarding request ID |
ValidateResignation
accepts_proposed_notice required | boolean |
agrees_to_pto_amount required | boolean |
agrees_to_pto_amount_notes | string Required if |
agrees_to_resignation_reason required | boolean |
agrees_to_resignation_reason_notes | string required if |
has_additional_information required | boolean |
has_additional_information_notes | string required if |
has_more_salary_info required | boolean |
has_more_salary_info_notes | string required if |
is_owed_outstanding_reimbursements required | boolean |
object required if | |
object Required if | |
object (ResignationFile) Paid time off accuracy Typically, any vacation pay accrued and unpaid at the time
of termination must be paid out to the employee. To avoid overpaying or underpaying,
please make sure we have an accurate account of their paid time off by querying the
Show Time Off Balance endpoint,
filtering by the | |
will_take_more_pto required | boolean |
will_take_more_pto_notes | string required if |
{- "accepts_proposed_notice": false,
- "agrees_to_pto_amount": false,
- "agrees_to_pto_amount_notes": "I don't agree.",
- "agrees_to_resignation_reason": false,
- "agrees_to_resignation_reason_notes": "I don't agree.",
- "has_additional_information": true,
- "has_additional_information_notes": "Some extra info.",
- "has_more_salary_info": true,
- "has_more_salary_info_notes": "Some info about the salary.",
- "is_owed_outstanding_reimbursements": true,
- "owed_outstanding_reimbursements": {
- "amount": 1500,
- "notes": "Compensation."
}, - "proposed_last_date": {
- "date": "2042-04-15",
- "notes": "This date is better."
}, - "will_take_more_pto": true,
- "will_take_more_pto_notes": "3 more days."
}
{- "data": {
- "status": "ok"
}
}
Lists all departments for the authorized company specified in the request.
company_id required | string Example: company_id=d2091b1e-b1a4-437a-91ea-2809ffbb6d59 Company ID |
paginate | boolean Paginate option. Default: true. When true, paginates response; otherwise, does not. |
page | integer >= 1 Default: 1 Example: page=1 Starts fetching records after the given page |
page_size | integer [ 1 .. 100 ] Default: 20 Example: page_size=20 Number of items per page |
{- "current_page": 1,
- "data": {
- "company_departments": [
- {
- "company_id": "669f9e18-889f-4c2c-95b8-67795a3113cc",
- "id": "89c4fbb2-cd1f-4334-8e4b-280f8795bbd8",
- "name": "Marketing"
}
]
}, - "total_count": 1,
- "total_pages": 1
}
Creates a new department in the specified company. Department names may be non-unique and must be non-empty with no more than 255 characters (Unicode code points).
Create Company Department request params
company_id required | string The Company ID. Required in all cases, whether the API credentials have access to multiple companies or just one. |
name required | string The name of the company department. May be non-unique and limited to 255 characters, maximum. |
{- "company_id": "669f9e18-889f-4c2c-95b8-67795a3113cc",
- "name": "Marketing"
}
{- "data": {
- "company_department": {
- "company_id": "669f9e18-889f-4c2c-95b8-67795a3113cc",
- "id": "89c4fbb2-cd1f-4334-8e4b-280f8795bbd8",
- "name": "Marketing"
}
}
}
List all company managers of an integration. If filtered by the company_id param, it lists only company managers belonging to the specified company.
company_id | string Example: company_id=0a8s2d1-company-id-2e3f4th A Company ID to filter the results (only applicable for Integration Partners). |
page | integer Example: page=1 Starts fetching records after the given page |
page_size | integer Example: page_size=30 Change the amount of records returned per page, defaults to 20, limited to 100 |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "company_managers": [
- {
- "company_id": "0a8s2d1-company-id-2e3f4th",
- "role": "owner",
- "user_email": "user@example.com",
- "user_id": "983088c9-user-id-023fc08b8625",
- "user_name": "Anne White"
}
], - "current_page": 1,
- "total_count": 1,
- "total_pages": 1
}
Create a Company Manager and sends the invitation email for signing in to the Remote Platform.
actions | string Example: actions=no_invite Complementary action(s) to perform when creating a company manager:
|
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
Company Manager params
company_id | string The Company ID. Required if the access token can access multiple companies. Optional otherwise. |
email required | string <email> The work email of the company manager |
name required | string The name of the company manager |
role required | string The role assigned for the new manager. The value should be one of the following:
|
{- "company_id": "string",
- "email": "user@example.com",
- "name": "string",
- "role": "string"
}
{- "company_manager": {
- "company_id": "0a8s2d1-company-id-2e3f4th",
- "role": "owner",
- "user_email": "user@example.com",
- "user_id": "983088c9-user-id-023fc08b8625",
- "user_name": "Anne White"
}
}
Deletes a Company Manager user
user_id required | string Example: 1a8s2d1-user-id-2e3f4tz User ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "status": "ok"
}
}
Shows a single company manager user
user_id required | string Example: 1a8s2d1-user-id-2e3f4tz User ID |
{- "data": {
- "company_manager": {
- "company_id": "0a8s2d1-company-id-2e3f4th",
- "role": "owner",
- "user_email": "user@example.com",
- "user_id": "983088c9-user-id-023fc08b8625",
- "user_name": "Anne White"
}
}
}
Shows information about the entities that can be controlled by the current auth token.
Authorization required | string Example: Bearer <ANY ACCESS TOKEN> This endpoint works with any of the access tokens provided. You can use an access token obtained through the Client Credentials flow, the Authorization Code flow, or the Refresh Token flow. |
{- "data": {
- "client_id": "1pws9iw986yq1ec57h159q29l",
- "integration": {
- "contact_email": "partner_admin@example.com",
- "display_name": "Integration Display Name",
- "name": "integration_partner"
}
}
}
Downloads a file.
id required | string Example: 93t3j-file-id-9suej43 File ID |
{- "data": {
- "file": {
- "content": "data:application/pdf;base64,iVBORw0KGgoAAAANSUhEUgAAAJUAAACVCAYAAABRorhPAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWF...",
- "id": "9880b711-file-id-ecf8f551bd78",
- "inserted_at": "2021-07-15T18:18:17Z",
- "name": "id.pdf",
- "sub_type": "personal_id",
- "type": "id"
}
}
}
Uploads a file associated with a specified employment.
Please contact api-support@remote.com to request access to this endpoint.
Authorization required | string Example: Bearer <ANY ACCESS TOKEN> This endpoint works with any of the access tokens provided. You can use an access token obtained through the Client Credentials flow, the Authorization Code flow, or the Refresh Token flow. |
File
employment_id required | string |
file required | string <binary> |
type required | string |
{- "data": {
- "file": {
- "id": "9880b711-file-id-ecf8f551bd78",
- "inserted_at": "2021-11-12T17:19:21",
- "name": "id.pdf",
- "sub_type": "personal_id",
- "type": "id"
}
}
}
List benefit offers by employment.
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "benefit_offers_by_employment": [
- {
- "benefit_offers": [
- {
- "benefit_group": {
- "id": "54297cfd-cf60-4cf4-a70f-ac2061d72b44",
- "name": "Health",
- "policy_end_date": "2024-12-31",
- "policy_start_date": "2024-01-01"
}, - "benefit_tier": {
- "description": "This is the premium tier for 2023 that includes medical, dental and vision benefits.",
- "id": "66297cfd-cf60-4cf4-a70f-ac2561d92b04",
- "name": "Premium 2023 (Medical, Dental and Vision)",
- "providers": [
- {
- "id": "88297cfd-cf60-4cf4-a70f-ac2861d92b87",
- "name": "Health Provider"
}
]
}, - "benefits": [
- {
- "costs": {
- "employee_cost": 234,
- "employer_cost": 44
}, - "coverage_end_date": "2025-02-28",
- "coverage_start_date": "2024-03-18",
- "id": "562977cfd-cf60-4cf4-a70f-ac2061d709088",
- "name": "benefit name",
- "projected_costs": null,
- "provider": {
- "id": "88297cfd-cf60-4cf4-a70f-ac2861d92b87",
- "name": "Health Provider"
}, - "status": "enrolled",
- "type": "benefit type"
}
], - "costs": {
- "employee_cost": 234,
- "employer_cost": 44
}
}
], - "costs": {
- "employee_cost": 234,
- "employer_cost": 44
}, - "employment": {
- "country": {
- "alpha_2_code": "PT",
- "code": "PRT",
- "country_subdivisions": [
- {
- "code": "PT-06",
- "name": "Coimbra",
- "subdivision_type": "District"
}, - {
- "code": "PT-11",
- "name": "Lisboa",
- "subdivision_type": "District"
}
], - "name": "Portugal",
- "region": "Europe",
- "subregion": "Southern Europe",
- "supported_json_schemas": [
- "additional_documents",
- "address_details",
- "administrative_details",
- "employment-basic-information",
- "bank_account_details",
- "contract_details",
- "emergency_contact"
]
}, - "given_name": "Given Name",
- "id": "67897cfd-cf60-4cf4-a70f-ac2061d72984",
- "name": "Name",
- "surname": "Surname"
}
}
], - "company_id": "79297cfd-cf60-4cf4-a70f-ac2061d72a74",
- "currency": [
- {
- "code": "EUR",
- "name": "European Euro",
- "slug": "eur-3b840951-099f-4bd5-90b9-032f7bfe51d9",
- "symbol": "€"
}
]
}
}
List all payroll calendars for the company within the requested cycle.
cycle required | string Example: 2024-09 The cycle for which to list the payroll calendars. Format: YYYY-MM |
page | integer >= 1 Default: 1 Example: page=1 Starts fetching records after the given page |
page_size | integer [ 1 .. 100 ] Default: 20 Example: page_size=20 Number of items per page |
{- "current_page": 1,
- "payroll_calendars": [
- {
- "country": {
- "code": "AUT",
- "name": "Austria"
}, - "cycle_frequency": "monthly",
- "cycles": [
- {
- "employee_inclusion_cutoff_date": "2021-01-20",
- "end_date": "2021-01-31",
- "input_cutoff_date": "2021-01-15",
- "payment_date": "2021-01-25",
- "start_date": "2021-01-01"
}
], - "owned_by_remote": true
}
], - "total_count": 1,
- "total_pages": 1
}
Returns a list of all countries that are supported by Remote API alphabetically ordered. The supported list accounts for creating employment with basic information and it does not imply fully onboarding employment via JSON Schema.
Authorization required | string Example: Bearer <ANY ACCESS TOKEN> This endpoint works with any of the access tokens provided. You can use an access token obtained through the Client Credentials flow, the Authorization Code flow, or the Refresh Token flow. |
{- "data": [
- {
- "alpha_2_code": "PT",
- "code": "PRT",
- "name": "Portugal",
- "region": "Europe",
- "subregion": "Southern Europe",
- "supported_json_schemas": [
- "additional_documents",
- "address_details",
- "administrative_details",
- "employment-basic-information",
- "bank_account_details",
- "contract_details",
- "emergency_contact"
]
}
]
}
List all holidays of a country for a specific year. Optionally, it can be filtered by country subdivision.
country_code required | string Example: PRT Country code according to ISO 3166-1 3-digit alphabetic codes |
year required | string Example: 2022 Year for the holidays |
country_subdivision_code | string Example: country_subdivision_code=PT-10 Country subdivision code according to ISO 3166-2 codes |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": [
- {
- "day": "2021-01-01",
- "name": "New Year's Day",
- "note": "The day after New Year's Eve",
- "observed_day": "2021-01-02"
}
]
}
Returns the json schema of a supported form. Possible form names are:
- address_details
- administrative_details
- bank_account_details
- employment_basic_information
- billing_address_details
- contract_details
- emergency_contact
- employment_document_details
- personal_details
- pricing_plan_details
This endpoint requires a company access token, as forms are dependent on certain properties of companies and their current employments.
country_code required | string Example: PRT Country code according to ISO 3-digit alphabetic codes |
form required | string Example: address_details Name of the desired form |
employment_id | string Example: employment_id=663e0b79-c893-45ff-a1b2-f6dcabc098b5 Required for |
only_for_testing_include_scheduled_benefit_groups | boolean FOR TESTING PURPOSES ONLY: Include scheduled benefit groups. |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "additionalProperties": false,
- "properties": {
- "address": {
- "description": "Your street name and house number. PO Box addresses are not supported.",
- "maxLength": 255,
- "title": "Address",
- "type": "string"
}, - "address_line_2": {
- "description": "(Optional) For example, apartment, block, or building number.",
- "maxLength": 255,
- "title": "Address line 2",
- "type": "string"
}, - "city": {
- "description": "Enter your city",
- "maxLength": 255,
- "title": "City",
- "type": "string"
}, - "postal_code": {
- "description": "Enter zip or postal code",
- "maxLength": 255,
- "title": "Postal code",
- "type": "string"
}
}, - "required": [
- "address",
- "city",
- "postal_code"
], - "type": "object"
}
}
Delete a callback previously registered for webhooks
id required | string Webhook Callback ID |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "status": "ok"
}
}
Update a callback previously registered for webhooks
id required | string Webhook Callback ID |
WebhookCallback
subscribed_events required | Array of strings Items Enum: "benefit_renewal_request.created" "billing_document.issued" "company.activated" "company.archived" "company.eor_hiring.additional_information_required" "company.eor_hiring.reserve_payment_requested" "company.eor_hiring.verification_completed" "contract_amendment.canceled" "contract_amendment.deleted" "contract_amendment.done" "contract_amendment.review_started" "contract_amendment.submitted" "custom_field.value_updated" "employment_contract.active_contract_updated" "employment.account.updated" "employment.details.updated" "employment.employment_agreement.available" "employment.eor_hiring.proof_of_payment_accepted" "employment.eor_hiring.invoice_created" "employment.no_longer_eligible_for_onboarding_cancellation" "employment.onboarding_task.completed" "employment.onboarding.completed" "employment.onboarding.cancelled" "employment.personal_information.updated" "employment.probation_completion_letter.cancelled" "employment.probation_completion_letter.completed" "employment.probation_completion_letter.submitted" "employment.probation.period_ending_reminder_sent" "employment.probation_period_extension.cancelled" "employment.probation_period_extension.completed" "employment.probation_period_extension.submitted" "employment.start_date.changed" "employment.user_status.activated" "employment.user_status.deactivated" "expense.approved" "expense.declined" "expense.deleted" "expense.reimbursed" "expense.submitted" "expense.updated" "identity_verification.verification_required" "incentive.created" "incentive.deleted" "incentive.paid" "incentive.processing_started" "incentive.updated" "offboarding.completed" "offboarding.deleted" "offboarding.done" "offboarding.review_started" "offboarding.submitted_to_payroll" "offboarding.submitted" "payslip.released" "sso_configuration.disabled" "sso_configuration.enabled" "sso_configuration.updated" "timeoff.approved" "timeoff.canceled" "timeoff.date_changed" "timeoff.declined" "timeoff.requested" "timeoff.taken" "timeoff.updated" "timesheet.submitted" "travel_letter.approved_by_manager" "travel_letter.approved_by_remote" "travel_letter.declined_by_manager" "travel_letter.declined_by_remote" "travel_letter.requested" "work_authorization.approved_by_manager" "work_authorization.approved_by_remote" "work_authorization.cancelled" "work_authorization.declined_by_manager" "work_authorization.declined_by_remote" "work_authorization.requested" |
url | string |
{- "subscribed_events": [
- "employment.onboarding_task.completed"
],
}
{- "data": {
- "webhook_callback": {
- "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
- "subscribed_events": [
- "employment.onboarding_task.completed"
],
}
}
}
Register a callback to be used for webhooks
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
WebhookCallback
subscribed_events | Array of strings Items Enum: "benefit_renewal_request.created" "billing_document.issued" "company.activated" "company.archived" "company.eor_hiring.additional_information_required" "company.eor_hiring.reserve_payment_requested" "company.eor_hiring.verification_completed" "contract_amendment.canceled" "contract_amendment.deleted" "contract_amendment.done" "contract_amendment.review_started" "contract_amendment.submitted" "custom_field.value_updated" "employment_contract.active_contract_updated" "employment.account.updated" "employment.details.updated" "employment.employment_agreement.available" "employment.eor_hiring.proof_of_payment_accepted" "employment.eor_hiring.invoice_created" "employment.no_longer_eligible_for_onboarding_cancellation" "employment.onboarding_task.completed" "employment.onboarding.completed" "employment.onboarding.cancelled" "employment.personal_information.updated" "employment.probation_completion_letter.cancelled" "employment.probation_completion_letter.completed" "employment.probation_completion_letter.submitted" "employment.probation.period_ending_reminder_sent" "employment.probation_period_extension.cancelled" "employment.probation_period_extension.completed" "employment.probation_period_extension.submitted" "employment.start_date.changed" "employment.user_status.activated" "employment.user_status.deactivated" "expense.approved" "expense.declined" "expense.deleted" "expense.reimbursed" "expense.submitted" "expense.updated" "identity_verification.verification_required" "incentive.created" "incentive.deleted" "incentive.paid" "incentive.processing_started" "incentive.updated" "offboarding.completed" "offboarding.deleted" "offboarding.done" "offboarding.review_started" "offboarding.submitted_to_payroll" "offboarding.submitted" "payslip.released" "sso_configuration.disabled" "sso_configuration.enabled" "sso_configuration.updated" "timeoff.approved" "timeoff.canceled" "timeoff.date_changed" "timeoff.declined" "timeoff.requested" "timeoff.taken" "timeoff.updated" "timesheet.submitted" "travel_letter.approved_by_manager" "travel_letter.approved_by_remote" "travel_letter.declined_by_manager" "travel_letter.declined_by_remote" "travel_letter.requested" "work_authorization.approved_by_manager" "work_authorization.approved_by_remote" "work_authorization.cancelled" "work_authorization.declined_by_manager" "work_authorization.declined_by_remote" "work_authorization.requested" |
url required | string |
{- "subscribed_events": [
- "employment.onboarding_task.completed"
],
}
{- "data": {
- "webhook_callback": {
- "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
- "subscribed_events": [
- "employment.onboarding_task.completed"
],
}
}
}
Cancel onboarding.
Requirements for the cancellation to succeed:
invited
, created
, created_awaiting_reserve
, created_reserve_paid
, pre_hire
statusemployment_id required | string Example: 31b8e49b-aa1c-47af-849c-3d0a53e20e0d Employment ID |
{- "data": {
- "status": "ok"
}
}
Shows the time off balance for the given employment_id.
employment_id required | string Example: 03675381-50c9-492d-b8ed-e84e99046091 Employment ID for which to show the time off balance |
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "timeoff_balance": {
- "contractual_entitled": {
- "days": 25,
- "hours": 0
}, - "leave_entitlements": [
- {
- "entitled": {
- "days": 28,
- "hours": 0
}, - "expiry_date": "2022-12-31",
- "name": "Annual paid time off",
- "remaining": {
- "days": 25,
- "hours": 0
}, - "taken": {
- "days": 3,
- "hours": 0
}, - "type": "annual_paid_timeoff"
}, - {
- "entitled": {
- "days": 3,
- "hours": 0
}, - "expiry_date": "2022-12-31",
- "name": "Extra days for good performance",
- "remaining": {
- "days": 3,
- "hours": 0
}, - "taken": {
- "days": 0,
- "hours": 0
}, - "type": "additional_pto"
}
], - "taken": {
- "days": 3,
- "hours": 0
}, - "total_entitled_days": 31,
- "working_hours_per_day": 8
}
}
}
List benefit offers for each country.
Authorization required | string Example: Bearer <COMPANY-SCOPED ACCESS TOKEN> Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow. The refresh token needs to have been obtained through the Authorization Code flow. |
{- "data": {
- "company_id": "79297cfd-cf60-4cf4-a70f-ac2061d72a74",
- "country_summaries": [
- [
- {
- "country": {
- "alpha_2_code": "PT",
- "code": "PRT",
- "country_subdivisions": [
- {
- "code": "PT-06",
- "name": "Coimbra",
- "subdivision_type": "District"
}, - {
- "code": "PT-11",
- "name": "Lisboa",
- "subdivision_type": "District"
}
], - "name": "Portugal",
- "region": "Europe",
- "subregion": "Southern Europe",
- "supported_json_schemas": [
- "additional_documents",
- "address_details",
- "administrative_details",
- "employment-basic-information",
- "bank_account_details",
- "contract_details",
- "emergency_contact"
]
}, - "employee_stats": {
- "number_of_employees_enrolled": 10,
- "number_of_employees_offered": 12
}, - "offered_benefit_groups": [
- {
- "benefit_group": {
- "id": "54297cfd-cf60-4cf4-a70f-ac2061d72b44",
- "name": "Health",
- "policy_end_date": "2024-12-31",
- "policy_start_date": "2024-01-01"
}, - "employee_stats": {
- "number_of_employees_enrolled": 10,
- "number_of_employees_offered": 12
}, - "offered_benefit_tiers": [
- {
- "benefit_tier": {
- "description": "This is the premium tier for 2023 that includes medical, dental and vision benefits.",
- "id": "66297cfd-cf60-4cf4-a70f-ac2561d92b04",
- "name": "Premium 2023 (Medical, Dental and Vision)",
- "providers": [
- {
- "id": "88297cfd-cf60-4cf4-a70f-ac2861d92b87",
- "name": "Health Provider"
}
]
}, - "employee_stats": {
- "number_of_employees_enrolled": 10,
- "number_of_employees_offered": 12
}
}
]
}
]
}
]
]
}
}