Remote Employments API
The Employments API from Remote — 53 operation(s) for employments.
The Employments API from Remote — 53 operation(s) for employments.
openapi: 3.0.0
info:
title: Remote Address Details Employments API
version: 0.1.0
servers:
- url: https://gateway.remote.com/
variables: {}
- url: https://gateway.remote-sandbox.com/
variables: {}
security:
- OAuth2: []
tags:
- name: Employments
paths:
/v2/employments/{employment_id}/pricing-plan-details:
put:
callbacks: {}
deprecated: false
description: 'Updates the pricing plan for an employment. The frequency determines how often Remote bills the
employer for management fees. Annual billing typically offers a discount.
## Scopes
| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage employments (`employments`) | - | Manage employments (`employment:write`) |
'
operationId: put_v2_employments_employment_id_pricing-plan-details
parameters:
- description: Employment ID
example: 93t3j-employment-id-9suej43
in: path
name: employment_id
required: true
schema:
type: string
- description: Version of the pricing_plan_details form schema
example: 1
in: query
name: pricing_plan_details_json_schema_version
required: false
schema:
default: latest
oneOf:
- description: Specific version number
minimum: 1
type: integer
- description: Use latest version
enum:
- latest
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmploymentPricingPlanDetailsParams'
description: Employment pricing plan details params
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/EmploymentDetailsOnlyResponse'
description: Success
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
description: Bad Request
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenResponse'
description: Forbidden
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundResponse'
description: Not Found
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/ConflictResponse'
description: Conflict
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
description: Unprocessable Entity
security:
- CustomerAPIToken:
- https://gateway.remote.com/company.manage
- employment:write
- employments
- all:write
OAuth2AuthorizationCode:
- https://gateway.remote.com/company.manage
- employment:write
- employments
- all:write
summary: Update pricing plan details
tags:
- Employments
/v1/cancel-onboarding/{employment_id}:
post:
callbacks: {}
deprecated: false
description: 'Cancel onboarding.
Requirements for the cancellation to succeed:
* Employment has to be in `invited`, `created`, `created_awaiting_reserve`, `created_reserve_paid`, `pre_hire` status
* Employee must not have signed the employment contract
## Scopes
| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage employments (`employments`) | - | Manage onboarding (`onboarding:write`) |
'
operationId: post_v1_cancel-onboarding_employment_id
parameters:
- description: Employment ID
example: 31b8e49b-aa1c-47af-849c-3d0a53e20e0d
in: path
name: employment_id
required: true
schema:
type: string
- description: 'Whether the request should be performed async
'
example: true
in: query
name: async
required: false
schema:
type: boolean
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
description: Success
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
description: Bad Request
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
description: Unprocessable Entity
security:
- CustomerAPIToken:
- https://gateway.remote.com/company.manage
- onboarding:write
- employments
- all:write
OAuth2AuthorizationCode:
- https://gateway.remote.com/company.manage
- onboarding:write
- employments
- all:write
summary: Cancel onboarding
tags:
- Employments
/v2/employments/{employment_id}/address-details:
put:
callbacks: {}
deprecated: false
description: 'Updates employment''s 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](#tag/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](https://developer.remote.com/docs/how-json-schemas-work) 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](https://developer.remote.com/docs/how-json-schemas-form) tool.
## Scopes
| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage employments (`employments`) | - | Manage employments (`employment:write`) |
'
operationId: put_v2_employments_employment_id_address-details
parameters:
- description: Employment ID
example: 93t3j-employment-id-9suej43
in: path
name: employment_id
required: true
schema:
type: string
- description: Version of the address_details form schema
example: 1
in: query
name: address_details_json_schema_version
required: false
schema:
default: latest
oneOf:
- description: Specific version number
minimum: 1
type: integer
- description: Use latest version
enum:
- latest
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmploymentAddressDetailsParams'
description: Employment address details params
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/EmploymentDetailsOnlyResponse'
description: Success
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
description: Bad Request
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenResponse'
description: Forbidden
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundResponse'
description: Not Found
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/ConflictResponse'
description: Conflict
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
description: Unprocessable Entity
security:
- CustomerAPIToken:
- https://gateway.remote.com/company.manage
- employment:write
- employments
- all:write
OAuth2AuthorizationCode:
- https://gateway.remote.com/company.manage
- employment:write
- employments
- all:write
summary: Update address details
tags:
- Employments
/v1/employments:
get:
callbacks: {}
deprecated: false
description: '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](#tag/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](https://developer.remote.com/docs/how-json-schemas-work) 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](https://developer.remote.com/docs/how-json-schemas-work) tool.
'
operationId: get_v1_employments
parameters:
- description: '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.
'
example: Bearer <COMPANY-SCOPED ACCESS TOKEN>
in: header
name: Authorization
required: true
schema:
type: string
- description: Company ID
example: 93t3j-company-id-9suej43
in: query
name: company_id
required: false
schema:
type: string
- description: Filters the results by employments whose login email matches the value
example: anna@example.com
in: query
name: email
required: false
schema:
type: string
- description: 'Filters the results by employments whose status matches the value.
Supports multiple values separated by commas.
Also supports the value `incomplete` to get all employments that are not onboarded yet.
'
in: query
name: status
required: false
schema:
type: string
- description: Filters the results by employments whose employment product type matches the value
example: contractor
in: query
name: employment_type
required: false
schema:
type: string
- description: 'Filters the results by employments whose employment model matches the value.
Possible values: `global_payroll`, `peo`, `eor`
'
example: global_payroll
in: query
name: employment_model
required: false
schema:
enum:
- global_payroll
- peo
- eor
type: string
- description: Filters the results by the employment's short ID. Returns at most one result.
example: aB1cD2
in: query
name: short_id
required: false
schema:
type: string
- description: Starts fetching records after the given page
example: 1
in: query
name: page
required: false
schema:
default: 1
minimum: 1
type: integer
- description: Number of items per page
example: 20
in: query
name: page_size
required: false
schema:
default: 20
maximum: 100
minimum: 1
type: integer
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListEmploymentsResponse'
description: Success
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
description: Bad Request
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenResponse'
description: Forbidden
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/ConflictResponse'
description: Conflict
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
description: Unprocessable Entity
summary: List employments
tags:
- Employments
post:
callbacks: {}
deprecated: false
description: 'Creates an employment. We support creating employees and contractors.
## Global Payroll Employees
To create a Global Payroll employee, pass `global_payroll_employee` as the `type` parameter,
and provide the id of the specific legal entity that the employee will be engaged by and billed to as the `engaged_by_legal_entity_id` parameter.
## HRIS Employees
To create a HRIS employee, pass `hris` as the `type` parameter.
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](#tag/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](https://developer.remote.com/docs/how-json-schemas-work) 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](https://developer.remote.com/docs/how-json-schemas-work) tool.
## Scopes
| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage employments (`employments`) | - | Manage employments (`employment:write`) |
'
operationId: post_v1_employments
parameters:
- description: '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.
'
example: Bearer <COMPANY-SCOPED ACCESS TOKEN>
in: header
name: Authorization
required: true
schema:
type: string
- description: Version of the form schema
example: 1
in: query
name: json_schema_version
required: false
schema:
default: latest
oneOf:
- description: Specific version number
minimum: 1
type: integer
- description: Use latest version
enum:
- latest
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmploymentCreateParams'
description: Employment params
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/EmploymentCreationResponse'
description: Success
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
description: Bad Request
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenResponse'
description: Forbidden
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/ConflictResponse'
description: Conflict
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
description: Unprocessable Entity
security:
- CustomerAPIToken:
- https://gateway.remote.com/company.manage
- employment:write
- employments
- all:write
OAuth2AuthorizationCode:
- https://gateway.remote.com/company.manage
- employment:write
- employments
- all:write
summary: Create employment
tags:
- Employments
/v1/employee/bank-account:
get:
callbacks: {}
deprecated: false
description: 'Returns the authenticated employee''s bank account details.
This endpoint requires and returns country-specific data. The exact fields vary depending on which
country the authenticated employee''s employment is in. Query the
[Show form schema](#tag/Countries/operation/get_show_form_country) endpoint with `bank_account_details`
as the form name to discover the schema for a given country.
## Scopes
| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage employments (`employments`) | View bank accounts (`bank_account:read`) | Manage bank accounts (`bank_account:write`) |
'
operationId: get_v1_employee_bank-account
parameters:
- description: Version of the bank_account_details form schema
example: 1
in: query
name: bank_account_details_json_schema_version
required: false
schema:
default: latest
oneOf:
- description: Specific version number
minimum: 1
type: integer
- description: Use latest version
enum:
- latest
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/EmploymentDetailsOnlyResponse'
description: Success
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
description: Bad Request
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenResponse'
description: Forbidden
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundResponse'
description: Not Found
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
description: Unprocessable Entity
security:
- OAuth2Assertion:
- bank_account:read
- bank_account:write
- employments
- all:write
- all:read
summary: Show employee bank account
tags:
- Employments
put:
callbacks: {}
deprecated: false
description: 'Upserts the authenticated employee''s bank account details.
This endpoint requires and returns country-specific data. The exact fields vary depending on which
country the authenticated employee''s employment is in. Query the
[Show form schema](#tag/Countries/operation/get_show_form_country) endpoint with `bank_account_details`
as the form name to discover the schema for a given country.
## Scopes
| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage employments (`employments`) | - | Manage bank accounts (`bank_account:write`) |
'
operationId: put_v1_employee_bank-account
parameters:
- description: Version of the bank_account_details form schema
example: 1
in: query
name: bank_account_details_json_schema_version
required: false
schema:
default: latest
oneOf:
- description: Specific version number
minimum: 1
type: integer
- description: Use latest version
enum:
- latest
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmploymentBankAccountDetailsParams'
description: Employee bank account details params
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/EmploymentDetailsOnlyResponse'
description: Success
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
description: Bad Request
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenResponse'
description: Forbidden
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundResponse'
description: Not Found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
description: Unprocessable Entity
security:
- OAuth2Assertion:
- bank_account:write
- employments
- all:write
summary: Update employee bank account
tags:
- Employments
/v2/employments/{employment_id}/engagement-agreement-details:
get:
callbacks: {}
deprecated: false
description: 'Returns the engagement agreement details for an employment.
## Scopes
| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage employments (`employments`) | View employments (`employment:read`) | Manage employments (`employment:write`) |
'
operationId: get_v2_employments_employment_id_engagement-agreement-details
parameters:
- description: Employment ID
example: 93t3j-employment-id-9suej43
in: path
name: employment_id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/EmploymentEngagementAgreementDetailsResponse'
description: Success
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
description: Bad Request
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenResponse'
description: Forbidden
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundResponse'
description: Not Found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
description: Unprocessable Entity
security:
- CustomerAPIToken:
- https://gateway.remote.com/company.manage
- employment:read
- employment:write
- employments
- all:write
- all:read
OAuth2AuthorizationCode:
- https://gateway.remote.com/company.manage
- employment:read
- employment:write
- employments
- all:write
- all:read
summary: Get engagement agreement details
tags:
- Employments
post:
callbacks: {}
deprecated: false
description: 'Creates or updates the engagement agreement details for an employment.
This endpoint requires country-specific data. The exact required 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](#tag/Countries) category.
Please note that compliance requirements for each country are subject to change according to local laws.
Using Remote''s [json-schema-form](https://developer.remote.com/docs/how-json-schemas-work) is recommended
to avoid compliance issues and to have the latest version of a country''s requirements.
## Scopes
| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage employments (`employments`) | - | Manage employments (`employment:write`) |
'
operationId: post_v2_employments_employment_id_engagement-agreement-details
parameters:
- description: Employment ID
example: 93t3j-employment-id-9suej43
in: path
name: employment_id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmploymentEngagementAgreementDetailsParams'
description: Employment engagement agreement details params
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
description: Success
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
description: Bad Request
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenResponse'
description: Forbidden
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundResponse'
description: Not Found
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/ConflictResponse'
description: Conflict
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
description: Unprocessable Entity
security:
- CustomerAPIToken:
- https://gateway.remote.com/company.manage
- employment:write
- employments
- all:write
OAuth2AuthorizationCode:
- https://gateway.remote.com/company.manage
- employment:write
- employments
- all:write
summary: Upsert engagement agreement details
tags:
- Employments
/v1/employee/documents/{id}:
get:
callbacks: {}
deprecated: false
description: '## Scopes
| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage employment documents (`employment_documents`) | View documents (`document:read`) | Manage documents (`document:write`) |
'
operationId: get_v1_employee_documents_id
parameters:
- description: Document ID
example: 93t3j-file-id-9suej43
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DownloadDocumentResponse'
description: Success
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
description: Unauthorized
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundResponse'
description: Not Found
'422':
conten
# --- truncated at 32 KB (402 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/remote/refs/heads/main/openapi/remote-employments-api-openapi.yml