Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://gateway.remote.com
https://gateway.remote-sandbox.com
/v1/companies
Creates a new company.
### Creating a company with only the required request body parameters
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.
### Accepting the Terms of Service
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”.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| action | query | optional | string | Complementary action(s) to perform when creating a company:
If |
Create Company params
application/json
CreateCompanyParams
| Property | Type | Required |
|---|---|---|
| name | string | required |
| tax_number | string | optional |
| external_id | string | optional |
| country_code | string | required |
| email_domain | string | optional |
| phone_number | string | optional |
| address_details | object | optional |
| desired_currency | string | required |
| company_owner_name | string | required |
| company_owner_email | string | required |
| registration_number | string | optional |
| bank_account_details | object | optional |
| terms_of_service_accepted_at | string | required |
Created
Bad Request
Forbidden
Conflict
Unprocessable Entity
Unprocessable Entity
POST /v1/companies
/v1/company-departments
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
application/json
CreateCompanyDepartmentParams
| Property | Type | Required |
|---|---|---|
| name | string | required |
| company_id | string | required |
Created
Not Found
Unprocessable Entity
POST /v1/company-departments
/v1/company-managers
Create a Company Manager and sends the invitation email for signing in to the Remote Platform.
Company Manager params
application/json
CompanyManagerParams
| Property | Type | Required |
|---|---|---|
| name | string | required |
| role | string | required |
| string | required | |
| company_id | string | optional |
Success
Bad Request
Unauthorized
Not Found
Unprocessable Entity
Too many requests
POST /v1/company-managers
/v1/contract-amendments
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.
Contract Amendment
application/json
CreateContractAmendmentParams
| Property | Type | Required |
|---|---|---|
| employment_id | string | required |
| contract_amendment | object | required |
| amendment_contract_id | string | required |
Success
Unauthorized
Not Found
Unprocessable Entity
POST /v1/contract-amendments
/v1/contract-amendments/automatable
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.
Contract Amendment
application/json
CreateContractAmendmentParams
| Property | Type | Required |
|---|---|---|
| employment_id | string | required |
| contract_amendment | object | required |
| amendment_contract_id | string | required |
Success
Unauthorized
Not Found
Unprocessable Entity
POST /v1/contract-amendments/automatable
/v1/contract-amendments/schema
Returns the json schema of the contract_amendment form.
This endpoint requires a company access token, as forms are dependent on certain
properties of companies and their current employments.
Contract Amendment Form
application/json
ContractAmendmentSchemaParams
| Property | Type | Required |
|---|---|---|
| form | string | optional |
| country_code | string | required |
| employment_id | string | required |
Success
Unauthorized
Not Found
Unprocessable Entity
POST /v1/contract-amendments/schema
/v1/cost-calculator/estimation
Estimate params
application/json
CostCalculatorEstimateParams
| Property | Type | Required |
|---|---|---|
| employments | array | required |
| └ age | integer | optional |
| └ title | string | optional |
| └ region_slug | string | required |
| └ employment_term | string | optional |
| └ annual_gross_salary | integer | optional |
| └ regional_to_employer_exchange_rate | string | optional |
| └ annual_gross_salary_in_employer_currency | integer | optional |
| include_benefits | boolean | optional |
| employer_currency_slug | string | required |
| include_cost_breakdowns | boolean | optional |
Success
Not Found
Unprocessable Entity
Internal Server Error
POST /v1/cost-calculator/estimation
/v1/cost-calculator/estimation-pdf
Estimate params
application/json
CostCalculatorEstimateParams
| Property | Type | Required |
|---|---|---|
| employments | array | required |
| └ age | integer | optional |
| └ title | string | optional |
| └ region_slug | string | required |
| └ employment_term | string | optional |
| └ annual_gross_salary | integer | optional |
| └ regional_to_employer_exchange_rate | string | optional |
| └ annual_gross_salary_in_employer_currency | integer | optional |
| include_benefits | boolean | optional |
| employer_currency_slug | string | required |
| include_cost_breakdowns | boolean | optional |
Success
Not Found
Unprocessable Entity
Internal Server Error
POST /v1/cost-calculator/estimation-pdf
/v1/employments
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.
Employment params
application/json
EmploymentBasicParams
| Property | Type | Required |
|---|---|---|
| type | string | optional |
| full_name | string | required |
| job_title | string | required |
| country_code | string | required |
| personal_email | string | required |
| basic_information | object | optional |
| └ name | string | optional |
| string | optional | |
| └ job_title | string | optional |
| └ has_seniority_date | string | optional |
| └ provisional_start_date | string | optional |
| provisional_start_date | string | optional |
Success
Bad Request
Unauthorized
Not Found
Unprocessable Entity
Too many requests
POST /v1/employments
/v1/employments/{employment_id}/invite
Invite an employment to start the self-enrollment.
Requirements for the invitation to succeed:
contract_details and pricing_plan_detailsprovisional_start_date must consider the minimum onbaording 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.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employment_id | path | required | string | Employment ID |
Success
Bad Request
Conflict
Unprocessable Entity
Unprocessable Entity
POST /v1/employments/{employment_id}/invite
/v1/ready
Completes the employee onboarding. When all tasks are completed, the employee is marked as in review status
Employment slug
application/json
CompleteOnboarding
| Property | Type | Required |
|---|---|---|
| employment_id | string | optional |
Success
Bad Request
Unauthorized
Not Found
Unprocessable Entity
Too many requests
POST /v1/ready
/v1/expenses
Creates an approved expense
Expenses
application/json
ParamsToCreateExpense
| Property | Type | Required |
|---|---|---|
| title | string | required |
| amount | integer | required |
| receipt | object | optional |
| └ name | string | required |
| └ content | string | required |
| category | string | optional |
| currency | string | required |
| receipts | array | optional |
| └ name | string | required |
| └ content | string | required |
| timezone | string | optional |
| tax_amount | integer | optional |
| reviewed_at | string | optional |
| reviewer_id | string | optional |
| expense_date | string | required |
| employment_id | string | required |
Success
Bad Request
Unauthorized
Not Found
Unprocessable Entity
Too many requests
POST /v1/expenses
/v1/documents
Uploads a file associated with a specified employment.
Please contact api-support@remote.com to request access to this endpoint.
The file to be uploaded
multipart/form-data
FileParams
| Property | Type | Required |
|---|---|---|
| file | string | required |
| type | string | required |
| employment_id | string | required |
Created
Bad Request
Unauthorized
Not Found
Unprocessable Entity
Too many requests
POST /v1/documents
/v1/incentives
Creates an Incentive.
Incentives use the currency of the employment specified provided in the employment_id field.
Incentive
application/json
CreateOneTimeIncentiveParams
| Property | Type | Required |
|---|---|---|
| note | string | optional |
| amount | integer | required |
| effective_date | string | required |
| amount_tax_type | string | required |
| type | string | required |
| employment_id | string | required |
Success
Bad Request
Unauthorized
Not Found
Unprocessable Entity
Too many requests
POST /v1/incentives
/auth/oauth2/token
Endpoint to exchange tokens in the Authorization Code, Client Credentials and Refresh Token flows
OAuth2Token
application/json
OAuth2TokenParams
| Property | Type | Required |
|---|---|---|
| code | string | optional |
| grant_type | string | optional |
Success
Bad Request
Unauthorized
Not Found
Unprocessable Entity
Too many requests
POST /auth/oauth2/token
/v1/offboardings
Creates an Offboarding request.
Incentive
application/json
CreateOffboardingParams
| Property | Type | Required |
|---|---|---|
| type | string | required |
| employment_id | string | required |
| termination_details | object | required |
| └ confidential | boolean | required |
| └ personal_email | string | optional |
| └ timesheet_file | object | optional |
| └ name | string | required |
| └ content | string | required |
| └ employee_awareness | object | optional |
| └ date | string | optional |
| └ note | string | optional |
| └ reason_description | string | required |
| └ termination_reason | string | required |
| └ additional_comments | string | optional |
| └ risk_assessment_reasons | array | required |
| └ termination_reason_files | array | optional |
| └ name | string | required |
| └ content | string | required |
| └ proposed_termination_date | string | required |
| └ will_challenge_termination | boolean | required |
| └ will_challenge_termination_description | string | optional |
Success
Bad Request
Unauthorized
Not Found
Unprocessable Entity
Too many requests
Internal Server Error
POST /v1/offboardings
/v1/incentives/recurring
Create a Recurring Incentive, that is, a monthly paid incentive.
Incentives use the currency of the employment specified provided in the employment_id field.
RecurringIncentive
application/json
CreateRecurringIncentiveParams
| Property | Type | Required |
|---|---|---|
| note | string | optional |
| amount | integer | required |
| effective_date | string | required |
| amount_tax_type | string | required |
| type | string | required |
| employment_id | string | required |
| duration_in_months | string | optional |
Success
Bad Request
Unauthorized
Not Found
Unprocessable Entity
Too many requests
POST /v1/incentives/recurring
/v1/sandbox/employments
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
Employment params
application/json
EmploymentBasicParams
| Property | Type | Required |
|---|---|---|
| type | string | optional |
| full_name | string | required |
| job_title | string | required |
| country_code | string | required |
| personal_email | string | required |
| basic_information | object | optional |
| └ name | string | optional |
| string | optional | |
| └ job_title | string | optional |
| └ has_seniority_date | string | optional |
| └ provisional_start_date | string | optional |
| provisional_start_date | string | optional |
Success
Bad Request
Unauthorized
Not Found
Unprocessable Entity
Too many requests
POST /v1/sandbox/employments
/v1/sandbox/webhook-callbacks/trigger
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
application/json
WebhookTriggerParams
| Property | Type | Required |
|---|---|---|
| event_type | string | optional |
| employment_id | string | optional |
Success
Bad Request
Unauthorized
Not Found
Unprocessable Entity
Too many requests
POST /v1/sandbox/webhook-callbacks/trigger
/v1/timeoff
Creates a Time Off record
Timeoff
application/json
CreateApprovedTimeoffParams
| Property | Type | Required |
|---|---|---|
| notes | string | optional |
| document | object | optional |
| └ name | string | required |
| └ content | string | required |
| end_date | string | required |
| timezone | string | required |
| start_date | string | required |
| timeoff_days | array | required |
| └ day | string | optional |
| └ hours | integer | optional |
| timeoff_type | string | required |
| employment_id | string | required |
| status | string | optional |
| approved_at | string | optional |
| approver_id | string | optional |
Created
Bad Request
Unauthorized
Not Found
Unprocessable Entity
Unprocessable Entity
POST /v1/timeoff
/v1/webhook-callbacks
Register a callback to be used for webhooks
WebhookCallback
application/json
CreateWebhookCallbackParams
| Property | Type | Required |
|---|---|---|
| url | string | required |
| subscribed_events | array | optional |
Success
Unauthorized
Not Found
Unprocessable Entity
POST /v1/webhook-callbacks
ActionError
{
"type": "object",
"title": "ActionError",
"required": [
"code",
"message",
"action"
],
"x-struct": null,
"properties": {
"code": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "An error code that describes the nature of the error."
},
"action": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "The action that lead to the error message."
},
"message": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "A developer friendly error message that gives details on what the error was and how it may be remedied."
}
},
"x-validate": null
}
ActionErrors
{
"type": "array",
"items": {
"$ref": "#/components/schemas/ActionError"
},
"title": "ActionErrors",
"x-struct": null,
"x-validate": null
}
AmountTaxType
{
"enum": [
"gross",
"net"
],
"type": "string",
"title": "AmountTaxType",
"example": "net",
"x-struct": null,
"x-validate": null,
"description": " Whether the amount given accounts for taxes or not.\n\n `gross` indicates that the amount given is the amount to be paid before taxes\n are subtracted.\n\n `net` indicates that the amount given is the amount which will be paid to the\n employee after taxes. Remote will gross this up to ensure the taxes are\n included and employee receives the amount requested without further reduction.\n"
}
ApproveExpenseParams
{
"type": "object",
"title": "ApproveExpenseParams",
"example": {
"status": "approved"
},
"required": [
"status"
],
"x-struct": null,
"properties": {
"status": {
"enum": [
"approved"
],
"type": "string",
"x-struct": null,
"x-validate": null
}
},
"x-validate": null,
"description": "Approve an expense"
}
AuthorizationCodeParams
{
"type": "object",
"title": "AuthorizationCodeParams",
"example": {
"code": "eyJhbG...xb6H0",
"grant_type": "authorization_code"
},
"required": [
"grant_type",
"code"
],
"x-struct": null,
"properties": {
"code": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "The authorization code generated in Authorization Code flow"
},
"grant_type": {
"enum": [
"authorization_code"
],
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "The Authorization flow"
}
},
"x-validate": null
}
AuthorizationCodeResponse
{
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/BaseTokenResponse"
},
{
"type": "object",
"example": {
"user_id": "6550e536-8655-4bce-8bd9-b295f786ad71",
"company_id": "6e60f5f9-e6a6-4b04-b13c-84bced848bab",
"expires_in": 7200,
"token_type": "Bearer",
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.cThIIoDvwdueQB468K5xDc5633seEFoqwxjF_xSJyQQ",
"refresh_token": "b480036a-d229-49ef-a606-7e8fba58a5eb"
},
"x-struct": null,
"properties": {
"user_id": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "The ID of the user who connected the company."
},
"company_id": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "The ID of the connected company."
},
"refresh_token": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "The refresh token. This token must be stored and used for issuing new access tokens for managing the company's resources."
}
},
"x-validate": null
}
],
"title": "AuthorizationCodeResponse",
"x-struct": null,
"x-validate": null
}
BadRequestResponse
{
"type": "object",
"oneOf": [
{
"type": "object",
"required": [
"message"
],
"x-struct": null,
"properties": {
"message": {
"type": "string",
"x-struct": null,
"x-validate": null
}
},
"x-validate": null
},
{
"type": "object",
"x-struct": null,
"properties": {
"message": {
"type": "object",
"required": [
"code",
"message"
],
"x-struct": null,
"properties": {
"code": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"message": {
"type": "string",
"x-struct": null,
"x-validate": null
}
},
"x-validate": null
}
},
"x-validate": null
}
],
"title": "BadRequestResponse",
"example": {
"message": "invalid {resource}"
},
"x-struct": null,
"x-validate": null
}
Base64File
{
"type": "object",
"title": "Base64File",
"example": {
"name": "receipt.pdf",
"content": "UGVyaW9kIEVuZCBEYXRlLFBheSBEYXRlLEVtcG...5jZSBPZiBSZXNpZGVuYdXJyZW50LEFsbG93"
},
"required": [
"name",
"content"
],
"x-struct": null,
"properties": {
"name": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "The file name."
},
"content": {
"type": "string",
"format": "binary",
"x-struct": null,
"x-validate": null,
"description": "The content in base64 encoding."
}
},
"x-validate": null,
"description": "All the params needed upload a base64 file."
}
BaseTokenResponse
{
"type": "object",
"title": "BaseTokenResponse",
"example": {
"expires_in": 7200,
"token_type": "Bearer",
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.cThIIoDvwdueQB468K5xDc5633seEFoqwxjF_xSJyQQ"
},
"x-struct": null,
"properties": {
"expires_in": {
"type": "integer",
"format": "int32",
"x-struct": null,
"x-validate": null,
"description": "Number of seconds until token is expired."
},
"token_type": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "The type of the token. For now, always `Bearer`."
},
"access_token": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "A JWT token."
}
},
"x-validate": null
}
Benefit
{
"type": "object",
"title": "Benefit",
"example": {
"id": "562977cfd-cf60-4cf4-a70f-ac2061d709088X",
"name": "benefit name",
"type": "benefit type",
"costs": {
"employee_cost": 234,
"employer_cost": 44
},
"status": "enrolled",
"provider": {
"id": "88297cfd-cf60-4cf4-a70f-ac2861d92b87X",
"name": "Health Provider"
},
"projected_costs": null,
"coverage_end_date": "2025-02-28",
"coverage_start_date": "2024-03-18"
},
"required": [
"id",
"status",
"name",
"type",
"coverage_start_date",
"coverage_end_date",
"provider",
"costs",
"projected_costs"
],
"x-struct": null,
"properties": {
"id": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"name": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"type": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"costs": {
"$ref": "#/components/schemas/Costs"
},
"status": {
"enum": [
"initiated",
"enrolled",
"waived"
],
"type": "string",
"x-struct": null,
"x-validate": null
},
"provider": {
"$ref": "#/components/schemas/BenefitProvider"
},
"projected_costs": {
"$ref": "#/components/schemas/Costs"
},
"coverage_end_date": {
"type": "string",
"format": "date",
"x-struct": null,
"x-validate": null
},
"coverage_start_date": {
"type": "string",
"format": "date",
"x-struct": null,
"x-validate": null
}
},
"x-validate": null,
"description": "Benefits with status enrolled have their summed costs in costs.\nBenefits with status initiated have their summed costs in projected_costs.\nBenefit-offers where the employer opted-out have benefit_tier: null in the response.\n"
}
BenefitGroup
{
"type": "object",
"title": "BenefitGroup",
"example": {
"id": "54297cfd-cf60-4cf4-a70f-ac2061d72b44X",
"name": "Health",
"policy_end_date": "2024-12-31",
"policy_start_date": "2024-01-01"
},
"required": [
"id",
"name",
"policy_start_date",
"policy_end_date"
],
"x-struct": null,
"properties": {
"id": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"name": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"policy_end_date": {
"type": "string",
"format": "date",
"x-struct": null,
"x-validate": null
},
"policy_start_date": {
"type": "string",
"format": "date",
"x-struct": null,
"x-validate": null
}
},
"x-validate": null
}
BenefitOffer
{
"type": "object",
"title": "BenefitOffer",
"example": {
"costs": {
"employee_cost": 234,
"employer_cost": 44
},
"benefits": [
{
"id": "562977cfd-cf60-4cf4-a70f-ac2061d709088",
"name": "benefit name",
"type": "benefit type",
"costs": {
"employee_cost": 234,
"employer_cost": 44
},
"status": "enrolled",
"provider": {
"id": "88297cfd-cf60-4cf4-a70f-ac2861d92b87X",
"name": "Health Provider"
},
"projected_costs": null,
"coverage_end_date": "2025-02-28",
"coverage_start_date": "2024-03-18"
}
],
"benefit_tier": {
"id": "66297cfd-cf60-4cf4-a70f-ac2561d92b04X",
"name": "Premium 2023 (Medical, Dental and Vision)",
"providers": [
{
"id": "88297cfd-cf60-4cf4-a70f-ac2861d92b87X",
"name": "Health Provider"
}
]
},
"benefit_group": {
"id": "54297cfd-cf60-4cf4-a70f-ac2061d72b44X",
"name": "Health",
"policy_end_date": "2024-12-31",
"policy_start_date": "2024-01-01"
}
},
"required": [
"benefit_group",
"benefit_tier",
"costs",
"benefits"
],
"x-struct": null,
"properties": {
"costs": {
"$ref": "#/components/schemas/Costs"
},
"benefits": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Benefit"
},
"x-struct": null,
"x-validate": null
},
"benefit_tier": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/BenefitTier"
}
],
"title": "MaybeBenefitTier",
"example": {
"id": "66297cfd-cf60-4cf4-a70f-ac2561d92b04X",
"name": "Premium 2023 (Medical, Dental and Vision)",
"providers": [
{
"id": "88297cfd-cf60-4cf4-a70f-ac2861d92b87X",
"name": "Health Provider"
}
]
},
"nullable": true,
"x-struct": null,
"x-validate": null
},
"benefit_group": {
"$ref": "#/components/schemas/BenefitGroup"
}
},
"x-validate": null
}
BenefitOfferByEmploymentResponse
{
"type": "object",
"title": "BenefitOfferByEmploymentResponse",
"example": {
"data": {
"currency": [
{
"code": "EUR",
"name": "European Euro",
"slug": "eur-3b840951-099f-4bd5-90b9-032f7bfe51d9",
"symbol": "€"
}
],
"company_id": "79297cfd-cf60-4cf4-a70f-ac2061d72a74",
"benefit_offers_by_employment": [
{
"costs": {
"employee_cost": 234,
"employer_cost": 44
},
"employment": {
"id": "67897cfd-cf60-4cf4-a70f-ac2061d72984X",
"name": "Name",
"country": {
"code": "PRT",
"name": "Portugal",
"alpha_2_code": "PT",
"country_subdivisions": [
{
"code": "PT-06",
"name": "Coimbra",
"subdivision_type": "District"
},
{
"code": "PT-11",
"name": "Lisboa",
"subdivision_type": "District"
}
],
"supported_json_schemas": [
"additional_documents",
"address_details",
"administrative_details",
"employment-basic-information",
"bank_account_details",
"contract_details",
"emergency_contact"
]
},
"surname": "Surname",
"given_name": "Given Name"
},
"benefit_offers": [
{
"costs": {
"employee_cost": 234,
"employer_cost": 44
},
"benefits": [
{
"id": "562977cfd-cf60-4cf4-a70f-ac2061d709088X",
"name": "benefit name",
"type": "benefit type",
"costs": {
"employee_cost": 234,
"employer_cost": 44
},
"status": "enrolled",
"provider": {
"id": "88297cfd-cf60-4cf4-a70f-ac2861d92b87X",
"name": "Health Provider"
},
"projected_costs": null,
"coverage_end_date": "2025-02-28",
"coverage_start_date": "2024-03-18"
}
],
"benefit_tier": {
"id": "66297cfd-cf60-4cf4-a70f-ac2561d92b04X",
"name": "Premium 2023 (Medical, Dental and Vision)",
"providers": [
{
"id": "88297cfd-cf60-4cf4-a70f-ac2861d92b87X",
"name": "Health Provider"
}
]
},
"benefit_group": {
"id": "54297cfd-cf60-4cf4-a70f-ac2061d72b44X",
"name": "Health",
"policy_end_date": "2024-12-31",
"policy_start_date": "2024-01-01"
}
}
]
}
]
}
},
"required": [
"data"
],
"x-struct": null,
"properties": {
"data": {
"type": "object",
"required": [
"benefit_offers_by_employment",
"company_id",
"currency"
],
"x-struct": null,
"properties": {
"currency": {
"$ref": "#/components/schemas/Currency"
},
"company_id": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"benefit_offers_by_employment": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BenefitOffersByEmployment"
},
"x-struct": null,
"x-validate": null
}
},
"x-validate": null
}
},
"x-validate": null
}
BenefitOffersByEmployment
{
"type": "object",
"title": "BenefitOffersByEmployment",
"example": {
"costs": {
"employee_cost": 234,
"employer_cost": 44
},
"employment": {
"id": "67897cfd-cf60-4cf4-a70f-ac2061d72984X",
"name": "Name",
"country": {
"code": "PRT",
"name": "Portugal",
"alpha_2_code": "PT",
"country_subdivisions": [
{
"code": "PT-06",
"name": "Coimbra",
"subdivision_type": "District"
},
{
"code": "PT-11",
"name": "Lisboa",
"subdivision_type": "District"
}
],
"supported_json_schemas": [
"additional_documents",
"address_details",
"administrative_details",
"employment-basic-information",
"bank_account_details",
"contract_details",
"emergency_contact"
]
},
"surname": "Surname",
"given_name": "Given Name"
},
"benefit_offers": [
{
"costs": {
"employee_cost": 234,
"employer_cost": 44
},
"benefits": [
{
"id": "562977cfd-cf60-4cf4-a70f-ac2061d709088X",
"name": "benefit name",
"type": "benefit type",
"costs": {
"employee_cost": 234,
"employer_cost": 44
},
"status": "enrolled",
"provider": {
"id": "88297cfd-cf60-4cf4-a70f-ac2861d92b87X",
"name": "Health Provider"
},
"projected_costs": null,
"coverage_end_date": "2025-02-28",
"coverage_start_date": "2024-03-18"
}
],
"benefit_tier": {
"id": "66297cfd-cf60-4cf4-a70f-ac2561d92b04X",
"name": "Premium 2023 (Medical, Dental and Vision)",
"providers": [
{
"id": "88297cfd-cf60-4cf4-a70f-ac2861d92b87X",
"name": "Health Provider"
}
]
},
"benefit_group": {
"id": "54297cfd-cf60-4cf4-a70f-ac2061d72b44X",
"name": "Health",
"policy_end_date": "2024-12-31",
"policy_start_date": "2024-01-01"
}
}
]
},
"required": [
"employment",
"costs",
"benefit_offers"
],
"x-struct": null,
"properties": {
"costs": {
"$ref": "#/components/schemas/Costs"
},
"employment": {
"$ref": "#/components/schemas/Employment"
},
"benefit_offers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BenefitOffer"
},
"x-struct": null,
"x-validate": null
}
},
"x-validate": null
}
BenefitProvider
{
"type": "object",
"title": "BenefitProvider",
"example": {
"id": "88297cfd-cf60-4cf4-a70f-ac2861d92b87X",
"name": "Health Provider"
},
"required": [
"id",
"name"
],
"x-struct": null,
"properties": {
"id": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"name": {
"type": "string",
"x-struct": null,
"x-validate": null
}
},
"x-validate": null
}
BenefitTier
{
"type": "object",
"title": "BenefitTier",
"example": {
"id": "66297cfd-cf60-4cf4-a70f-ac2561d92b04X",
"name": "Premium 2023 (Medical, Dental and Vision)",
"providers": [
{
"id": "88297cfd-cf60-4cf4-a70f-ac2861d92b87X",
"name": "Health Provider"
}
]
},
"required": [
"id",
"name",
"providers"
],
"x-struct": null,
"properties": {
"id": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"name": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"providers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BenefitProvider"
},
"x-struct": null,
"x-validate": null
}
},
"x-validate": null
}
BillingDocument
{
"type": "object",
"title": "BillingDocument",
"example": {
"id": "8772a9f1-b43c-46be-a1ce-e50b6819f5eeX",
"items": [
{
"type": "base_salary",
"employment_id": "0d25c513-employment-id-198557128104",
"source_amount": 50000,
"source_currency": "EUR",
"billing_document_amount": 1000000,
"billing_document_currency": "CAD"
}
],
"total": 1100000,
"company_id": "2f889520-9a21-44b0-990d-e4ae37d8db53",
"issued_date": "2023-08-22",
"billing_document_type": "reconciliation_invoice",
"billing_document_period": "2021-12",
"billing_document_currency": "EUR"
},
"required": [
"company_id",
"id",
"billing_document_period",
"issued_date",
"billing_document_type",
"billing_document_currency",
"total",
"items"
],
"x-struct": null,
"properties": {
"id": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BillingDocumentAmountItem"
},
"x-struct": null,
"x-validate": null
},
"total": {
"type": "integer",
"x-struct": null,
"x-validate": null
},
"company_id": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"issued_date": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"billing_document_type": {
"enum": [
"reconciliation_invoice",
"prefunding_invoice",
"supplemental_service_invoice",
"reconciliation_credit_note"
],
"type": "string",
"x-struct": null,
"x-validate": null
},
"billing_document_period": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"billing_document_currency": {
"type": "string",
"x-struct": null,
"x-validate": null
}
},
"x-validate": null,
"description": "Information of a billing document"
}
BillingDocumentAmountItem
{
"type": "object",
"title": "BillingDocumentAmountItem",
"example": {
"type": "base_salary",
"employment_id": "0d25c513-employment-id-198557128104",
"source_amount": 50000,
"source_currency": "EUR",
"billing_document_amount": 1000000,
"billing_document_currency": "CAD"
},
"required": [
"type",
"billing_document_amount",
"billing_document_currency"
],
"x-struct": null,
"properties": {
"type": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"employment_id": {
"type": "string",
"nullable": true,
"x-struct": null,
"x-validate": null
},
"source_amount": {
"type": "integer",
"nullable": true,
"x-struct": null,
"x-validate": null
},
"source_currency": {
"type": "string",
"nullable": true,
"x-struct": null,
"x-validate": null
},
"billing_document_amount": {
"type": "integer",
"nullable": true,
"x-struct": null,
"x-validate": null
},
"billing_document_currency": {
"type": "string",
"x-struct": null,
"x-validate": null
}
},
"x-validate": null
}
BillingDocumentResponse
{
"type": "object",
"title": "BillingDocumentResponse",
"example": {
"data": {
"billing_document": {
"id": "8772a9f1-b43c-46be-a1ce-e50b6819f5eeX",
"items": [
{
"type": "base_salary",
"employment_id": "0d25c513-employment-id-198557128104",
"source_amount": 50000,
"source_currency": "EUR",
"billing_document_amount": 1000000,
"billing_document_currency": "CAD"
}
],
"total": 1100000,
"company_id": "2f889520-9a21-44b0-990d-e4ae37d8db53",
"issued_date": "2023-08-22",
"billing_document_type": "reconciliation_invoice",
"billing_document_period": "2021-12",
"billing_document_currency": "EUR"
}
}
},
"required": [
"data"
],
"x-struct": null,
"properties": {
"data": {
"type": "object",
"required": [
"billing_document"
],
"x-struct": null,
"properties": {
"billing_document": {
"$ref": "#/components/schemas/BillingDocument"
}
},
"x-validate": null
}
},
"x-validate": null,
"description": "Information of a billing document"
}
BillingDocumentsResponse
{
"type": "object",
"title": "BillingDocumentsResponse",
"example": {
"data": {
"total_count": 1,
"total_pages": 1,
"current_page": 1,
"billing_documents": [
{
"id": "8772a9f1-b43c-46be-a1ce-e50b6819f5ee",
"billing_document_type": "base_salary",
"billing_document_period": "2023-12"
}
]
}
},
"required": [
"data"
],
"x-struct": null,
"properties": {
"data": {
"type": "object",
"required": [
"billing_documents",
"current_page",
"total_pages",
"total_count"
],
"x-struct": null,
"properties": {
"total_count": {
"type": "integer",
"example": 100,
"x-struct": null,
"x-validate": null,
"description": "The total number of records returned counting all pages"
},
"total_pages": {
"type": "integer",
"example": 10,
"x-struct": null,
"x-validate": null,
"description": "The total number of pages the user can go through"
},
"current_page": {
"type": "integer",
"example": 1,
"x-struct": null,
"x-validate": null,
"description": "The current page among all of the total_pages"
},
"billing_documents": {
"type": "array",
"items": {
"x-struct": null,
"properties": {
"id": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"billing_document_type": {
"enum": [
"reconciliation_invoice",
"prefunding_invoice",
"supplemental_service_invoice",
"reconciliation_credit_note"
],
"type": "string",
"x-struct": null,
"x-validate": null
},
"billing_document_period": {
"type": "string",
"x-struct": null,
"x-validate": null
}
},
"x-validate": null
},
"x-struct": null,
"x-validate": null
}
},
"x-validate": null
}
},
"x-validate": null,
"description": "Information about a list of billing documents"
}
ClientCredentialsParams
{
"type": "object",
"title": "ClientCredentialsParams",
"example": {
"client_id": "<client_id>",
"grant_type": "client_credentials"
},
"required": [
"grant_type",
"client_id"
],
"x-struct": null,
"properties": {
"client_id": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "The client id generated during registration"
},
"grant_type": {
"enum": [
"client_credentials"
],
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "The Authorization flow"
}
},
"x-validate": null
}
CommonIncentiveParams
{
"type": "object",
"title": "CommonIncentiveParams",
"example": {
"note": "Bonus for moving start date to an earlier date",
"amount": 50000,
"effective_date": "2021-12-20",
"amount_tax_type": "net"
},
"x-struct": null,
"properties": {
"note": {
"type": "string",
"nullable": true,
"x-struct": null,
"x-validate": null
},
"amount": {
"type": "integer",
"x-struct": null,
"x-validate": null,
"description": "The amount (in the currency of the employment) to be given to the employee.\n\nThis field accepts fractional amounts as well. However to avoid precision issues\nand errors that can arise from storing fractional amounts, the Remote API only\naccepts currencies and their fractional amounts as integers. This means you\nshould append fractional amounts to the end of the amount you're passing in with\nthis field.\n\nFor example, if the incentive you're offering is EUR 500.25, you would specify `50025` as\nthe amount for this field.\n"
},
"effective_date": {
"type": "string",
"format": "date",
"x-struct": null,
"x-validate": null,
"description": "The date at which the incentive should take effect.\n\nNote that the incentive is not paid out on the effective date, but during the\nnext payroll cycle. The effective date determines which payroll cycle the\nincentive will be paid out in.\n\nThe effective date needs to be today or a future date.\n\nNote for recurring incentives: since the months don't have the same amount of days,\nif day of month of `effective_date` is one of [28, 29, 30, 31] it will be transformed to\nthe last day of each month, avoiding the possibility of skipping a month in the recurrence.\n"
},
"amount_tax_type": {
"$ref": "#/components/schemas/AmountTaxType"
}
},
"x-validate": null
}
CompaniesResponse
{
"type": "object",
"title": "CompaniesResponse",
"example": {
"data": {
"companies": [
{
"id": "e5a8b061-company-id-4c5c81ac885eX",
"name": "Your Company Name",
"status": "active",
"created_at": "2021-10-29T12:39:13",
"updated_at": "2021-10-29T12:39:15",
"external_id": "00001111",
"country_code": "USA",
"phone_number": "+1123123456",
"address_details": {
"city": "San Francisco",
"state": "CA",
"address": "1709 Broderick St",
"postal_code": "94115",
"address_line_2": "Flat number 123"
},
"desired_currency": "USD",
"company_owner_name": "Joe Smith",
"company_owner_email": "te@remote.com",
"bank_account_details": {
"name": "Bank name",
"account_type": "savings",
"account_holder": "Joe Smith",
"account_number": "31234123123",
"ownership_type": "BUSINESS",
"routing_number": "123124123"
},
"terms_of_service_accepted_at": "2021-10-29T12:39:15Z"
}
]
}
},
"x-struct": null,
"properties": {
"companies": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Company"
},
"x-struct": null,
"x-validate": null
}
},
"x-validate": null,
"description": "Shows a list of companies"
}
Company
{
"type": "object",
"title": "Company",
"example": {
"id": "e5a8b061-company-id-4c5c81ac885eX",
"name": "Your Company Name",
"status": "active",
"created_at": "2021-10-29T12:39:13",
"updated_at": "2021-10-29T12:39:15",
"external_id": "00001111",
"country_code": "USA",
"phone_number": "+1123123456",
"address_details": {
"city": "San Francisco",
"state": "CA",
"address": "1709 Broderick St",
"postal_code": "94115",
"address_line_2": "Flat number 123"
},
"desired_currency": "USD",
"company_owner_name": "Joe Smith",
"company_owner_email": "te@remote.com",
"bank_account_details": {
"name": "Bank name",
"account_type": "savings",
"account_holder": "Joe Smith",
"account_number": "31234123123",
"ownership_type": "BUSINESS",
"routing_number": "123124123"
},
"terms_of_service_accepted_at": "2021-10-29T12:39:15Z"
},
"required": [
"address_details",
"company_owner_email",
"country_code",
"created_at",
"desired_currency",
"id",
"name",
"status",
"updated_at",
"terms_of_service_accepted_at"
],
"x-struct": null,
"properties": {
"id": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"name": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"status": {
"enum": [
"pending",
"review",
"active",
"archived"
],
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "The company status determines what a company is allowed to do:\n- `pending`: The company has been created and the company owner invited. Remote is waiting for the company owner to complete onboarding.\n- `review`: The company is under review. In rare occasions, a company may not automatically get created in `active` status because Remote needs to\n manually review the company that was created. The company will become `active` once the review is completed and no further action is necessary\n through the Remote API.\n- `active`: The company owner has completed onboarding and the company is ready to employ.\n- `archived`: The company is no longer active on the Remote platform and no changes can be made to the company.\n"
},
"created_at": {
"type": "string",
"format": "date-time",
"x-struct": null,
"x-validate": null
},
"tax_number": {
"type": "string",
"nullable": true,
"x-struct": null,
"x-validate": null
},
"updated_at": {
"type": "string",
"format": "date-time",
"x-struct": null,
"x-validate": null
},
"external_id": {
"type": "string",
"nullable": true,
"x-struct": null,
"x-validate": null
},
"country_code": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"phone_number": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"address_details": {
"type": "object",
"x-struct": null,
"x-validate": null,
"description": "Fields can vary depending on the country. Please, check the required fields structure using the [Show form schema endpoint](https://gateway.remote.com/v1/docs/openapi.html).\nUse the desired country and `address_details` as the form name for the placeholders.\nThe response complies with the [JSON Schema](https://remote.com/resources/api/how-json-schemas-work) specification.\n"
},
"desired_currency": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"company_owner_name": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"company_owner_email": {
"type": "string",
"format": "email",
"x-struct": null,
"x-validate": null
},
"registration_number": {
"type": "string",
"nullable": true,
"x-struct": null,
"x-validate": null
},
"bank_account_details": {
"type": "object",
"x-struct": null,
"x-validate": null,
"description": "Fields can vary depending on the country. Please, check the required fields structure using the [Show form schema endpoint](https://gateway.remote.com/v1/docs/openapi.html).\nUse the desired country and `bank_account_details` as the form name for the placeholders.\nThe response complies with the [JSON Schema](https://remote.com/resources/api/how-json-schemas-work) specification.\n"
},
"terms_of_service_accepted_at": {
"type": "string",
"format": "date-time",
"x-struct": null,
"x-validate": null
}
},
"x-validate": null
}
CompanyAlreadyExistsErrorResponse
{
"type": "object",
"title": "CompanyAlreadyExistsErrorResponse",
"example": {
"message": {
"code": "resource_already_exists",
"message": "The company with the provided EIN is already registered.",
"resource_id": "d1bb9535-3296-4240-8a67-81475bd24e80",
"resource_type": "company_creation"
}
},
"x-struct": null,
"properties": {
"code": {
"type": "string",
"pattern": "resource_already_exists",
"x-struct": null,
"x-validate": null
},
"message": {
"type": "string",
"pattern": "The company with the provided EIN is already registered.",
"x-struct": null,
"x-validate": null
},
"resource_id": {
"type": "string",
"format": "uuid",
"x-struct": null,
"x-validate": null
},
"resource_type": {
"type": "string",
"pattern": "company_creation",
"x-struct": null,
"x-validate": null
}
},
"x-validate": null,
"description": "Error returned when a company with matching criteria already exists"
}
CompanyCreationConflictErrorResponse
{
"type": "object",
"title": "CompanyCreationConflictErrorResponse",
"x-struct": null,
"properties": {
"message": {
"oneOf": [
{
"$ref": "#/components/schemas/CompanyAlreadyExistsErrorResponse"
},
{
"$ref": "#/components/schemas/CompanyNotEligibleForCreationErrorResponse"
}
],
"x-struct": null,
"x-validate": null
}
},
"x-validate": null
}
CompanyCreationResponse
{
"type": "object",
"title": "CompanyCreationResponse",
"x-struct": null,
"properties": {
"data": {
"oneOf": [
{
"$ref": "#/components/schemas/CompanyResponse"
},
{
"$ref": "#/components/schemas/CompanyWithTokensResponse"
}
],
"x-struct": null,
"x-validate": null
}
},
"x-validate": null
}
CompanyDepartment
{
"type": "object",
"title": "CompanyDepartment",
"example": {
"id": "89c4fbb2-cd1f-4334-8e4b-280f8795bbd8X",
"name": "Marketing",
"company_id": "669f9e18-889f-4c2c-95b8-67795a3113cc"
},
"required": [
"id",
"company_id",
"name"
],
"x-struct": null,
"properties": {
"id": {
"type": "string",
"format": "uuid",
"x-struct": null,
"x-validate": null
},
"name": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"company_id": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "Company ID"
}
},
"x-validate": null
}
CompanyDepartmentCreatedResponse
{
"type": "object",
"title": "CompanyDepartmentCreatedResponse",
"example": {
"data": {
"company_department": {
"id": "89c4fbb2-cd1f-4334-8e4b-280f8795bbd8X",
"name": "Marketing",
"company_id": "669f9e18-889f-4c2c-95b8-67795a3113cc"
}
}
},
"x-struct": null,
"properties": {
"company_department": {
"$ref": "#/components/schemas/CompanyDepartment"
}
},
"x-validate": null
}
CompanyManager
{
"type": "object",
"title": "CompanyManager",
"example": {
"role": "owner",
"user_id": "983088c9-user-id-023fc08b8625",
"user_name": "Anne White",
"company_id": "0a8s2d1-company-id-2e3f4th",
"user_email": "user@example.com"
},
"required": [
"company_id",
"user_id",
"user_name",
"user_email",
"role"
],
"x-struct": null,
"properties": {
"role": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "Company Manager role."
},
"user_id": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "User ID"
},
"user_name": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "User's name"
},
"company_id": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "Company ID"
},
"user_email": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "User Email"
}
},
"x-validate": null
}
CompanyManagerData
{
"type": "object",
"title": "CompanyManagerData",
"example": {
"company_manager": {
"role": "owner",
"user_id": "983088c9-user-id-023fc08b8625",
"user_name": "Anne White",
"company_id": "0a8s2d1-company-id-2e3f4th",
"user_email": "user@example.com"
}
},
"required": [
"company_manager"
],
"x-struct": null,
"properties": {
"company_manager": {
"$ref": "#/components/schemas/CompanyManager"
}
},
"x-validate": null
}
CompanyManagerParams
{
"type": "object",
"title": "CompanyManagerParams",
"required": [
"name",
"email",
"role"
],
"x-struct": null,
"properties": {
"name": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "The name of the company manager"
},
"role": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "The role assigned for the new manager. The value should be one of the following:\n\n- `admin`: an Admin can manage most of the resources in remote.\n- `onboarding_manager`: an Onboarding Manager can add, see and manage new hires.\n- `people_manager`: a People Manager can view employee profiles of the team members they manage and approve and decline time off and expenses for their employees.\n"
},
"email": {
"type": "string",
"format": "email",
"x-struct": null,
"x-validate": null,
"description": "The work email of the company manager"
},
"company_id": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "The Company ID. Required if the access token can access multiple companies. Optional otherwise."
}
},
"x-validate": null
}
CompanyManagerResponse
{
"type": "object",
"title": "CompanyManagerResponse",
"example": {
"data": {
"company_manager": {
"role": "owner",
"user_id": "983088c9-user-id-023fc08b8625",
"user_name": "Anne White",
"company_id": "0a8s2d1-company-id-2e3f4th",
"user_email": "user@example.com"
}
}
},
"required": [
"data"
],
"x-struct": null,
"properties": {
"data": {
"$ref": "#/components/schemas/CompanyManagerData"
}
},
"x-validate": null
}
CompanyManagersResponse
{
"type": "object",
"title": "CompanyManagersResponse",
"example": {
"total_count": 1,
"total_pages": 1,
"current_page": 1,
"company_managers": [
{
"role": "owner",
"user_id": "983088c9-user-id-023fc08b8625",
"user_name": "Anne White",
"company_id": "0a8s2d1-company-id-2e3f4th",
"user_email": "user@example.com"
}
]
},
"x-struct": null,
"properties": {
"data": {
"type": "object",
"x-struct": null,
"properties": {
"total_count": {
"type": "integer",
"x-struct": null,
"x-validate": null,
"description": "The total number of records in the result"
},
"total_pages": {
"type": "integer",
"x-struct": null,
"x-validate": null,
"description": "The total number of pages the user can go through"
},
"current_page": {
"type": "integer",
"x-struct": null,
"x-validate": null,
"description": "The current page among all of the total_pages"
},
"company_managers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CompanyManager"
},
"x-struct": null,
"x-validate": null
}
},
"x-validate": null
}
},
"x-validate": null,
"description": "Response schema listing many company_managers"
}
CompanyNotEligibleForCreationErrorResponse
{
"type": "object",
"title": "CompanyNotEligibleForCreationErrorResponse",
"example": {
"message": {
"code": "resource_not_eligible",
"message": "The company already have employees in integration supported countries.",
"resource_id": "d1bb9535-3296-4240-8a67-81475bd24e80",
"resource_type": "company_creation"
}
},
"x-struct": null,
"properties": {
"code": {
"type": "string",
"pattern": "resource_not_eligible",
"x-struct": null,
"x-validate": null
},
"message": {
"type": "string",
"pattern": "The company already have employees in integration supported countries.",
"x-struct": null,
"x-validate": null
},
"resource_id": {
"type": "string",
"format": "uuid",
"x-struct": null,
"x-validate": null
},
"resource_type": {
"type": "string",
"pattern": "company_creation",
"x-struct": null,
"x-validate": null
}
},
"x-validate": null,
"description": "Error returned when the company already have employees in countries supported by the integration."
}
CompanyResponse
{
"type": "object",
"title": "CompanyResponse",
"example": {
"data": {
"company": {
"id": "e5a8b061-company-id-4c5c81ac885eX",
"name": "Your Company Name",
"status": "active",
"created_at": "2021-10-29T12:39:13",
"updated_at": "2021-10-29T12:39:15",
"external_id": "00001111",
"country_code": "USA",
"phone_number": "+1123123456",
"address_details": {
"city": "San Francisco",
"state": "CA",
"address": "1709 Broderick St",
"postal_code": "94115",
"address_line_2": "Flat number 123"
},
"desired_currency": "USD",
"company_owner_name": "Joe Smith",
"company_owner_email": "te@remote.com",
"bank_account_details": {
"name": "Bank name",
"account_type": "savings",
"account_holder": "Joe Smith",
"account_number": "31234123123",
"ownership_type": "BUSINESS",
"routing_number": "123124123"
},
"terms_of_service_accepted_at": "2021-10-29T12:39:15Z"
}
}
},
"x-struct": null,
"properties": {
"company": {
"$ref": "#/components/schemas/Company"
}
},
"x-validate": null,
"description": "Shows a company"
}
CompanyWithTokensResponse
{
"type": "object",
"title": "CompanyWithTokensResponse",
"example": {
"data": {
"tokens": {
"user_id": "6550e536-8655-4bce-8bd9-b295f786ad71",
"company_id": "6e60f5f9-e6a6-4b04-b13c-84bced848bab",
"expires_in": 7200,
"token_type": "Bearer",
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.cThIIoDvwdueQB468K5xDc5633seEFoqwxjF_xSJyQQ",
"refresh_token": "b480036a-d229-49ef-a606-7e8fba58a5eb"
},
"company": {
"id": "e5a8b061-company-id-4c5c81ac885e",
"name": "Your Company Name",
"status": "active",
"created_at": "2021-10-29T12:39:13",
"updated_at": "2021-10-29T12:39:15",
"external_id": "00001111",
"country_code": "USA",
"phone_number": "+1123123456",
"address_details": {
"city": "San Francisco",
"state": "CA",
"address": "1709 Broderick St",
"postal_code": "94115",
"address_line_2": "Flat number 123"
},
"desired_currency": "USD",
"company_owner_name": "Joe Smith",
"company_owner_email": "te@remote.com",
"bank_account_details": {
"name": "Bank name",
"account_type": "savings",
"account_holder": "Joe Smith",
"account_number": "31234123123",
"ownership_type": "BUSINESS",
"routing_number": "123124123"
},
"terms_of_service_accepted_at": "2021-10-29T12:39:15Z"
}
}
},
"x-struct": null,
"properties": {
"tokens": {
"$ref": "#/components/schemas/OAuth2Tokens"
},
"company": {
"$ref": "#/components/schemas/Company"
}
},
"x-validate": null,
"description": "Shows a company with its refresh and access tokens. Please contact Remote if you need the tokens when creating a company."
}
Compensation
{
"type": "object",
"title": "Compensation",
"example": {
"amount": 33000,
"currency_code": "CAD"
},
"required": [
"amount",
"currency_code"
],
"x-struct": null,
"properties": {
"amount": {
"type": "integer",
"x-struct": null,
"x-validate": null
},
"currency_code": {
"type": "string",
"x-struct": null,
"x-validate": null
}
},
"x-validate": null
}
CompleteOnboarding
{
"type": "object",
"title": "CompleteOnboarding",
"x-struct": null,
"properties": {
"employment_id": {
"type": "string",
"x-struct": null,
"x-validate": null
}
},
"x-validate": null,
"description": "Parameters to complete onboarding"
}
ConflictResponse
{
"type": "object",
"title": "ConflictResponse",
"example": {
"message": "Company needs to be in status active to manage employments"
},
"x-struct": null,
"properties": {
"message": {
"type": "string",
"x-struct": null,
"x-validate": null
}
},
"x-validate": null
}
ContractAmendment
{
"type": "object",
"title": "ContractAmendment",
"example": {
"id": "ba310525-9282-40c9-8977-14d844bf891aX",
"status": "submitted",
"changes": {
"contract.job_title": {
"current": "A new job title",
"previous": "An old job title"
},
"compensation.amount": {
"current": 500000,
"previous": 400000
},
"contract_details.details.contract_duration_type": {
"current": "fixed_term",
"previous": "indefinite"
}
},
"requested_by": "5a31f3c1-d7a7-4311-89cb-928959d3d540",
"submitted_at": "2023-04-13T13:35:06Z",
"employment_id": "1e74fdc2-7420-4eef-ab0a-b794cbbef4e1",
"requested_details": {
"effective_date": "2024-03-04",
"reason_for_change": "annual_pay_adjustment",
"additional_comments": null,
"salary_decrease_details": null,
"reason_for_change_description": null
},
"zendesk_ticket_url": "https://zendesk.com/ticket-23333",
"amendment_contract_id": "8772a9f1-b43c-46be-a1ce-e50b6819f5ee"
},
"required": [
"id",
"amendment_contract_id",
"employment_id",
"status",
"requested_by",
"submitted_at",
"request_details",
"changes",
"zendesk_ticket_url"
],
"x-struct": null,
"properties": {
"id": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"status": {
"enum": [
"submitted",
"in_review",
"done",
"canceled",
"deleted"
],
"type": "string",
"x-struct": null,
"x-validate": null
},
"changes": {
"type": "object",
"x-struct": null,
"x-validate": null,
"description": "Describes all the changes requested for the contract and contract details with all their previous and current values."
},
"requested_by": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"submitted_at": {
"type": "string",
"format": "datetime",
"x-struct": null,
"x-validate": null
},
"employment_id": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"request_details": {
"$ref": "#/components/schemas/RequestDetails"
},
"zendesk_ticket_url": {
"type": "string",
"nullable": true,
"x-struct": null,
"x-validate": null
},
"amendment_contract_id": {
"type": "string",
"nullable": true,
"x-struct": null,
"x-validate": null
}
},
"x-validate": null,
"description": "Contract Amendment"
}
ContractAmendmentAutomatableResponse
{
"type": "object",
"title": "ContractAmendmentAutomatableResponse",
"x-struct": null,
"properties": {
"data": {
"type": "object",
"x-struct": null,
"properties": {
"message": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "The message to explain how the contract amendment request will be processed depending if it is automatable or not."
},
"automatable": {
"type": "boolean",
"x-struct": null,
"x-validate": null,
"description": "If true, it means that the contract amendment request is automatable."
}
},
"x-validate": null
}
},
"x-validate": null,
"description": "Contract Amendment Automatable response"
}
ContractAmendmentFormResponse
{
"type": "object",
"title": "ContractAmendmentFormResponse",
"example": {
"data": {
"type": "object",
"required": [
"job_title",
"effective_date"
],
"properties": {
"job_title": {
"type": "string",
"title": "Job title",
"maxLength": 255,
"description": "What is their job title? E.g. Product designer"
},
"effective_date": {
"type": "date",
"title": "Effective date of change",
"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"
}
}
}
},
"x-struct": null,
"properties": {
"data": {
"type": "object",
"x-struct": null,
"x-validate": null
}
},
"x-validate": null,
"description": "Object with required and optional fields, its descriptions and suggested presentation"
}
ContractAmendmentResponse
{
"type": "object",
"title": "ContractAmendmentResponse",
"x-struct": null,
"properties": {
"data": {
"type": "object",
"required": [
"contract_amendment"
],
"x-struct": null,
"properties": {
"contract_amendment": {
"$ref": "#/components/schemas/ContractAmendment"
}
},
"x-validate": null
}
},
"x-validate": null,
"description": "Contract Amendment response"
}
ContractAmendmentSchemaParams
{
"type": "object",
"title": "ContractAmendmentSchemaParams",
"required": [
"country_code",
"employment_id"
],
"x-struct": null,
"properties": {
"form": {
"enum": [
"contract_amendment"
],
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "Name of the desired form"
},
"country_code": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "Country code according to ISO 3-digit alphabetic codes."
},
"employment_id": {
"type": "string",
"x-struct": null,
"x-validate": null,
"description": "The ID of the employment concerned by the contract amendment request."
}
},
"x-validate": null
}
ContractPendingChanges
{
"type": "object",
"title": "ContractPendingChanges",
"example": {
"changes": {
"contract.job_title": {
"current": "Senior Engineer",
"previous": "Engineer"
}
},
"contract_id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
"effective_at": "2021-07-15T18:18:17Z"
},
"required": [
"effective_at",
"contract_id",
"changes"
],
"x-struct": null,
"properties": {
"changes": {
"type": "object",
"x-struct": null,
"x-validate": null,
"description": "Describes all the changes requested for the contract and contract details with all their previous and current values.\nIts properties may vary depending on the country.\n"
},
"contract_id": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"effective_at": {
"$ref": "#/components/schemas/DateTimeIso8601"
}
},
"x-validate": null
}
CostCalculator.CountryAvailability
{
"enum": [
"active",
"coming_soon"
],
"type": "string",
"title": "CostCalculator.CountryAvailability",
"example": "active",
"x-struct": null,
"x-validate": null,
"description": "- active: country is ready to onboard employee\n- coming_soon: country is in process of getting ready\n"
}
CostCalculator.CountryLevelRegion
{
"type": "object",
"title": "CostCalculator.CountryLevelRegion",
"example": {
"code": "PRT",
"name": "Portugal",
"currency": {
"code": "EUR",
"name": "European Euro",
"slug": "eur-3b840951-099f-4bd5-90b9-032f7bfe51d9",
"symbol": "€"
},
"region_slug": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
"availability": "active",
"child_regions": {
"code": "USA",
"name": "United States",
"slug": "663e0b79-c893-45ff-a1b2-f6dcabc098b5"
},
"has_additional_fields": "true",
"original_country_slug": "portugal-ab18d96a-a9fd-42c0-9688-24f963d8bdc1"
},
"required": [
"code",
"currency",
"name",
"original_country_slug",
"region_slug",
"availability",
"child_regions"
],
"x-struct": null,
"properties": {
"code": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"name": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"currency": {
"$ref": "#/components/schemas/Currency"
},
"region_slug": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"availability": {
"$ref": "#/components/schemas/CostCalculator.CountryAvailability"
},
"child_regions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MinimalRegion"
},
"x-struct": null,
"x-validate": null
},
"has_additional_fields": {
"type": "boolean",
"x-struct": null,
"x-validate": null
},
"original_country_slug": {
"type": "string",
"x-struct": null,
"x-validate": null
}
},
"x-validate": null,
"description": "A supported country on Remote"
}
CostCalculator.ListCountryResponse
{
"type": "object",
"title": "CostCalculator.ListCountryResponse",
"required": [
"data"
],
"x-struct": null,
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CostCalculator.CountryLevelRegion"
},
"x-struct": null,
"x-validate": null
}
},
"x-validate": null
}
CostCalculatorCost
{
"type": "object",
"title": "CostCalculatorCost",
"example": {
"name": "Insurance",
"amount": 1120000,
"description": "Description of how the amount is calculated.",
"zendesk_article_url": "https://examplezendesk.com/article/1234"
},
"required": [
"amount",
"description",
"name",
"zendesk_article_url"
],
"x-struct": null,
"properties": {
"name": {
"type": "string",
"x-struct": null,
"x-validate": null
},
"amount": {
"type": "integer",
"x-struct": null,
"x-validate": null
},
"description": {
"type": "string",
"nullable": true,
"x-struct": null,
"x-validate": null
},
"zendesk_article_url": {
"type": "string",
"nullable": true,
"x-struct": null,
"x-validate": null
}
},
"x-validate": null
}