Remote

Global HR and payroll for remote teams

developer.remote.com ↗
Version
0.1.0
OpenAPI
3.0.0
Endpoints
83
Schemas
202
Updated
3 days ago
Hr hr payroll remote-work
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://gateway.remote.com
https://gateway.remote-sandbox.com

Authentication

oauth2

Endpoints

Clear filters

Companies 1 endpoints

POST /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: * A new company with status `pending`. * A company owner for the new company with status `initiated`. See the [update a company endpoint](https://gateway.remote.com/v1/docs/openapi.html) 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](https://remote.com/terms-of-service). Also see Remote's [Privacy Policy](https://remote.com/privacy-policy)".

operationId: Companies_createNewCompany

Parameters

Name In Required Type Description
action query optional string Complementary action(s) to perform when creating a company: - `get_oauth_access_tokens` returns the user's access and refresh tokens - `send_create_password_email ` sends a reset password token to the company owner's email so they can log in using Remote UI (not needed if integration plans to use SSO only) If `action` contains `send_create_password_email` you can redirect the user to [https://employ.remote.com/api-integration-new-password-send](https://employ.remote.com/api-integration-new-password-send)

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CreateCompanyParams"
      }
    }
  },
  "required": false,
  "description": "Create Company params"
}

Responses

201 Created
400 Bad Request
403 Forbidden
409 Conflict
422 Unprocessable Entity
429 Unprocessable Entity
POST /v1/companies

Company department 1 endpoints

POST /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).

operationId: CompanyDepartment_createNewDepartment

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CreateCompanyDepartmentParams"
      }
    }
  },
  "required": true,
  "description": "Create Company Department request params"
}

Responses

201 Created
404 Not Found
422 Unprocessable Entity
POST /v1/company-departments

Company managers 1 endpoints

POST /v1/company-managers

Create a Company Manager and sends the invitation email for signing in to the Remote Platform.

operationId: CompanyManagers_createInvite

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CompanyManagerParams"
      }
    }
  },
  "required": false,
  "description": "Company Manager params"
}

Responses

201 Success
400 Bad Request
401 Unauthorized
404 Not Found
422 Unprocessable Entity
429 Too many requests
POST /v1/company-managers

Contract amendments 3 endpoints

POST /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](https://gateway.remote.com/v1/docs/openapi.html) 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://remote.com/resources/api/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://remote.com/resources/api/how-json-schemas-work) tool.

operationId: ContractAmendments_createRequest

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CreateContractAmendmentParams"
      }
    }
  },
  "required": false,
  "description": "Contract Amendment"
}

Responses

200 Success
401 Unauthorized
404 Not Found
422 Unprocessable Entity
POST /v1/contract-amendments
POST /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](https://gateway.remote.com/v1/docs/openapi.html) 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://remote.com/resources/api/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://remote.com/resources/api/how-json-schemas-work) tool.

operationId: ContractAmendments_checkAutomatability

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CreateContractAmendmentParams"
      }
    }
  },
  "required": false,
  "description": "Contract Amendment"
}

Responses

200 Success
401 Unauthorized
404 Not Found
422 Unprocessable Entity
POST /v1/contract-amendments/automatable
POST /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.

operationId: ContractAmendments_getFormSchema

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ContractAmendmentSchemaParams"
      }
    }
  },
  "required": false,
  "description": "Contract Amendment Form"
}

Responses

200 Success
401 Unauthorized
404 Not Found
422 Unprocessable Entity
POST /v1/contract-amendments/schema

Cost calculator 2 endpoints

POST /v1/cost-calculator/estimation
operationId: CostCalculator_createEmploymentEstimation

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CostCalculatorEstimateParams"
      }
    }
  },
  "required": false,
  "description": "Estimate params"
}

Responses

200 Success
404 Not Found
422 Unprocessable Entity
500 Internal Server Error
POST /v1/cost-calculator/estimation
POST /v1/cost-calculator/estimation-pdf
operationId: CostCalculator_generateEstimationPdf

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CostCalculatorEstimateParams"
      }
    }
  },
  "required": false,
  "description": "Estimate params"
}

Responses

200 Success
404 Not Found
422 Unprocessable Entity
500 Internal Server Error
POST /v1/cost-calculator/estimation-pdf

Employments 3 endpoints

POST /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](https://gateway.remote.com/v1/docs/openapi.html) 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://remote.com/resources/api/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://remote.com/resources/api/how-json-schemas-work) tool.

operationId: Employments_createEmployment

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/EmploymentBasicParams"
      }
    }
  },
  "required": false,
  "description": "Employment params"
}

Responses

201 Success
400 Bad Request
401 Unauthorized
404 Not Found
422 Unprocessable Entity
429 Too many requests
POST /v1/employments
POST /v1/employments/{employment_id}/invite

Invite an employment to start the self-enrollment. Requirements for the invitation to succeed: * Employment needs to have the following JSON Schema forms filled: `contract_details` and `pricing_plan_details` * `provisional_start_date` must consider the minimum onbaording time of the employment's country If 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.

operationId: Employments_inviteStartEnrollment

Parameters

Name In Required Type Description
employment_id path required string Employment ID

Responses

201 Success
400 Bad Request
409 Conflict
422 Unprocessable Entity
429 Unprocessable Entity
POST /v1/employments/{employment_id}/invite
POST /v1/ready

Completes the employee onboarding. When all tasks are completed, the employee is marked as in `review` status

operationId: Employments_completeOnboarding

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CompleteOnboarding"
      }
    }
  },
  "required": true,
  "description": "Employment slug"
}

Responses

200 Success
400 Bad Request
401 Unauthorized
404 Not Found
422 Unprocessable Entity
429 Too many requests
POST /v1/ready

Expenses 1 endpoints

POST /v1/expenses

Creates an **approved** expense

operationId: Expenses_createApprovedExpense

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ParamsToCreateExpense"
      }
    }
  },
  "required": false,
  "description": "Expenses"
}

Responses

201 Success
400 Bad Request
401 Unauthorized
404 Not Found
422 Unprocessable Entity
429 Too many requests
POST /v1/expenses

Files 1 endpoints

POST /v1/documents

Uploads a file associated with a specified employment. Please contact api-support@remote.com to request access to this endpoint.

operationId: Files_uploadEmploymentFile

Request Body

{
  "content": {
    "multipart/form-data": {
      "schema": {
        "$ref": "#/components/schemas/FileParams"
      }
    }
  },
  "required": true,
  "description": "The file to be uploaded"
}

Responses

201 Created
400 Bad Request
401 Unauthorized
404 Not Found
422 Unprocessable Entity
429 Too many requests
POST /v1/documents

Incentives 1 endpoints

POST /v1/incentives

Creates an Incentive. Incentives use the currency of the employment specified provided in the `employment_id` field.

operationId: Incentives_createIncentive

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CreateOneTimeIncentiveParams"
      }
    }
  },
  "required": false,
  "description": "Incentive"
}

Responses

201 Success
400 Bad Request
401 Unauthorized
404 Not Found
422 Unprocessable Entity
429 Too many requests
POST /v1/incentives

Oauth2 1 endpoints

POST /auth/oauth2/token

Endpoint to exchange tokens in the Authorization Code, Client Credentials and Refresh Token flows

operationId: OAuth2_exchangeToken

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/OAuth2TokenParams"
      }
    }
  },
  "required": false,
  "description": "OAuth2Token"
}

Responses

200 Success
400 Bad Request
401 Unauthorized
404 Not Found
422 Unprocessable Entity
429 Too many requests
POST /auth/oauth2/token

Offboarding 1 endpoints

POST /v1/offboardings

Creates an Offboarding request.

operationId: Offboarding_createRequest

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CreateOffboardingParams"
      }
    }
  },
  "required": false,
  "description": "Incentive"
}

Responses

201 Success
400 Bad Request
401 Unauthorized
404 Not Found
422 Unprocessable Entity
429 Too many requests
500 Internal Server Error
POST /v1/offboardings

Recurring incentives 1 endpoints

POST /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.

operationId: RecurringIncentives_createMonthlyIncentive

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CreateRecurringIncentiveParams"
      }
    }
  },
  "required": false,
  "description": "RecurringIncentive"
}

Responses

201 Success
400 Bad Request
401 Unauthorized
404 Not Found
422 Unprocessable Entity
429 Too many requests
POST /v1/incentives/recurring

Sandbox 2 endpoints

POST /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: * Testing the Timeoff Balance endpoints * Testing the Offboarding endpoints * Testing features around probation periods 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](https://gateway.remote.com/v1/docs/openapi.html)

operationId: Sandbox_createEmploymentWithoutValidations

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/EmploymentBasicParams"
      }
    }
  },
  "required": false,
  "description": "Employment params"
}

Responses

201 Success
400 Bad Request
401 Unauthorized
404 Not Found
422 Unprocessable Entity
429 Too many requests
POST /v1/sandbox/employments
POST /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.

operationId: Sandbox_triggerWebhookCallback

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/WebhookTriggerParams"
      }
    }
  },
  "required": false,
  "description": "Webhook Trigger Params"
}

Responses

200 Success
400 Bad Request
401 Unauthorized
404 Not Found
422 Unprocessable Entity
429 Too many requests
POST /v1/sandbox/webhook-callbacks/trigger

Time off 1 endpoints

POST /v1/timeoff

Creates a Time Off record

operationId: TimeOff_recordCreate

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CreateApprovedTimeoffParams"
      }
    }
  },
  "required": true,
  "description": "Timeoff"
}

Responses

201 Created
400 Bad Request
401 Unauthorized
404 Not Found
422 Unprocessable Entity
429 Unprocessable Entity
POST /v1/timeoff

Webhook callbacks 1 endpoints

POST /v1/webhook-callbacks

Register a callback to be used for webhooks

operationId: WebhookCallbacks_registerCallback

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CreateWebhookCallbackParams"
      }
    }
  },
  "required": false,
  "description": "WebhookCallback"
}

Responses

200 Success
401 Unauthorized
404 Not Found
422 Unprocessable Entity
POST /v1/webhook-callbacks

Schemas

object 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
}
array ActionErrors
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/ActionError"
  },
  "title": "ActionErrors",
  "x-struct": null,
  "x-validate": null
}
string 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"
}
object 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"
}
object 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
}
object 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
}
object 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
}
object 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."
}
object 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
}
object 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"
}
object 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
}
object 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
}
object 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
}
object 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
}
object 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
}
object 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
}
object 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"
}
object 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
}
object 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"
}
object 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"
}
object 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
}
object 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
}
object 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"
}
object 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
}
object 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"
}
object 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
}
object 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
}
object 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
}
object 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
}
object 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
}
object 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
}
object 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
}
object 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
}
object 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"
}
object 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."
}
object 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"
}
object 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."
}
object 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
}
object 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"
}
object 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
}
object 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"
}
object 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"
}
object 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"
}
object 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"
}
object 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
}
object 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
}
string 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"
}
object 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"
}
object 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
}
object 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
}
object CostCalculatorCosts
{
  "type": "object",
  "title": "CostCalculatorCosts",
  "example": {
    "currency": {
      "code": "EUR",
      "name": "European Euro",
      "slug": "eur-3b840951-099f-4bd5-90b9-032f7bfe51d9",
      "symbol": "€"
    },
    "monthly_tce": 1120000,
    "annual_total": 13441200,
    "monthly_total": 1120100,
    "annual_gross_salary": 12000000,
    "monthly_gross_salary": 1000000,
    "annual_benefits_total": 1441200,
    "monthly_benefits_total": 120100,
    "annual_benefits_breakdown": [
      {
        "name": "Insurance",
        "amount": 1120000,
        "description": "Description of how the amount is calculated.",
        "zendesk_article_url": "https://examplezendesk.com/article/1234"
      }
    ],
    "annual_contributions_total": 1441200,
    "monthly_benefits_breakdown": [
      {
        "name": "Insurance",
        "amount": 1120000,
        "description": "Description of how the amount is calculated.",
        "zendesk_article_url": "https://examplezendesk.com/article/1234"
      }
    ],
    "monthly_contributions_total": 120100,
    "annual_contributions_breakdown": [
      {
        "name": "Insurance",
        "amount": 1120000,
        "description": "Description of how the amount is calculated.",
        "zendesk_article_url": "https://examplezendesk.com/article/1234"
      }
    ],
    "extra_statutory_payments_total": 0,
    "monthly_contributions_breakdown": [
      {
        "name": "Insurance",
        "amount": 1120000,
        "description": "Description of how the amount is calculated.",
        "zendesk_article_url": "https://examplezendesk.com/article/1234"
      }
    ],
    "extra_statutory_payments_breakdown": [
      {
        "name": "Insurance",
        "amount": 1120000,
        "description": "Description of how the amount is calculated.",
        "zendesk_article_url": "https://examplezendesk.com/article/1234"
      }
    ]
  },
  "required": [
    "annual_gross_salary",
    "annual_contributions_total",
    "annual_total",
    "currency",
    "extra_statutory_payments_total",
    "monthly_contributions_total",
    "monthly_gross_salary",
    "monthly_tce",
    "monthly_total"
  ],
  "x-struct": null,
  "properties": {
    "currency": {
      "$ref": "#/components/schemas/Currency"
    },
    "monthly_tce": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null,
      "description": "Monthly gross salary + monthly contributions  (doesn't include fee)"
    },
    "annual_total": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null,
      "description": "The annual gross salary + annual contributions + annual fee (monthly fee * 12) + extra statutory payments if applicable"
    },
    "monthly_total": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null,
      "description": "Monthly gross salary + monthly contributions + monthly fee"
    },
    "annual_gross_salary": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null,
      "description": "The annual gross salary that the employee is going to earn"
    },
    "monthly_gross_salary": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null,
      "description": "The gross monthly salary for the Employee"
    },
    "annual_benefits_total": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null,
      "description": "The annual benefits total that a company must pay for this employment"
    },
    "monthly_benefits_total": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null,
      "description": "The benefits total that the company pays monthly"
    },
    "annual_benefits_breakdown": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CostCalculatorCost"
      },
      "x-struct": null,
      "x-validate": null,
      "description": "The list of all annual benefit costs"
    },
    "annual_contributions_total": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null,
      "description": "The annual contributions that a company must pay for this employment"
    },
    "monthly_benefits_breakdown": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CostCalculatorCost"
      },
      "x-struct": null,
      "x-validate": null,
      "description": "The list of all monthly benefit costs"
    },
    "monthly_contributions_total": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null,
      "description": "The contributions that the company pays monthly"
    },
    "annual_contributions_breakdown": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CostCalculatorCost"
      },
      "x-struct": null,
      "x-validate": null,
      "description": "The list of all annual employer contribution costs"
    },
    "extra_statutory_payments_total": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null,
      "description": "13th month salary, this happens for countries such as Philippines"
    },
    "monthly_contributions_breakdown": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CostCalculatorCost"
      },
      "x-struct": null,
      "x-validate": null,
      "description": "The list of all monthly employer contribution costs"
    },
    "extra_statutory_payments_breakdown": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CostCalculatorCost"
      },
      "x-struct": null,
      "x-validate": null,
      "description": "The list of all annual extra statutory payment costs"
    }
  },
  "x-validate": null
}
object CostCalculatorEmployment
{
  "type": "object",
  "title": "CostCalculatorEmployment",
  "example": {
    "region": {
      "code": "USA",
      "name": "United States",
      "slug": "663e0b79-c893-45ff-a1b2-f6dcabc098b5"
    },
    "country": {
      "code": "PRT",
      "name": "Portugal",
      "slug": "portugal-ab18d96a-a9fd-42c0-9688-24f963d8bdc1",
      "alpha_2_code": "PT"
    },
    "employer_currency_costs": {
      "currency": {
        "code": "EUR",
        "name": "European Euro",
        "slug": "eur-3b840951-099f-4bd5-90b9-032f7bfe51d9",
        "symbol": "€"
      },
      "monthly_tce": 1120000,
      "annual_total": 13441200,
      "monthly_total": 1120100,
      "annual_gross_salary": 12000000,
      "monthly_gross_salary": 1000000,
      "annual_benefits_total": 1441200,
      "monthly_benefits_total": 120100,
      "annual_benefits_breakdown": [
        {
          "name": "Insurance",
          "amount": 1120000,
          "description": "Description of how the amount is calculated.",
          "zendesk_article_url": "https://examplezendesk.com/article/1234"
        }
      ],
      "annual_contributions_total": 1441200,
      "monthly_benefits_breakdown": [
        {
          "name": "Insurance",
          "amount": 1120000,
          "description": "Description of how the amount is calculated.",
          "zendesk_article_url": "https://examplezendesk.com/article/1234"
        }
      ],
      "monthly_contributions_total": 120100,
      "annual_contributions_breakdown": [
        {
          "name": "Insurance",
          "amount": 1120000,
          "description": "Description of how the amount is calculated.",
          "zendesk_article_url": "https://examplezendesk.com/article/1234"
        }
      ],
      "extra_statutory_payments_total": 0,
      "monthly_contributions_breakdown": [
        {
          "name": "Insurance",
          "amount": 1120000,
          "description": "Description of how the amount is calculated.",
          "zendesk_article_url": "https://examplezendesk.com/article/1234"
        }
      ],
      "extra_statutory_payments_breakdown": [
        {
          "name": "Insurance",
          "amount": 1120000,
          "description": "Description of how the amount is calculated.",
          "zendesk_article_url": "https://examplezendesk.com/article/1234"
        }
      ]
    },
    "regional_currency_costs": {
      "currency": {
        "code": "EUR",
        "name": "European Euro",
        "slug": "eur-3b840951-099f-4bd5-90b9-032f7bfe51d9",
        "symbol": "€"
      },
      "monthly_tce": 1120000,
      "annual_total": 13441200,
      "monthly_total": 1120100,
      "annual_gross_salary": 12000000,
      "monthly_gross_salary": 1000000,
      "annual_benefits_total": 1441200,
      "monthly_benefits_total": 120100,
      "annual_benefits_breakdown": [
        {
          "name": "Insurance",
          "amount": 1120000,
          "description": "Description of how the amount is calculated.",
          "zendesk_article_url": "https://examplezendesk.com/article/1234"
        }
      ],
      "annual_contributions_total": 1441200,
      "monthly_benefits_breakdown": [
        {
          "name": "Insurance",
          "amount": 1120000,
          "description": "Description of how the amount is calculated.",
          "zendesk_article_url": "https://examplezendesk.com/article/1234"
        }
      ],
      "monthly_contributions_total": 120100,
      "annual_contributions_breakdown": [
        {
          "name": "Insurance",
          "amount": 1120000,
          "description": "Description of how the amount is calculated.",
          "zendesk_article_url": "https://examplezendesk.com/article/1234"
        }
      ],
      "extra_statutory_payments_total": 0,
      "monthly_contributions_breakdown": [
        {
          "name": "Insurance",
          "amount": 1120000,
          "description": "Description of how the amount is calculated.",
          "zendesk_article_url": "https://examplezendesk.com/article/1234"
        }
      ],
      "extra_statutory_payments_breakdown": [
        {
          "name": "Insurance",
          "amount": 1120000,
          "description": "Description of how the amount is calculated.",
          "zendesk_article_url": "https://examplezendesk.com/article/1234"
        }
      ]
    },
    "has_extra_statutory_payment": false
  },
  "required": [
    "country",
    "employer_currency_costs",
    "has_extra_statutory_payment",
    "region",
    "regional_currency_costs"
  ],
  "x-struct": null,
  "properties": {
    "region": {
      "$ref": "#/components/schemas/MinimalRegion"
    },
    "country": {
      "$ref": "#/components/schemas/MinimalCountry"
    },
    "employer_currency_costs": {
      "$ref": "#/components/schemas/CostCalculatorCosts"
    },
    "regional_currency_costs": {
      "$ref": "#/components/schemas/CostCalculatorCosts"
    },
    "has_extra_statutory_payment": {
      "type": "boolean",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object CostCalculatorEmploymentParam
{
  "type": "object",
  "title": "CostCalculatorEmploymentParam",
  "required": [
    "region_slug"
  ],
  "x-struct": null,
  "properties": {
    "age": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    },
    "title": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "region_slug": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "employment_term": {
      "$ref": "#/components/schemas/EmploymentTermType"
    },
    "annual_gross_salary": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    },
    "regional_to_employer_exchange_rate": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "annual_gross_salary_in_employer_currency": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object CostCalculatorEstimatePDFResponse
{
  "type": "object",
  "title": "CostCalculatorEstimatePDFResponse",
  "required": [
    "data"
  ],
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "content"
      ],
      "x-struct": null,
      "properties": {
        "content": {
          "$ref": "#/components/schemas/GenericFile"
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null
}
object CostCalculatorEstimateParams
{
  "type": "object",
  "title": "CostCalculatorEstimateParams",
  "required": [
    "employments",
    "employer_currency_slug"
  ],
  "x-struct": null,
  "properties": {
    "employments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CostCalculatorEmploymentParam"
      },
      "x-struct": null,
      "x-validate": null
    },
    "include_benefits": {
      "type": "boolean",
      "x-struct": null,
      "x-validate": null
    },
    "employer_currency_slug": {
      "type": "string",
      "title": "Slug",
      "example": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
      "x-struct": null,
      "x-validate": null,
      "description": "Currency Slug"
    },
    "include_cost_breakdowns": {
      "type": "boolean",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object CostCalculatorEstimateResponse
{
  "type": "object",
  "title": "CostCalculatorEstimateResponse",
  "example": {
    "data": {
      "employments": [
        {
          "region": {
            "code": "USA",
            "name": "United States",
            "slug": "663e0b79-c893-45ff-a1b2-f6dcabc098b5"
          },
          "country": {
            "code": "PRT",
            "name": "Portugal",
            "slug": "portugal-ab18d96a-a9fd-42c0-9688-24f963d8bdc1",
            "alpha_2_code": "PT"
          },
          "employer_currency_costs": {
            "currency": {
              "code": "EUR",
              "name": "European Euro",
              "slug": "eur-3b840951-099f-4bd5-90b9-032f7bfe51d9",
              "symbol": "€"
            },
            "monthly_tce": 1120000,
            "annual_total": 13441200,
            "monthly_total": 1120100,
            "annual_gross_salary": 12000000,
            "monthly_gross_salary": 1000000,
            "annual_benefits_total": 1441200,
            "monthly_benefits_total": 120100,
            "annual_benefits_breakdown": [
              {
                "name": "Insurance",
                "amount": 1120000,
                "description": "Description of how the amount is calculated.",
                "zendesk_article_url": "https://examplezendesk.com/article/1234"
              }
            ],
            "annual_contributions_total": 1441200,
            "monthly_benefits_breakdown": [
              {
                "name": "Insurance",
                "amount": 1120000,
                "description": "Description of how the amount is calculated.",
                "zendesk_article_url": "https://examplezendesk.com/article/1234"
              }
            ],
            "monthly_contributions_total": 120100,
            "annual_contributions_breakdown": [
              {
                "name": "Insurance",
                "amount": 1120000,
                "description": "Description of how the amount is calculated.",
                "zendesk_article_url": "https://examplezendesk.com/article/1234"
              }
            ],
            "extra_statutory_payments_total": 0,
            "monthly_contributions_breakdown": [
              {
                "name": "Insurance",
                "amount": 1120000,
                "description": "Description of how the amount is calculated.",
                "zendesk_article_url": "https://examplezendesk.com/article/1234"
              }
            ],
            "extra_statutory_payments_breakdown": [
              {
                "name": "Insurance",
                "amount": 1120000,
                "description": "Description of how the amount is calculated.",
                "zendesk_article_url": "https://examplezendesk.com/article/1234"
              }
            ]
          },
          "regional_currency_costs": {
            "currency": {
              "code": "EUR",
              "name": "European Euro",
              "slug": "eur-3b840951-099f-4bd5-90b9-032f7bfe51d9",
              "symbol": "€"
            },
            "monthly_tce": 1120000,
            "annual_total": 13441200,
            "monthly_total": 1120100,
            "annual_gross_salary": 12000000,
            "monthly_gross_salary": 1000000,
            "annual_benefits_total": 1441200,
            "monthly_benefits_total": 120100,
            "annual_benefits_breakdown": [
              {
                "name": "Insurance",
                "amount": 1120000,
                "description": "Description of how the amount is calculated.",
                "zendesk_article_url": "https://examplezendesk.com/article/1234"
              }
            ],
            "annual_contributions_total": 1441200,
            "monthly_benefits_breakdown": [
              {
                "name": "Insurance",
                "amount": 1120000,
                "description": "Description of how the amount is calculated.",
                "zendesk_article_url": "https://examplezendesk.com/article/1234"
              }
            ],
            "monthly_contributions_total": 120100,
            "annual_contributions_breakdown": [
              {
                "name": "Insurance",
                "amount": 1120000,
                "description": "Description of how the amount is calculated.",
                "zendesk_article_url": "https://examplezendesk.com/article/1234"
              }
            ],
            "extra_statutory_payments_total": 0,
            "monthly_contributions_breakdown": [
              {
                "name": "Insurance",
                "amount": 1120000,
                "description": "Description of how the amount is calculated.",
                "zendesk_article_url": "https://examplezendesk.com/article/1234"
              }
            ],
            "extra_statutory_payments_breakdown": [
              {
                "name": "Insurance",
                "amount": 1120000,
                "description": "Description of how the amount is calculated.",
                "zendesk_article_url": "https://examplezendesk.com/article/1234"
              }
            ]
          },
          "has_extra_statutory_payment": false
        }
      ]
    }
  },
  "required": [
    "data"
  ],
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "x-struct": null,
      "properties": {
        "employments": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CostCalculatorEmployment"
          },
          "x-struct": null,
          "x-validate": null
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null
}
object Costs
{
  "type": "object",
  "title": "Costs",
  "example": {
    "employee_cost": 234,
    "employer_cost": 44
  },
  "nullable": true,
  "required": [
    "employee_cost",
    "employer_cost"
  ],
  "x-struct": null,
  "properties": {
    "employee_cost": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    },
    "employer_cost": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object CountriesResponse
{
  "type": "object",
  "title": "CountriesResponse",
  "example": {
    "data": [
      {
        "code": "PRT",
        "name": "Portugal",
        "alpha_2_code": "PT",
        "supported_json_schemas": [
          "additional_documents",
          "address_details",
          "administrative_details",
          "employment-basic-information",
          "bank_account_details",
          "contract_details",
          "emergency_contact"
        ]
      }
    ]
  },
  "x-struct": null,
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Country"
      },
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "List of countries supported by Remote API"
}
object Country
{
  "type": "object",
  "title": "Country",
  "example": {
    "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"
    ]
  },
  "required": [
    "alpha_2_code",
    "code",
    "name"
  ],
  "x-struct": null,
  "properties": {
    "code": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "alpha_2_code": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "country_subdivisions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CountrySubdivision"
      },
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    },
    "supported_json_schemas": {
      "type": "array",
      "items": {
        "type": "string",
        "x-struct": null,
        "x-validate": null
      },
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "A supported country on Remote"
}
object CountryFormResponse
{
  "type": "object",
  "title": "CountryFormResponse",
  "example": {
    "data": {
      "type": "object",
      "required": [
        "address",
        "city",
        "postal_code"
      ],
      "properties": {
        "city": {
          "type": "string",
          "title": "City",
          "maxLength": 255,
          "description": "Enter your city"
        },
        "address": {
          "type": "string",
          "title": "Address",
          "maxLength": 255,
          "description": "Your street name and house number. PO Box addresses are not supported."
        },
        "postal_code": {
          "type": "string",
          "title": "Postal code",
          "maxLength": 255,
          "description": "Enter zip or postal code"
        },
        "address_line_2": {
          "type": "string",
          "title": "Address line 2",
          "maxLength": 255,
          "description": "(Optional) For example, apartment, block, or building number."
        }
      }
    }
  },
  "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"
}
object CountrySubdivision
{
  "type": "object",
  "title": "CountrySubdivision",
  "example": {
    "code": "PT-11",
    "name": "Lisboa",
    "subdivision_type": "District"
  },
  "required": [
    "name"
  ],
  "x-struct": null,
  "properties": {
    "code": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "subdivision_type": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "A subdivision of a supported country on Remote"
}
object CountrySummariesResponse
{
  "type": "object",
  "title": "CountrySummariesResponse",
  "example": {
    "data": {
      "company_id": "79297cfd-cf60-4cf4-a70f-ac2061d72a74",
      "country_summaries": [
        [
          {
            "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"
              ]
            },
            "employee_stats": {
              "number_of_employees_offered": 12,
              "number_of_employees_enrolled": 10
            },
            "offered_benefit_groups": [
              {
                "benefit_group": {
                  "id": "54297cfd-cf60-4cf4-a70f-ac2061d72b44X",
                  "name": "Health",
                  "policy_end_date": "2024-12-31",
                  "policy_start_date": "2024-01-01"
                },
                "employee_stats": {
                  "number_of_employees_offered": 12,
                  "number_of_employees_enrolled": 10
                },
                "offered_benefit_tiers": [
                  {
                    "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"
                        }
                      ]
                    },
                    "employee_stats": {
                      "number_of_employees_offered": 12,
                      "number_of_employees_enrolled": 10
                    }
                  }
                ]
              }
            ]
          }
        ]
      ]
    }
  },
  "required": [
    "data"
  ],
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "company_id",
        "country_summaries"
      ],
      "x-struct": null,
      "properties": {
        "company_id": {
          "type": "string",
          "x-struct": null,
          "x-validate": null
        },
        "country_summaries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CountrySummary"
          },
          "x-struct": null,
          "x-validate": null
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null
}
object CountrySummary
{
  "type": "object",
  "title": "CountrySummary",
  "example": {
    "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"
      ]
    },
    "employee_stats": {
      "number_of_employees_offered": 12,
      "number_of_employees_enrolled": 10
    },
    "offered_benefit_groups": [
      {
        "benefit_group": {
          "id": "54297cfd-cf60-4cf4-a70f-ac2061d72b44X",
          "name": "Health",
          "policy_end_date": "2024-12-31",
          "policy_start_date": "2024-01-01"
        },
        "employee_stats": {
          "number_of_employees_offered": 12,
          "number_of_employees_enrolled": 10
        },
        "offered_benefit_tiers": [
          {
            "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"
                }
              ]
            },
            "employee_stats": {
              "number_of_employees_offered": 12,
              "number_of_employees_enrolled": 10
            }
          }
        ]
      }
    ]
  },
  "required": [
    "country",
    "employee_stats",
    "offered_benefit_groups"
  ],
  "x-struct": null,
  "properties": {
    "country": {
      "$ref": "#/components/schemas/Country"
    },
    "employee_stats": {
      "$ref": "#/components/schemas/EmployeeStats"
    },
    "offered_benefit_groups": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/OfferedBenefitGroup"
      },
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object CreateApprovedTimeoffParams
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/CreateTimeoffParams"
    },
    {
      "type": "object",
      "x-struct": null,
      "properties": {
        "status": {
          "enum": [
            "approved"
          ],
          "type": "string",
          "x-struct": null,
          "x-validate": null
        },
        "approved_at": {
          "$ref": "#/components/schemas/DateTimeIso8601"
        },
        "approver_id": {
          "$ref": "#/components/schemas/NullableApproverId"
        }
      },
      "x-validate": null
    }
  ],
  "title": "CreateApprovedTimeoffParams",
  "required": [
    "status",
    "approver_id",
    "approved_at"
  ],
  "x-struct": null,
  "x-validate": null,
  "description": "Approved timeoff creation params"
}
object CreateCompanyDepartmentParams
{
  "type": "object",
  "title": "CreateCompanyDepartmentParams",
  "example": {
    "name": "Marketing",
    "company_id": "669f9e18-889f-4c2c-95b8-67795a3113cc"
  },
  "required": [
    "company_id",
    "name"
  ],
  "x-struct": null,
  "properties": {
    "name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The name of the company department. May be non-unique and limited to 255 characters, maximum."
    },
    "company_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The Company ID. Required in all cases, whether the API credentials have access to multiple companies or just one."
    }
  },
  "x-validate": null
}
object CreateCompanyParams
{
  "type": "object",
  "title": "CreateCompanyParams",
  "example": {
    "name": "Tech Vision",
    "tax_number": "123456789",
    "external_id": "00001111",
    "country_code": "USA",
    "phone_number": "+11123123456",
    "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": "ceo@techvision.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": "2022-05-05 15:03:45Z"
  },
  "required": [
    "company_owner_email",
    "company_owner_name",
    "country_code",
    "desired_currency",
    "name",
    "terms_of_service_accepted_at"
  ],
  "x-struct": null,
  "properties": {
    "name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The company name"
    },
    "tax_number": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The tax identifier of the company. This field or `registration_number` (but not both) should be submitted."
    },
    "external_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "Id of the company as represented in the external partner system."
    },
    "country_code": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "3-letter country code of the country the company address is located in.\n\nFor a list of countries supported through the Remote API, make a call to the [list countries endpoint](https://gateway.remote.com/v1/docs/openapi.html). This endpoint will also include the 3-letter country codes you can use for this field.\n"
    },
    "email_domain": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "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."
    },
    "phone_number": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "A phone number the company can be contacted with."
    },
    "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": {
      "enum": [
        "AUD",
        "CAD",
        "CHF",
        "DKK",
        "EUR",
        "GBP",
        "JPY",
        "NOK",
        "NZD",
        "SEK",
        "SGD",
        "USD"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "Desired currency for invoicing and displaying converted salaries in Remote UI regardless of the employee's country."
    },
    "company_owner_name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The company owner name.\n\nThis value cannot be changed from the Remote API once set.\n"
    },
    "company_owner_email": {
      "type": "string",
      "format": "email",
      "x-struct": null,
      "x-validate": null,
      "description": "The company owner email.\n\nThis value cannot be changed once set.\n"
    },
    "registration_number": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The company registration number. This field or `tax_number` (but not both) should be submitted."
    },
    "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,
      "description": "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: `YYYY-MM-DD HOURS:MINUTES:SECONDSZ`"
    }
  },
  "x-validate": null
}
object CreateContractAmendmentParams
{
  "type": "object",
  "title": "CreateContractAmendmentParams",
  "example": {
    "employment_id": "e31adae1-company-id-af5fba7dd803",
    "contract_amendment": {},
    "amendment_contract_id": "c15993d8-aa8a-4fbb-b395-8b7a54f57db1"
  },
  "required": [
    "employment_id",
    "amendment_contract_id",
    "contract_amendment"
  ],
  "x-struct": null,
  "properties": {
    "employment_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The employment ID that is related to the contract amendment request."
    },
    "contract_amendment": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Contract amendment informations. As its properties may vary depending on the country,\n                you must query the [Show form schema](https://gateway.remote.com/v1/docs/openapi.html) endpoint\n            passing the country code, `contract_amendment` and the employment ID as request body."
    },
    "amendment_contract_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The contract ID of the contract that needs to be amended."
    }
  },
  "x-validate": null
}
object CreateOffboardingParams
{
  "type": "object",
  "title": "CreateOffboardingParams",
  "example": {
    "type": "termination",
    "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
    "termination_details": {
      "confidential": false,
      "employee_awareness": {
        "date": "2023-12-12",
        "note": "optional text to add details"
      },
      "reason_description": "termination reason",
      "termination_reason": "workforce_reduction",
      "additional_comments": "additional comments regarding the termination reason",
      "risk_assessment_reasons": [
        "pregnant_or_breastfeeding",
        "family_leave"
      ],
      "termination_reason_files": [
        {
          "name": "termination_letter.pdf",
          "content": "UGVyaW9kIEVuZCBEYXRlLFBheSBEYXRlLEVtcG...5jZSBPZiBSZXNpZGVuYdXJyZW50LEFsbG93"
        }
      ],
      "proposed_termination_date": "2023-12-20",
      "will_challenge_termination": true,
      "will_challenge_termination_description": "additional details for the offboarding risk assessment"
    }
  },
  "required": [
    "type",
    "employment_id",
    "termination_details"
  ],
  "x-struct": null,
  "properties": {
    "type": {
      "enum": [
        "termination"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The type of the offboarding request. For now, only `termination` is allowed."
    },
    "employment_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "termination_details": {
      "$ref": "#/components/schemas/TerminationDetailsParams"
    }
  },
  "x-validate": null
}
object CreateOneTimeIncentiveParams
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/CommonIncentiveParams"
    },
    {
      "type": "object",
      "x-struct": null,
      "properties": {
        "type": {
          "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"
          ],
          "type": "string",
          "x-struct": null,
          "x-validate": null
        },
        "employment_id": {
          "type": "string",
          "x-struct": null,
          "x-validate": null
        }
      },
      "x-validate": null
    }
  ],
  "title": "CreateOneTimeIncentiveParams",
  "example": {
    "note": "Bonus for moving start date to an earlier date",
    "type": "signing_bonus",
    "amount": 50000,
    "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
    "effective_date": "2021-12-20",
    "amount_tax_type": "net"
  },
  "required": [
    "type",
    "amount",
    "amount_tax_type",
    "employment_id",
    "effective_date"
  ],
  "x-struct": null,
  "properties": {
    "note": {
      "type": "string",
      "example": "Bonus for moving start date to an earlier date"
    },
    "type": {
      "type": "string",
      "example": "signing_bonus"
    },
    "amount": {
      "type": "number",
      "example": 50000
    },
    "employment_id": {
      "type": "string",
      "example": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d"
    },
    "effective_date": {
      "type": "string",
      "example": "2021-12-20"
    },
    "amount_tax_type": {
      "type": "string",
      "example": "net"
    }
  },
  "x-validate": null
}
object CreateParams
{
  "type": "object",
  "title": "CreateParams",
  "x-struct": null,
  "properties": {
    "type": {
      "enum": [
        "employee",
        "contractor"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "If not provided, it will default to `employee`."
    },
    "company_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "This optional field is deprecated."
    },
    "country_code": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "basic_information": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Employment basic information. When using this field, the same other root level fields (name, personal_email, job_title,\nprovisional_start_date, and seniority_date) will be ignored.\nIts properties may vary depending on the country, you must query the [Show form schema](https://gateway.remote.com/v1/docs/openapi.html) endpoint\npassing the country code and `employment_basic_information` as path parameters.\n"
    }
  },
  "x-validate": null
}
object CreateParams-Deprecated
{
  "type": "object",
  "title": "CreateParams-Deprecated",
  "x-struct": null,
  "properties": {
    "type": {
      "enum": [
        "employee",
        "contractor"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "If not provided, it will default to `employee`."
    },
    "full_name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "job_title": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "company_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "This optional field is deprecated."
    },
    "country_code": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "personal_email": {
      "type": "string",
      "format": "email",
      "x-struct": null,
      "x-validate": null
    },
    "seniority_date": {
      "$ref": "#/components/schemas/EmploymentSeniorityDate"
    },
    "provisional_start_date": {
      "$ref": "#/components/schemas/ProvisionalStartDate"
    }
  },
  "x-validate": null,
  "description": "Providing the params in the root level of the request is now deprecated and will be removed in the future.\nPlease, use the \"CreateParams\" instead.\n"
}
object CreateRecurringIncentiveParams
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/CommonIncentiveParams"
    },
    {
      "type": "object",
      "x-struct": null,
      "properties": {
        "type": {
          "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"
          ],
          "type": "string",
          "x-struct": null,
          "x-validate": null
        },
        "employment_id": {
          "type": "string",
          "x-struct": null,
          "x-validate": null
        },
        "duration_in_months": {
          "type": "string",
          "format": "integer",
          "x-struct": null,
          "x-validate": null,
          "description": "How many times the payment will repeat. At the moment we only fully support monthly frequency.\n\nThis field is only necessary if the recurring incentive has an end date.\n"
        }
      },
      "x-validate": null
    }
  ],
  "title": "CreateRecurringIncentiveParams",
  "example": {
    "note": "Bonus for moving start date to an earlier date",
    "type": "meal_allowance",
    "amount": 50000,
    "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
    "effective_date": "2021-12-20",
    "amount_tax_type": "net",
    "duration_in_months": 3
  },
  "required": [
    "type",
    "amount",
    "amount_tax_type",
    "employment_id",
    "effective_date"
  ],
  "x-struct": null,
  "properties": {
    "note": {
      "type": "string",
      "example": "Bonus for moving start date to an earlier date"
    },
    "type": {
      "type": "string",
      "example": "meal_allowance"
    },
    "amount": {
      "type": "number",
      "example": 50000
    },
    "employment_id": {
      "type": "string",
      "example": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d"
    },
    "effective_date": {
      "type": "string",
      "example": "2021-12-20"
    },
    "amount_tax_type": {
      "type": "string",
      "example": "net"
    },
    "duration_in_months": {
      "type": "number",
      "example": 3
    }
  },
  "x-validate": null
}
object CreateTimeoffParams
{
  "type": "object",
  "title": "CreateTimeoffParams",
  "required": [
    "employment_id",
    "start_date",
    "end_date",
    "timeoff_type",
    "timezone",
    "timeoff_days"
  ],
  "x-struct": null,
  "properties": {
    "notes": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "document": {
      "$ref": "#/components/schemas/TimeoffDocumentParams"
    },
    "end_date": {
      "type": "string",
      "format": "datetime",
      "nullable": false,
      "x-struct": null,
      "x-validate": null
    },
    "timezone": {
      "$ref": "#/components/schemas/Timezone"
    },
    "start_date": {
      "type": "string",
      "format": "datetime",
      "nullable": false,
      "x-struct": null,
      "x-validate": null
    },
    "timeoff_days": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TimeoffDaysParams"
      },
      "x-struct": null,
      "x-validate": null
    },
    "timeoff_type": {
      "$ref": "#/components/schemas/TimeoffType"
    },
    "employment_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Timeoff creation params"
}
object CreateWebhookCallbackParams
{
  "type": "object",
  "title": "CreateWebhookCallbackParams",
  "example": {
    "url": "https://example.com/callback",
    "subscribed_events": [
      "employment.onboarding_task.completed"
    ]
  },
  "required": [
    "url"
  ],
  "x-struct": null,
  "properties": {
    "url": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "subscribed_events": {
      "type": "array",
      "items": {
        "enum": [
          "billing_document.issued",
          "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.onboarding_task.completed",
          "employment.onboarding.completed",
          "employment.personal_information.updated",
          "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.deleted",
          "offboarding.done",
          "offboarding.review_started",
          "offboarding.submitted",
          "offboarding.submitted_to_payroll",
          "offboarding.completed",
          "payslip.released",
          "timeoff.approved",
          "timeoff.canceled",
          "timeoff.date_changed",
          "timeoff.declined",
          "timeoff.requested",
          "timeoff.taken",
          "timeoff.updated"
        ],
        "type": "string",
        "x-struct": null,
        "x-validate": null,
        "description": "The setting to be enabled."
      },
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Webhook callback creation params"
}
object Currency
{
  "type": "object",
  "title": "Currency",
  "example": {
    "code": "EUR",
    "name": "European Euro",
    "slug": "eur-3b840951-099f-4bd5-90b9-032f7bfe51d9",
    "symbol": "€"
  },
  "required": [
    "code",
    "slug",
    "symbol"
  ],
  "x-struct": null,
  "properties": {
    "code": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "slug": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "symbol": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "The type of money in general use in a particular country"
}
object CurrencyDefinition
{
  "type": "object",
  "title": "CurrencyDefinition",
  "example": {
    "code": "CZK",
    "name": "Czech Koruna",
    "symbol": "Kč"
  },
  "required": [
    "code",
    "name",
    "symbol"
  ],
  "x-struct": null,
  "properties": {
    "code": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "symbol": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Currency object without a UUID identifier"
}
string Date
{
  "type": "string",
  "title": "Date",
  "format": "date",
  "example": "2021-07-01",
  "x-struct": null,
  "x-validate": null,
  "description": "UTC date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format"
}
string DateTimeIso8601
{
  "type": "string",
  "title": "DateTimeIso8601",
  "format": "date-time",
  "example": "2021-07-15T18:18:17Z",
  "x-struct": null,
  "x-validate": null,
  "description": "UTC date time in [ISO 8601][] format.\n\n[ISO 8601]: https://en.wikipedia.org/wiki/ISO_8601\n"
}
object DeclineExpenseParams
{
  "type": "object",
  "title": "DeclineExpenseParams",
  "example": {
    "reason": "Expense not refundable",
    "status": "declined"
  },
  "required": [
    "status",
    "reason"
  ],
  "x-struct": null,
  "properties": {
    "reason": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "Reason for declination."
    },
    "status": {
      "enum": [
        "declined"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Decline an expense"
}
object DeleteRecurringIncentiveResponse
{
  "type": "object",
  "title": "DeleteRecurringIncentiveResponse",
  "required": [
    "data"
  ],
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "already_scheduled_incentives"
      ],
      "x-struct": null,
      "properties": {
        "status": {
          "type": "string",
          "x-struct": null,
          "x-validate": null
        },
        "already_scheduled_incentives": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Incentive"
          },
          "x-struct": null,
          "x-validate": null
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "`\"status\": \"ok\"` indicates that any recurring incentives with `pending` status were\nsuccessfully deleted.\n\n`already_scheduled_incentives` returns a list of incentives that were already scheduled\nfor payout and as such, cannot be deleted. You will notice that these incentives do not\nhave a `pending` status.\n"
}
object EmployeeStats
{
  "type": "object",
  "title": "EmployeeStats",
  "example": {
    "number_of_employees_offered": 12,
    "number_of_employees_enrolled": 10
  },
  "required": [
    "number_of_employees_offered",
    "number_of_employees_enrolled"
  ],
  "x-struct": null,
  "properties": {
    "number_of_employees_offered": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    },
    "number_of_employees_enrolled": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object Employment
{
  "type": "object",
  "title": "Employment",
  "example": {
    "id": "67897cfd-cf60-4cf4-a70f-ac2061d72984",
    "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"
  },
  "required": [
    "id",
    "given_name",
    "name",
    "surname",
    "country"
  ],
  "x-struct": null,
  "properties": {
    "id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "country": {
      "$ref": "#/components/schemas/Country"
    },
    "surname": {
      "type": "string",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    },
    "given_name": {
      "type": "string",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object EmploymentBasicParams
{
  "type": "object",
  "oneOf": [
    {
      "$ref": "#/components/schemas/CreateParams"
    },
    {
      "$ref": "#/components/schemas/CreateParams-Deprecated"
    }
  ],
  "title": "EmploymentBasicParams",
  "example": {
    "type": "employee",
    "full_name": "Jane Smith",
    "job_title": "Engineer",
    "country_code": "AUS",
    "personal_email": "jane@smith.com",
    "basic_information": {
      "name": "Jane Smith",
      "email": "jane@smith.com",
      "job_title": "Engineer",
      "has_seniority_date": "no",
      "provisional_start_date": "2022-07-10"
    },
    "provisional_start_date": "2022-07-10"
  },
  "required": [
    "full_name",
    "personal_email",
    "job_title",
    "country_code"
  ],
  "x-struct": null,
  "properties": {
    "type": {
      "type": "string",
      "example": "employee"
    },
    "full_name": {
      "type": "string",
      "example": "Jane Smith"
    },
    "job_title": {
      "type": "string",
      "example": "Engineer"
    },
    "country_code": {
      "type": "string",
      "example": "AUS"
    },
    "personal_email": {
      "type": "string",
      "example": "jane@smith.com"
    },
    "basic_information": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "example": "Jane Smith"
        },
        "email": {
          "type": "string",
          "example": "jane@smith.com"
        },
        "job_title": {
          "type": "string",
          "example": "Engineer"
        },
        "has_seniority_date": {
          "type": "string",
          "example": "no"
        },
        "provisional_start_date": {
          "type": "string",
          "example": "2022-07-10"
        }
      }
    },
    "provisional_start_date": {
      "type": "string",
      "example": "2022-07-10"
    }
  },
  "x-validate": null,
  "description": "Description of the required params to create an employment."
}
object EmploymentBasicResponse
{
  "type": "object",
  "title": "EmploymentBasicResponse",
  "example": {
    "id": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
    "type": "employee",
    "full_name": "Jane Smith",
    "job_title": "Engineer",
    "company_id": "20a72f86-company-id-20a72f86",
    "created_at": "2023-02-01T15:42:03",
    "updated_at": "2023-02-01T15:42:03",
    "country_code": "AUS",
    "personal_email": "jane@smith.com",
    "basic_information": {
      "name": "Jane Smith",
      "email": "jane@smith.com",
      "job_title": "Engineer",
      "has_seniority_date": "no",
      "provisional_start_date": "2022-07-10"
    },
    "provisional_start_date": "2022-07-10",
    "employment_lifecycle_stage": "employment_creation"
  },
  "x-struct": null,
  "properties": {
    "id": {
      "$ref": "#/components/schemas/Slug"
    },
    "type": {
      "enum": [
        "employee",
        "contractor"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "full_name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "job_title": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "company_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "x-struct": null,
      "x-validate": null
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "x-struct": null,
      "x-validate": null
    },
    "country_code": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "personal_email": {
      "type": "string",
      "format": "email",
      "x-struct": null,
      "x-validate": null
    },
    "basic_information": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Employment basic information. As its properties may vary depending on the country,\n               you must query the [Show form schema](https://gateway.remote.com/v1/docs/openapi.html) endpoint\n            passing the country code and `basic_information` as path parameters."
    },
    "provisional_start_date": {
      "type": "string",
      "format": "date",
      "x-struct": null,
      "x-validate": null,
      "description": "Required for employees, optional for contractors"
    },
    "employment_lifecycle_stage": {
      "$ref": "#/components/schemas/EmploymentLifecycleStage"
    }
  },
  "x-validate": null,
  "description": "Complete information of an employment"
}
object EmploymentContract
{
  "type": "object",
  "title": "EmploymentContract",
  "example": {
    "status": "active",
    "country": {
      "code": "CAN",
      "name": "Canada"
    },
    "job_title": "Engineer",
    "contract_id": "20a72f86-contract-id-9e4942a902ff",
    "activated_at": "2021-07-15T18:18:17Z",
    "compensation": {
      "amount": 33000,
      "currency_code": "CAD"
    },
    "effective_at": "2021-07-15T18:18:17Z",
    "contract_details": {},
    "amendment_contract_id": "e31adae1-contract-id-af5fba7dd803"
  },
  "required": [
    "contract_id",
    "amendment_contract_id",
    "country",
    "contract_details",
    "compensation",
    "job_title",
    "status",
    "activated_at",
    "effective_at"
  ],
  "x-struct": null,
  "properties": {
    "status": {
      "$ref": "#/components/schemas/EmploymentContractStatus"
    },
    "country": {
      "$ref": "#/components/schemas/Country"
    },
    "job_title": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "contract_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "activated_at": {
      "$ref": "#/components/schemas/DateTimeIso8601"
    },
    "compensation": {
      "$ref": "#/components/schemas/Compensation"
    },
    "effective_at": {
      "$ref": "#/components/schemas/DateTimeIso8601"
    },
    "contract_details": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Contract information. Its properties may vary depending on the country."
    },
    "amendment_contract_id": {
      "type": "string",
      "nullable": true,
      "x-struct": null,
      "x-validate": null,
      "description": "The id of the employment contract that was amended by this employment contract, if any."
    }
  },
  "x-validate": null
}
object EmploymentContractPendingChangesResponse
{
  "type": "object",
  "title": "EmploymentContractPendingChangesResponse",
  "example": {
    "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"
        }
      ]
    }
  },
  "required": [
    "data"
  ],
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "pending_changes"
      ],
      "x-struct": null,
      "properties": {
        "pending_changes": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ContractPendingChanges"
          },
          "x-struct": null,
          "x-validate": null
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null
}
string EmploymentContractStatus
{
  "enum": [
    "active",
    "inactive",
    "pending"
  ],
  "type": "string",
  "title": "EmploymentContractStatus",
  "example": "active",
  "x-struct": null,
  "x-validate": null,
  "description": "The status of the employment contract."
}
object EmploymentCreationResponse
{
  "type": "object",
  "title": "EmploymentCreationResponse",
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "x-struct": null,
      "properties": {
        "employment": {
          "$ref": "#/components/schemas/EmploymentBasicResponse"
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null
}
object EmploymentCustomField
{
  "type": "object",
  "title": "EmploymentCustomField",
  "example": {
    "id": "01c0e4d2-f41b-11ed-9d3f-cb3ecccebb58X",
    "name": "Internal ID",
    "type": "string"
  },
  "required": [
    "custom_field_id",
    "name",
    "type",
    "required",
    "visibility_scope",
    "data_entry_access",
    "metadata"
  ],
  "x-struct": null,
  "properties": {
    "id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "type": {
      "enum": [
        "string",
        "text",
        "integer",
        "date",
        "boolean",
        "percentage",
        "decimal",
        "link",
        "currency",
        "single_select"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "metadata": {
      "type": "object",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    },
    "required": {
      "type": "boolean",
      "x-struct": null,
      "x-validate": null
    },
    "visibility_scope": {
      "enum": [
        "company_admin_only",
        "everyone"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "data_entry_access": {
      "enum": [
        "company_admin_only",
        "employee_only",
        "everyone"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "EmploymentCustomField"
}
object EmploymentCustomFieldValue
{
  "type": "object",
  "title": "EmploymentCustomFieldValue",
  "example": {
    "value": "UXH34HG",
    "custom_field_id": "01c0e4d2-f41b-11ed-9d3f-cb3ecccebb58"
  },
  "required": [
    "custom_field_id",
    "value"
  ],
  "x-struct": null,
  "properties": {
    "value": {
      "anyOf": [
        {
          "type": "string",
          "x-struct": null,
          "x-validate": null
        },
        {
          "type": "integer",
          "x-struct": null,
          "x-validate": null
        },
        {
          "type": "boolean",
          "x-struct": null,
          "x-validate": null
        },
        {
          "type": "number",
          "format": "decimal",
          "x-struct": null,
          "x-validate": null,
          "description": "Decimal value represented as a String"
        },
        {
          "$ref": "#/components/schemas/EmploymentCustomFieldValueJsonValue"
        }
      ],
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    },
    "custom_field_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "EmploymentCustomFieldValue"
}
object EmploymentCustomFieldValueJsonValue
{
  "type": "object",
  "title": "EmploymentCustomFieldValueJsonValue",
  "example": {
    "selected_value": "01c0e4d2-f41b-11ed-9d3f-cb3ecccebb55"
  },
  "required": [
    "selected_value"
  ],
  "x-struct": null,
  "properties": {
    "selected_value": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "EmploymentCustomFieldValueJsonValue"
}
object EmploymentCustomFieldValueResponse
{
  "type": "object",
  "title": "EmploymentCustomFieldValueResponse",
  "example": {
    "data": {
      "custom_field_value": {
        "value": "UXH34HG",
        "custom_field_id": "01c0e4d2-f41b-11ed-9d3f-cb3ecccebb58"
      }
    }
  },
  "required": [
    "data"
  ],
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "custom_field_value"
      ],
      "x-struct": null,
      "properties": {
        "custom_field_value": {
          "$ref": "#/components/schemas/EmploymentCustomFieldValue"
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "EmploymentCustomFieldValueResponse"
}
object EmploymentFullParams
{
  "type": "object",
  "oneOf": [
    {
      "$ref": "#/components/schemas/FullParams-Deprecated"
    },
    {
      "$ref": "#/components/schemas/FullParams"
    }
  ],
  "title": "EmploymentFullParams",
  "example": {
    "manager": "Taylor Johnson",
    "full_name": "Jane Smith",
    "job_title": "Backend Engineer",
    "company_id": "e31adae1-company-id-af5fba7dd803",
    "country_code": "AUS",
    "department_id": "3bb56f01-3243-412b-bfaa-a5cfaaf2e431",
    "personal_email": "jane@smith.com",
    "address_details": {},
    "contract_details": {},
    "personal_details": {},
    "basic_information": {
      "name": "Jane Smith",
      "email": "jane@smith.com",
      "job_title": "Backend Engineer",
      "has_seniority_date": "no",
      "provisional_start_date": "2021-07-03"
    },
    "bank_account_details": {},
    "pricing_plan_details": {
      "frequency": "annually"
    },
    "administrative_details": {},
    "provisional_start_date": "2021-07-03",
    "billing_address_details": {},
    "emergency_contact_details": {}
  },
  "required": [
    "full_name",
    "personal_email",
    "job_title",
    "country_code"
  ],
  "x-struct": null,
  "properties": {
    "manager": {
      "type": "string",
      "example": "Taylor Johnson"
    },
    "full_name": {
      "type": "string",
      "example": "Jane Smith"
    },
    "job_title": {
      "type": "string",
      "example": "Backend Engineer"
    },
    "company_id": {
      "type": "string",
      "example": "e31adae1-company-id-af5fba7dd803"
    },
    "country_code": {
      "type": "string",
      "example": "AUS"
    },
    "department_id": {
      "type": "string",
      "example": "3bb56f01-3243-412b-bfaa-a5cfaaf2e431"
    },
    "personal_email": {
      "type": "string",
      "example": "jane@smith.com"
    },
    "address_details": {
      "type": "object",
      "properties": {}
    },
    "contract_details": {
      "type": "object",
      "properties": {}
    },
    "personal_details": {
      "type": "object",
      "properties": {}
    },
    "basic_information": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "example": "Jane Smith"
        },
        "email": {
          "type": "string",
          "example": "jane@smith.com"
        },
        "job_title": {
          "type": "string",
          "example": "Backend Engineer"
        },
        "has_seniority_date": {
          "type": "string",
          "example": "no"
        },
        "provisional_start_date": {
          "type": "string",
          "example": "2021-07-03"
        }
      }
    },
    "bank_account_details": {
      "type": "object",
      "properties": {}
    },
    "pricing_plan_details": {
      "type": "object",
      "properties": {
        "frequency": {
          "type": "string",
          "example": "annually"
        }
      }
    },
    "administrative_details": {
      "type": "object",
      "properties": {}
    },
    "provisional_start_date": {
      "type": "string",
      "example": "2021-07-03"
    },
    "billing_address_details": {
      "type": "object",
      "properties": {}
    },
    "emergency_contact_details": {
      "type": "object",
      "properties": {}
    }
  },
  "x-validate": null,
  "description": "Description of the basic required and onboarding tasks params to create an employment.\nYou do not need to include all onboarding tasks when creating or updating an employment.\n"
}
string EmploymentLifecycleStage
{
  "enum": [
    "employment_creation",
    "employee_self_enrollment",
    "right_to_work_check",
    "contract_signing",
    "remote_enrollment",
    "onboarded",
    "offboarded"
  ],
  "type": "string",
  "title": "EmploymentLifecycleStage",
  "example": "employee_self_enrollment",
  "x-struct": null,
  "x-validate": null,
  "description": "The stage of employment lifecycle. When it's `onboarded` means the employee is ready to commence or has already commenced."
}
object EmploymentResponse
{
  "type": "object",
  "title": "EmploymentResponse",
  "example": {
    "data": {
      "employment": {
        "id": "20a72f86-employment-id-9e4942a902ff",
        "type": "employee",
        "files": [],
        "status": "created",
        "country": {
          "code": "AUT",
          "name": "Austria"
        },
        "full_name": "Jane Smith",
        "job_title": "Engineer",
        "company_id": "e31adae1-company-id-af5fba7dd803",
        "created_at": "2021-11-11T18:44:39",
        "updated_at": "2021-11-11T18:44:39",
        "work_email": "jane.smith@company.com",
        "user_status": "active",
        "personal_email": "jane@smith.com",
        "address_details": {},
        "contract_details": {},
        "onboarding_tasks": {
          "address_details": {
            "status": "completed",
            "description": "Primary residence."
          },
          "contract_details": {
            "status": "completed",
            "description": "Employee-specific details for their employment agreement."
          },
          "personal_details": {
            "status": "completed",
            "description": "Personal details, such as name and date of birth."
          },
          "bank_account_details": {
            "status": "completed",
            "description": "Bank account used for receiving salary payments."
          },
          "pricing_plan_details": {
            "status": "completed",
            "description": "How often Remote will bill employers for management fees."
          },
          "administrative_details": {
            "status": "completed",
            "description": "Information we need for tax purposes."
          },
          "billing_address_details": {
            "status": "completed",
            "description": "Address associated with the employee's bank account."
          },
          "emergency_contact_details": {
            "status": "completed",
            "description": "Who should be called in an emergency."
          },
          "employment_document_details": {
            "status": "pending",
            "description": "We need some additional documents."
          }
        },
        "personal_details": {},
        "basic_information": {},
        "bank_account_details": [],
        "pricing_plan_details": {
          "frequency": "annually"
        },
        "administrative_details": {},
        "provisional_start_date": "2021-07-03",
        "billing_address_details": {},
        "emergency_contact_details": {}
      }
    }
  },
  "required": [
    "data"
  ],
  "x-struct": null,
  "properties": {
    "data": {
      "x-struct": null,
      "properties": {
        "employment": {
          "$ref": "#/components/schemas/Employment"
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Complete information of an employment"
}
string EmploymentSeniorityDate
{
  "type": "string",
  "title": "EmploymentSeniorityDate",
  "format": "date-time",
  "example": "2022-03-21",
  "x-struct": null,
  "x-validate": null,
  "description": "The date the employee first started working for your company. If you don’t include a seniority date,\nthe employee’s start date with Remote will be deemed as the start of the employee’s seniority.\n\n**Example**: Your employee started working for your company on Feb 1, 2022.\nOn Aug 1, 2022, you transferred the employee to Remote and started managing them on the platform.\nFeb 1, 2022 would be their seniority date. Aug 1, 2022 would be their starting date.\n"
}
string EmploymentStatus
{
  "enum": [
    "active",
    "created",
    "created_awaiting_reserve",
    "created_reserve_paid",
    "initiated",
    "invited",
    "pending",
    "review",
    "archived",
    "deleted"
  ],
  "type": "string",
  "title": "EmploymentStatus",
  "example": "active",
  "x-struct": null,
  "x-validate": null,
  "description": "The status of employment"
}
string EmploymentTermType
{
  "enum": [
    "fixed",
    "indefinite"
  ],
  "type": "string",
  "title": "EmploymentTermType",
  "example": "fixed",
  "x-struct": null,
  "x-validate": null
}
object EmploymentUpdateParams
{
  "type": "object",
  "title": "EmploymentUpdateParams",
  "example": {
    "status": "active"
  },
  "x-struct": null,
  "properties": {
    "status": {
      "$ref": "#/components/schemas/EmploymentStatus"
    }
  },
  "x-validate": null,
  "description": "Required params to update an employment in the Sandbox environment.\n\nCurrently only supports setting the Employment Status to `active`.\n"
}
object Expense
{
  "type": "object",
  "title": "Expense",
  "example": {
    "title": "New desk",
    "amount": 1000,
    "currency": {
      "code": "CZK",
      "name": "Czech Koruna",
      "symbol": "Kč"
    },
    "receipts": [
      {
        "id": "9880b711-file-id-ecf8f551bd78X",
        "name": "id.pdf",
        "type": "id",
        "sub_type": "personal_id",
        "inserted_at": "2021-11-12T17:19:21"
      }
    ],
    "tax_amount": 500,
    "expense_date": "2021-09-03",
    "employment_id": "ba9ead59-e471-4043-a7ea-07dbb105e72c",
    "converted_amount": 1000,
    "converted_currency": {
      "code": "CZK",
      "name": "Czech Koruna",
      "symbol": "Kč"
    },
    "converted_tax_amount": 500
  },
  "required": [
    "id",
    "title",
    "employment_id",
    "amount",
    "converted_amount",
    "currency",
    "converted_currency",
    "expense_date",
    "tax_amount",
    "converted_tax_amount"
  ],
  "x-struct": null,
  "properties": {
    "id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "notes": {
      "type": "string",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    },
    "title": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "amount": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    },
    "reason": {
      "type": "string",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    },
    "status": {
      "enum": [
        "canceled",
        "pending",
        "declined",
        "approved",
        "processing",
        "reimbursed"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "Expense status"
    },
    "category": {
      "enum": [
        "education_training",
        "home_office",
        "meals",
        "other",
        "phone_utilities",
        "tech_equipment",
        "travel",
        "coworking"
      ],
      "type": "string",
      "nullable": false,
      "x-struct": null,
      "x-validate": null,
      "description": "Categories allowed for an expense"
    },
    "currency": {
      "$ref": "#/components/schemas/CurrencyDefinition"
    },
    "receipts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/File"
      },
      "maxItems": 5,
      "nullable": false,
      "x-struct": null,
      "x-validate": null
    },
    "reviewer": {
      "type": "object",
      "nullable": true,
      "x-struct": null,
      "properties": {
        "user_id": {
          "type": "string",
          "x-struct": null,
          "x-validate": null
        },
        "user_name": {
          "type": "string",
          "x-struct": null,
          "x-validate": null
        },
        "user_email": {
          "type": "string",
          "x-struct": null,
          "x-validate": null
        }
      },
      "x-validate": null
    },
    "tax_amount": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    },
    "reviewed_at": {
      "type": "string",
      "format": "date",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    },
    "expense_date": {
      "type": "string",
      "format": "date",
      "x-struct": null,
      "x-validate": null
    },
    "employment_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "invoice_period": {
      "type": "string",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    },
    "converted_amount": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    },
    "converted_currency": {
      "$ref": "#/components/schemas/CurrencyDefinition"
    },
    "converted_tax_amount": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Expense"
}
object ExpenseResponse
{
  "type": "object",
  "title": "ExpenseResponse",
  "example": {
    "data": {
      "expense": {
        "title": "New desk",
        "amount": 1000,
        "currency": {
          "code": "CZK",
          "name": "Czech Koruna",
          "symbol": "Kč"
        },
        "receipts": [
          {
            "id": "9880b711-file-id-ecf8f551bd78X",
            "name": "id.pdf",
            "type": "id",
            "sub_type": "personal_id",
            "inserted_at": "2021-11-12T17:19:21"
          }
        ],
        "tax_amount": 500,
        "expense_date": "2021-09-03",
        "employment_id": "ba9ead59-e471-4043-a7ea-07dbb105e72c",
        "converted_amount": 1000,
        "converted_currency": {
          "code": "CZK",
          "name": "Czech Koruna",
          "symbol": "Kč"
        },
        "converted_tax_amount": 500
      }
    }
  },
  "required": [
    "data"
  ],
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "expense"
      ],
      "x-struct": null,
      "properties": {
        "expense": {
          "$ref": "#/components/schemas/Expense"
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Expense response"
}
object File
{
  "type": "object",
  "title": "File",
  "example": {
    "id": "9880b711-file-id-ecf8f551bd78",
    "name": "id.pdf",
    "type": "id",
    "sub_type": "personal_id",
    "inserted_at": "2021-11-12T17:19:21"
  },
  "required": [
    "id",
    "inserted_at",
    "name",
    "type"
  ],
  "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
    },
    "sub_type": {
      "type": "string",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    },
    "inserted_at": {
      "type": "string",
      "format": "date-time",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "A supported file"
}
object FileParams
{
  "type": "object",
  "title": "FileParams",
  "required": [
    "file",
    "type",
    "employment_id"
  ],
  "x-struct": null,
  "properties": {
    "file": {
      "type": "string",
      "format": "binary",
      "x-struct": null,
      "x-validate": null
    },
    "type": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "employment_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Parameters to upload a file"
}
object FileResponse
{
  "type": "object",
  "title": "FileResponse",
  "example": {
    "data": {
      "file": {
        "id": "9880b711-file-id-ecf8f551bd78X",
        "name": "id.pdf",
        "type": "id",
        "sub_type": "personal_id",
        "inserted_at": "2021-11-12T17:19:21"
      }
    }
  },
  "x-struct": null,
  "properties": {
    "file": {
      "$ref": "#/components/schemas/File"
    }
  },
  "x-validate": null,
  "description": "A supported file"
}
object ForbiddenResponse
{
  "type": "object",
  "title": "ForbiddenResponse",
  "example": {
    "message": "Forbidden"
  },
  "required": [
    "message"
  ],
  "x-struct": null,
  "properties": {
    "message": {
      "type": "string",
      "pattern": "Forbidden",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object FullParams
{
  "type": "object",
  "title": "FullParams",
  "x-struct": null,
  "properties": {
    "country": {
      "$ref": "#/components/schemas/Country"
    },
    "full_name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "job_title": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "company_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "manager_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The user id of the manager, who should have an `admin`, `owner` or `people_manager` role.\nYou can find these users by querying the [Company Managers endpoint](https://gateway.remote.com/v1/docs/openapi.html).\n**Update of this field is only available for active employments.**\n"
    },
    "department_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The department of the employment. The department must belong to the same company as the employment.\n"
    },
    "address_details": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Home address information. As its properties may vary depending on the country,\n               you must query the [Show form schema](https://gateway.remote.com/v1/docs/openapi.html) endpoint\n            passing the country code and `address_details` as path parameters."
    },
    "contract_details": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Contract information. As its properties may vary depending on the country,\n               you must query the [Show form schema](https://gateway.remote.com/v1/docs/openapi.html) endpoint\n            passing the country code and `contract_details` as path parameters."
    },
    "personal_details": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Personal details information. As its properties may vary depending on the country,\n               you must query the [Show form schema](https://gateway.remote.com/v1/docs/openapi.html) endpoint\n            passing the country code and `personal_details` as path parameters."
    },
    "basic_information": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Employment basic information. As its properties may vary depending on the country,\n               you must query the [Show form schema](https://gateway.remote.com/v1/docs/openapi.html) endpoint\n            passing the country code and `employment_basic_information` as path parameters."
    },
    "bank_account_details": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Bank account information. As its properties may vary depending on the country,\n               you must query the [Show form schema](https://gateway.remote.com/v1/docs/openapi.html) endpoint\n            passing the country code and `bank_account_details` as path parameters."
    },
    "pricing_plan_details": {
      "$ref": "#/components/schemas/PricingPlanDetails"
    },
    "administrative_details": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Administrative information. As its properties may vary depending on the country,\n               you must query the [Show form schema](https://gateway.remote.com/v1/docs/openapi.html) endpoint\n            passing the country code and `administrative_details` as path parameters."
    },
    "billing_address_details": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Billing address information. As its properties may vary depending on the country,\n               you must query the [Show form schema](https://gateway.remote.com/v1/docs/openapi.html) endpoint\n            passing the country code and `billing_address_details` as path parameters."
    },
    "emergency_contact_details": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Emergency contact information. As its properties may vary depending on the country,\n               you must query the [Show form schema](https://gateway.remote.com/v1/docs/openapi.html) endpoint\n            passing the country code and `emergency_contact_details` as path parameters."
    }
  },
  "x-validate": null
}
object FullParams-Deprecated
{
  "type": "object",
  "title": "FullParams-Deprecated",
  "x-struct": null,
  "properties": {
    "country": {
      "$ref": "#/components/schemas/Country"
    },
    "full_name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "job_title": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "company_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "manager_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The user id of the manager, who should have an `admin`, `owner` or `people_manager` role.\nYou can find these users by querying the [Company Managers endpoint](https://gateway.remote.com/v1/docs/openapi.html).\n**Update of this field is only available for active employments.**\n"
    },
    "personal_email": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "seniority_date": {
      "$ref": "#/components/schemas/EmploymentSeniorityDate"
    },
    "address_details": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Home address information. As its properties may vary depending on the country,\n               you must query the [Show form schema](https://gateway.remote.com/v1/docs/openapi.html) endpoint\n            passing the country code and `address_details` as path parameters."
    },
    "contract_details": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Contract information. As its properties may vary depending on the country,\n               you must query the [Show form schema](https://gateway.remote.com/v1/docs/openapi.html) endpoint\n            passing the country code and `contract_details` as path parameters."
    },
    "personal_details": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Personal details information. As its properties may vary depending on the country,\n               you must query the [Show form schema](https://gateway.remote.com/v1/docs/openapi.html) endpoint\n            passing the country code and `personal_details` as path parameters."
    },
    "bank_account_details": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Bank account information. As its properties may vary depending on the country,\n               you must query the [Show form schema](https://gateway.remote.com/v1/docs/openapi.html) endpoint\n            passing the country code and `bank_account_details` as path parameters."
    },
    "pricing_plan_details": {
      "$ref": "#/components/schemas/PricingPlanDetails"
    },
    "administrative_details": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Administrative information. As its properties may vary depending on the country,\n               you must query the [Show form schema](https://gateway.remote.com/v1/docs/openapi.html) endpoint\n            passing the country code and `administrative_details` as path parameters."
    },
    "provisional_start_date": {
      "$ref": "#/components/schemas/ProvisionalStartDate"
    },
    "billing_address_details": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Billing address information. As its properties may vary depending on the country,\n               you must query the [Show form schema](https://gateway.remote.com/v1/docs/openapi.html) endpoint\n            passing the country code and `billing_address_details` as path parameters."
    },
    "emergency_contact_details": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Emergency contact information. As its properties may vary depending on the country,\n               you must query the [Show form schema](https://gateway.remote.com/v1/docs/openapi.html) endpoint\n            passing the country code and `emergency_contact_details` as path parameters."
    }
  },
  "x-validate": null,
  "description": "Providing the params in the root level of the request is now deprecated and will be removed in the future.\nPlease, use the \"FullParams\" instead.\n"
}
string GenericFile
{
  "type": "string",
  "title": "GenericFile",
  "format": "binary",
  "x-struct": null,
  "x-validate": null
}
object Holiday
{
  "type": "object",
  "title": "Holiday",
  "example": {
    "day": "2021-01-01",
    "name": "New Year's Day",
    "note": "The day after New Year's Eve",
    "observed_day": "2021-01-02"
  },
  "required": [
    "name",
    "day"
  ],
  "x-struct": null,
  "properties": {
    "day": {
      "type": "string",
      "format": "date",
      "x-struct": null,
      "x-validate": null,
      "description": "Date of the holiday"
    },
    "name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "Name of the holiday"
    },
    "note": {
      "type": "string",
      "nullable": true,
      "x-struct": null,
      "x-validate": null,
      "description": "Notes about the holiday"
    },
    "observed_day": {
      "type": "string",
      "format": "date",
      "nullable": true,
      "x-struct": null,
      "x-validate": null,
      "description": "Date when the holiday is observed"
    }
  },
  "x-validate": null
}
object HolidaysResponse
{
  "type": "object",
  "title": "HolidaysResponse",
  "example": {
    "data": [
      {
        "day": "2021-01-01",
        "name": "New Year's Day",
        "note": "The day after New Year's Eve",
        "observed_day": "2021-01-02"
      }
    ]
  },
  "x-struct": null,
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Holiday"
      },
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Holidays response"
}
object IdentityClientCredentialsResponse
{
  "type": "object",
  "title": "IdentityClientCredentialsResponse",
  "example": {
    "data": {
      "client_id": "1pws9iw986yq1ec57h159q29l",
      "integration": {
        "name": "integration_partner",
        "display_name": "Integration Display Name",
        "contact_email": "partner_admin@example.com"
      }
    }
  },
  "required": [
    "data"
  ],
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "client_id",
        "integration"
      ],
      "x-struct": null,
      "properties": {
        "client_id": {
          "type": "string",
          "x-struct": null,
          "x-validate": null
        },
        "integration": {
          "$ref": "#/components/schemas/IdentityIntegration"
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null
}
object IdentityCompany
{
  "type": "object",
  "title": "IdentityCompany",
  "example": {
    "id": "afe4dc8d-0c4a-41fe-9fbf-62b752524bdeX",
    "name": "Company"
  },
  "required": [
    "name",
    "id"
  ],
  "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
}
object IdentityCompanyAccessTokenResponse
{
  "type": "object",
  "title": "IdentityCompanyAccessTokenResponse",
  "example": {
    "data": {
      "user": {
        "id": "4117f18a-5ccf-473a-b970-608b75f5fafb",
        "name": "Jane Smith",
        "email": "email@example.com",
        "status": "created"
      },
      "company": {
        "id": "afe4dc8d-0c4a-41fe-9fbf-62b752524bde",
        "name": "Company"
      },
      "client_id": "1pws9iw986yq1ec57h159q29l",
      "integration": {
        "name": "integration_partner",
        "display_name": "Integration Display Name",
        "contact_email": "partner_admin@example.com"
      }
    }
  },
  "required": [
    "data"
  ],
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "client_id",
        "company",
        "integration",
        "user"
      ],
      "x-struct": null,
      "properties": {
        "user": {
          "$ref": "#/components/schemas/IdentityUser"
        },
        "company": {
          "$ref": "#/components/schemas/IdentityCompany"
        },
        "client_id": {
          "type": "string",
          "x-struct": null,
          "x-validate": null
        },
        "integration": {
          "$ref": "#/components/schemas/IdentityIntegration"
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null
}
object IdentityCurrentResponse
{
  "type": "object",
  "oneOf": [
    {
      "$ref": "#/components/schemas/IdentityClientCredentialsResponse"
    },
    {
      "$ref": "#/components/schemas/IdentityCompanyAccessTokenResponse"
    },
    {
      "$ref": "#/components/schemas/IdentityCustomerAccessTokenResponse"
    }
  ],
  "title": "IdentityCurrentResponse",
  "x-struct": null,
  "x-validate": null
}
object IdentityCustomerAccessTokenResponse
{
  "type": "object",
  "title": "IdentityCustomerAccessTokenResponse",
  "example": {
    "data": {
      "user": {
        "id": "4117f18a-5ccf-473a-b970-608b75f5fafbX",
        "name": "Jane Smith",
        "email": "email@example.com",
        "status": "created"
      },
      "company": {
        "id": "afe4dc8d-0c4a-41fe-9fbf-62b752524bdeX",
        "name": "Company"
      }
    }
  },
  "required": [
    "data"
  ],
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "company",
        "user"
      ],
      "x-struct": null,
      "properties": {
        "user": {
          "$ref": "#/components/schemas/IdentityUser"
        },
        "company": {
          "$ref": "#/components/schemas/IdentityCompany"
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null
}
object IdentityIntegration
{
  "type": "object",
  "title": "IdentityIntegration",
  "example": {
    "name": "integration_partner",
    "display_name": "Integration Display Name",
    "contact_email": "partner_admin@example.com"
  },
  "required": [
    "contact_email",
    "display_name",
    "name"
  ],
  "x-struct": null,
  "properties": {
    "name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "display_name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "contact_email": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object IdentityUser
{
  "type": "object",
  "title": "IdentityUser",
  "example": {
    "id": "4117f18a-5ccf-473a-b970-608b75f5fafbX",
    "name": "Jane Smith",
    "email": "email@example.com",
    "status": "created"
  },
  "required": [
    "email",
    "name",
    "id",
    "status"
  ],
  "x-struct": null,
  "properties": {
    "id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "email": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "status": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object IdentityVerificationResponse
{
  "type": "object",
  "title": "IdentityVerificationResponse",
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "x-struct": null,
      "properties": {},
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Identity Verification response"
}
object Incentive
{
  "type": "object",
  "title": "Incentive",
  "example": {
    "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1X",
    "note": "Signing bonus",
    "type": "signing_bonus",
    "amount": 50000,
    "status": "pending",
    "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
    "effective_date": "2021-12-20",
    "amount_tax_type": "net",
    "expected_payout_date": "2021-12-31",
    "recurring_incentive_id": "1c130827-f95c-4495-b7cb-5876dce686b8"
  },
  "required": [
    "id",
    "employment_id",
    "type",
    "status",
    "amount",
    "amount_tax_type",
    "effective_date"
  ],
  "x-struct": null,
  "properties": {
    "id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "note": {
      "type": "string",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    },
    "type": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "amount": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    },
    "status": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "employment_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "effective_date": {
      "type": "string",
      "format": "date",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    },
    "amount_tax_type": {
      "$ref": "#/components/schemas/AmountTaxType"
    },
    "expected_payout_date": {
      "type": "string",
      "format": "date",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    },
    "recurring_incentive_id": {
      "type": "string",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object IncentiveResponse
{
  "type": "object",
  "title": "IncentiveResponse",
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "incentive"
      ],
      "x-struct": null,
      "properties": {
        "incentive": {
          "$ref": "#/components/schemas/Incentive"
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Incentive response"
}
object InternalServerErrorResponse
{
  "type": "object",
  "anyOf": [
    {
      "$ref": "#/components/schemas/ValidationError"
    },
    {
      "$ref": "#/components/schemas/MessageResponse"
    }
  ],
  "title": "InternalServerErrorResponse",
  "x-struct": null,
  "x-validate": null
}
object JSONSchema
{
  "type": "object",
  "title": "JSONSchema",
  "example": {
    "schema": {
      "type": "object",
      "required": [
        "ssn"
      ],
      "properties": {
        "ssn": {
          "type": "string",
          "title": "Social security number",
          "pattern": "^[0-9]{3}-[0-9]{2}-(?!0{4})[0-9]{4}$",
          "x-jsf-presentation": {
            "mask": "999-99-9999",
            "inputType": "text",
            "maskSecret": 4,
            "maskPlaceholder": "AAA-GG-SSSS"
          }
        }
      },
      "x-jsf-order": [
        "ssn"
      ]
    },
    "version": 7
  },
  "x-struct": null,
  "properties": {
    "schema": {
      "type": "object",
      "required": [
        "properties"
      ],
      "x-struct": null,
      "properties": {
        "required": {
          "type": "array",
          "items": {
            "type": "string",
            "x-struct": null,
            "x-validate": null
          },
          "x-struct": null,
          "x-validate": null
        },
        "properties": {
          "type": "object",
          "x-struct": null,
          "x-validate": null,
          "additionalProperties": true
        },
        "x-jsf-order": {
          "type": "array",
          "items": {
            "type": "string",
            "x-struct": null,
            "x-validate": null
          },
          "x-struct": null,
          "x-validate": null
        }
      },
      "x-validate": null
    },
    "version": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "JSON Schema"
}
object JSONSchemaResponse
{
  "type": "object",
  "title": "JSONSchemaResponse",
  "example": {
    "data": {
      "schema": {
        "type": "object",
        "required": [
          "ssn"
        ],
        "properties": {
          "ssn": {
            "type": "string",
            "title": "Social security number",
            "pattern": "^[0-9]{3}-[0-9]{2}-(?!0{4})[0-9]{4}$",
            "x-jsf-presentation": {
              "mask": "999-99-9999",
              "inputType": "text",
              "maskSecret": 4,
              "maskPlaceholder": "AAA-GG-SSSS"
            }
          }
        },
        "x-jsf-order": [
          "ssn"
        ]
      },
      "version": 7
    }
  },
  "x-struct": null,
  "properties": {
    "data": {
      "$ref": "#/components/schemas/JSONSchema"
    }
  },
  "x-validate": null,
  "description": "JSON Schema Response"
}
object ListCompanyDepartmentsPaginatedResponse
{
  "type": "object",
  "title": "ListCompanyDepartmentsPaginatedResponse",
  "example": {
    "data": {
      "company_departments": [
        {
          "id": "89c4fbb2-cd1f-4334-8e4b-280f8795bbd8",
          "name": "Marketing",
          "company_id": "669f9e18-889f-4c2c-95b8-67795a3113cc"
        }
      ]
    },
    "total_count": 1,
    "total_pages": 1,
    "current_page": 1
  },
  "required": [
    "data",
    "current_page",
    "total_pages",
    "total_count"
  ],
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "company_departments"
      ],
      "x-struct": null,
      "properties": {
        "company_departments": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CompanyDepartment"
          },
          "x-struct": null,
          "x-validate": null
        }
      },
      "x-validate": null
    },
    "total_count": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    },
    "total_pages": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    },
    "current_page": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object ListContractAmendmentResponse
{
  "type": "object",
  "title": "ListContractAmendmentResponse",
  "example": {
    "total_count": 1,
    "total_pages": 1,
    "current_page": 1,
    "contract_amendments": [
      {
        "id": "ba310525-9282-40c9-8977-14d844bf891aX",
        "status": "submitted",
        "job_title": "Engineer",
        "requested_by": "5a31f3c1-d7a7-4311-89cb-928959d3d540",
        "submitted_at": "2023-04-13T13:35:06Z",
        "employment_id": "1e74fdc2-7420-4eef-ab0a-b794cbbef4e1",
        "reason_for_change": "annual_pay_adjustment",
        "requested_effective_date": "2023-04-13T13:35:06Z"
      }
    ]
  },
  "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"
        },
        "contract_amendments": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/MinimalContractAmendment"
          },
          "x-struct": null,
          "x-validate": null
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Response schema listing many contract_amendments"
}
object ListEmploymentContractResponse
{
  "type": "object",
  "title": "ListEmploymentContractResponse",
  "example": {
    "data": {
      "employment_contracts": [
        {
          "status": "active",
          "country": {
            "code": "CAN",
            "name": "Canada"
          },
          "job_title": "Engineer",
          "contract_id": "20a72f86-contract-id-9e4942a902ff",
          "activated_at": "2021-07-15T18:18:17Z",
          "compensation": {
            "amount": 33000,
            "currency_code": "CAD"
          },
          "effective_at": "2021-07-15T18:18:17Z",
          "contract_details": {},
          "amendment_contract_id": "e31adae1-contract-id-af5fba7dd803"
        }
      ]
    }
  },
  "required": [
    "data"
  ],
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "employment_contracts"
      ],
      "x-struct": null,
      "properties": {
        "employment_contracts": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/EmploymentContract"
          },
          "x-struct": null,
          "x-validate": null
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null
}
object ListEmploymentCustomFieldsResponse
{
  "type": "object",
  "title": "ListEmploymentCustomFieldsResponse",
  "example": {
    "total_count": 1,
    "total_pages": 1,
    "current_page": 1,
    "custom_fields": [
      {
        "id": "01c0e4d2-f41b-11ed-9d3f-cb3ecccebb58",
        "name": "Internal ID",
        "type": "string"
      }
    ]
  },
  "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"
        },
        "custom_fields": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/EmploymentCustomField"
          },
          "x-struct": null,
          "x-validate": null
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Response schema listing many custom_fields"
}
object ListEmploymentsResponse
{
  "type": "object",
  "title": "ListEmploymentsResponse",
  "example": {
    "employments": [
      {
        "id": "add736b8-employment-id-a76ccae2abe8",
        "type": "employee",
        "status": "created",
        "country": {
          "code": "AUS",
          "name": "Australia"
        },
        "full_name": "Jane Smith",
        "job_title": "Engineer",
        "department": null,
        "department_id": null,
        "personal_email": "janesmith@company.com"
      }
    ],
    "total_count": 1,
    "total_pages": 1,
    "current_page": 1
  },
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "x-struct": null,
      "properties": {
        "employments": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/MinimalEmployment"
          },
          "x-struct": null,
          "x-validate": null
        },
        "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"
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Response schema listing many employments"
}
object ListExpenseResponse
{
  "type": "object",
  "title": "ListExpenseResponse",
  "example": {
    "expenses": [
      {
        "title": "New desk",
        "amount": 1000,
        "currency": {
          "code": "CZK",
          "name": "Czech Koruna",
          "symbol": "Kč"
        },
        "receipts": [
          {
            "id": "9880b711-file-id-ecf8f551bd78X",
            "name": "id.pdf",
            "type": "id",
            "sub_type": "personal_id",
            "inserted_at": "2021-11-12T17:19:21"
          }
        ],
        "tax_amount": 500,
        "expense_date": "2021-09-03",
        "employment_id": "ba9ead59-e471-4043-a7ea-07dbb105e72c",
        "converted_amount": 1000,
        "converted_currency": {
          "code": "CZK",
          "name": "Czech Koruna",
          "symbol": "Kč"
        },
        "converted_tax_amount": 500
      }
    ],
    "total_count": 1,
    "total_pages": 1,
    "current_page": 1
  },
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "x-struct": null,
      "properties": {
        "expenses": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Expense"
          },
          "x-struct": null,
          "x-validate": null
        },
        "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"
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Response schema listing many expenses"
}
object ListIncentivesResponse
{
  "type": "object",
  "title": "ListIncentivesResponse",
  "example": {
    "incentives": [
      {
        "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1X",
        "note": "Signing bonus",
        "type": "signing_bonus",
        "amount": 50000,
        "status": "pending",
        "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
        "effective_date": "2021-12-20",
        "amount_tax_type": "net",
        "expected_payout_date": "2021-12-31",
        "recurring_incentive_id": "1c130827-f95c-4495-b7cb-5876dce686b8"
      }
    ],
    "total_count": 1,
    "total_pages": 1,
    "current_page": 1
  },
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "x-struct": null,
      "properties": {
        "incentives": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Incentive"
          },
          "x-struct": null,
          "x-validate": null
        },
        "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"
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Response schema listing many incentives"
}
object ListOffboardingResponse
{
  "type": "object",
  "title": "ListOffboardingResponse",
  "example": {
    "total_count": 1,
    "total_pages": 1,
    "current_page": 1,
    "offboardings": [
      {
        "id": "ba310525-9282-40c9-8977-14d844bf891aX",
        "type": "termination",
        "status": "submitted",
        "confidential": false,
        "requested_by": "5a31f3c1-d7a7-4311-89cb-928959d3d540",
        "submitted_at": "2023-04-13T13:35:06Z",
        "employment_id": "1e74fdc2-7420-4eef-ab0a-b794cbbef4e1",
        "termination_date": "2023-12-20",
        "employee_awareness": {
          "date": "2023-12-12",
          "note": "optional text to add details"
        },
        "termination_reason": "workforce_reduction",
        "additional_comments": "",
        "agrees_to_pto_amount": "true",
        "risk_assessment_reasons": [
          "pregnant_or_breastfeeding",
          "family_leave"
        ],
        "proposed_termination_date": "2023-12-20",
        "will_challenge_termination": true,
        "will_challenge_termination_description": "additional details for the offboarding risk assessment"
      }
    ]
  },
  "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"
        },
        "offboardings": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Offboarding"
          },
          "x-struct": null,
          "x-validate": null
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Response schema listing many offboardings"
}
object ListPayslipsResponse
{
  "type": "object",
  "title": "ListPayslipsResponse",
  "example": {
    "payslips": [
      {
        "id": "93t3j-employment-id-9suej43X",
        "issued_at": "2021-07-01",
        "employment_id": "98d3f-employment-id-1oi45n",
        "expected_payout_date": "2021-07-01",
        "net_pay_source_amount": 1000000,
        "net_pay_converted_amount": 1500000
      }
    ],
    "total_count": 1,
    "total_pages": 1,
    "current_page": 1
  },
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "x-struct": null,
      "properties": {
        "payslips": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Payslip"
          },
          "x-struct": null,
          "x-validate": null
        },
        "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"
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Response schema listing many payslips"
}
object ListRecurringIncentivesResponse
{
  "type": "object",
  "title": "ListRecurringIncentivesResponse",
  "example": {
    "total_count": 1,
    "total_pages": 1,
    "current_page": 1,
    "recurring_incentives": [
      {
        "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1X",
        "note": "Monthly stipend to buy food",
        "type": "meal_allowance",
        "amount": 50000,
        "status": "active",
        "end_date": "2022-12-20",
        "start_date": "2021-12-20",
        "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
        "amount_tax_type": "net"
      }
    ]
  },
  "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"
        },
        "recurring_incentives": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/RecurringIncentive"
          },
          "x-struct": null,
          "x-validate": null
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Response schema listing many recurring_incentives"
}
object ListTimeoffResponse
{
  "type": "object",
  "title": "ListTimeoffResponse",
  "example": {
    "timeoffs": [
      {
        "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1X",
        "notes": "Some notes",
        "status": "approved",
        "document": {
          "id": "9880b711-file-id-ecf8f551bd78X",
          "name": "id.pdf",
          "type": "id",
          "sub_type": "personal_id",
          "inserted_at": "2021-11-12T17:19:21"
        },
        "end_date": "2021-12-21",
        "timezone": "Asia/Kolkata",
        "start_date": "2021-12-20",
        "timeoff_days": [
          {
            "day": "2021-12-20",
            "hours": 8
          },
          {
            "day": "2021-12-21",
            "hours": 8
          }
        ],
        "timeoff_type": "paid_time_off",
        "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d"
      }
    ],
    "total_count": 1,
    "total_pages": 1,
    "current_page": 1
  },
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "x-struct": null,
      "properties": {
        "timeoffs": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Timeoff"
          },
          "x-struct": null,
          "x-validate": null
        },
        "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"
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Response schema listing many timeoffs"
}
object ListTimeoffTypesResponse
{
  "type": "object",
  "title": "ListTimeoffTypesResponse",
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "x-struct": null,
      "properties": {
        "name": {
          "$ref": "#/components/schemas/TimeoffType"
        },
        "description": {
          "type": "string",
          "nullable": true,
          "x-struct": null,
          "x-validate": null
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Time off types response"
}
object MaybeBenefitTier
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/BenefitTier"
    }
  ],
  "title": "MaybeBenefitTier",
  "example": {
    "id": "66297cfd-cf60-4cf4-a70f-ac2561d92b04",
    "name": "Premium 2023 (Medical, Dental and Vision)",
    "providers": [
      {
        "id": "88297cfd-cf60-4cf4-a70f-ac2861d92b87",
        "name": "Health Provider"
      }
    ]
  },
  "nullable": true,
  "x-struct": null,
  "x-validate": null
}
object MessageResponse
{
  "type": "object",
  "title": "MessageResponse",
  "required": [
    "message"
  ],
  "x-struct": null,
  "properties": {
    "message": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object MinimalContractAmendment
{
  "type": "object",
  "title": "MinimalContractAmendment",
  "example": {
    "id": "ba310525-9282-40c9-8977-14d844bf891aX",
    "status": "submitted",
    "job_title": "Engineer",
    "requested_by": "5a31f3c1-d7a7-4311-89cb-928959d3d540",
    "submitted_at": "2023-04-13T13:35:06Z",
    "employment_id": "1e74fdc2-7420-4eef-ab0a-b794cbbef4e1",
    "reason_for_change": "annual_pay_adjustment",
    "requested_effective_date": "2023-04-13T13:35:06Z"
  },
  "required": [
    "id",
    "employment_id",
    "status",
    "requested_by",
    "submitted_at",
    "requested_effective_date",
    "reason_for_change"
  ],
  "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
    },
    "job_title": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "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
    },
    "reason_for_change": {
      "enum": [
        "annual_pay_adjustment",
        "country_rule_change",
        "error_correction",
        "job_change_reevaluation",
        "promotion",
        "other"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "requested_effective_date": {
      "type": "string",
      "format": "datetime",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Minimal Contract Amendment"
}
object MinimalCountry
{
  "type": "object",
  "title": "MinimalCountry",
  "example": {
    "code": "PRT",
    "name": "Portugal",
    "slug": "portugal-ab18d96a-a9fd-42c0-9688-24f963d8bdc1",
    "alpha_2_code": "PT"
  },
  "required": [
    "alpha_2_code",
    "code",
    "name",
    "slug"
  ],
  "x-struct": null,
  "properties": {
    "code": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "slug": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "features": {
      "type": "array",
      "items": {
        "type": "string",
        "x-struct": null,
        "x-validate": null
      },
      "x-struct": null,
      "x-validate": null
    },
    "alpha_2_code": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object MinimalEmployment
{
  "type": "object",
  "title": "MinimalEmployment",
  "example": {
    "id": "add736b8-employment-id-a76ccae2abe8X",
    "type": "employee",
    "status": "created",
    "country": {
      "code": "AUS",
      "name": "Australia"
    },
    "full_name": "Jane Smith",
    "job_title": "Engineer",
    "department": null,
    "department_id": null,
    "personal_email": "janesmith@company.com"
  },
  "required": [
    "country",
    "full_name",
    "id",
    "job_title",
    "personal_email",
    "status",
    "type"
  ],
  "x-struct": null,
  "properties": {
    "id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "type": {
      "enum": [
        "employee",
        "contractor",
        "direct_employee",
        "global_payroll_employee"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "status": {
      "$ref": "#/components/schemas/EmploymentStatus"
    },
    "country": {
      "$ref": "#/components/schemas/Country"
    },
    "full_name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "job_title": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "department": {
      "type": "string",
      "nullable": true,
      "x-struct": null,
      "x-validate": null,
      "description": "Name of related department, if any. Otherwise, null."
    },
    "department_id": {
      "type": "string",
      "title": "Slug",
      "example": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
      "nullable": true,
      "x-struct": null,
      "x-validate": null,
      "description": "Unique ID of related department, if any. Otherwise, null."
    },
    "personal_email": {
      "type": "string",
      "format": "email",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Minimal information of an employment."
}
object MinimalRegion
{
  "type": "object",
  "title": "MinimalRegion",
  "example": {
    "code": "USA",
    "name": "United States",
    "slug": "663e0b79-c893-45ff-a1b2-f6dcabc098b5"
  },
  "required": [
    "name",
    "slug"
  ],
  "x-struct": null,
  "properties": {
    "code": {
      "type": "string",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    },
    "name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "slug": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "status": {
      "$ref": "#/components/schemas/RegionStatus"
    },
    "child_regions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/MinimalRegion"
      },
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object NotFoundResponse
{
  "type": "object",
  "title": "NotFoundResponse",
  "example": {
    "message": "{resource} not found"
  },
  "x-struct": null,
  "properties": {
    "message": {
      "type": "string",
      "pattern": "Not Found",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
string NullableApproverId
{
  "type": "string",
  "title": "NullableApproverId",
  "example": "51546f60-dd71-4223-9312-4efede68a497",
  "nullable": true,
  "x-struct": null,
  "x-validate": null,
  "description": "The field matches the `id` of a user in the\nRemote Platform that has permission to approve time off\nrequests. [Available users][] can be found fetching\nthe [List Company Manager][] endpoint.\n\n[Available users]: https://support.remote.com/hc/en-us/articles/360054668651-Approving-Declining-time-off-requests#h_01G0014GZKZ3EMN6P7C99HAK55\n[List Company Manager]: https://gateway.remote.com/v1/docs/openapi.html#tag/Company-Managers\n"
}
string NullableDateTime
{
  "type": "string",
  "title": "NullableDateTime",
  "format": "datetime",
  "example": "2021-07-15T18:18:17",
  "nullable": true,
  "x-struct": null,
  "x-validate": null,
  "description": "Optional UTC date time in YYYY-MM-DDTHH:mm:ss format"
}
object OAuth2TokenParams
{
  "type": "object",
  "oneOf": [
    {
      "$ref": "#/components/schemas/AuthorizationCodeParams"
    },
    {
      "$ref": "#/components/schemas/ClientCredentialsParams"
    },
    {
      "$ref": "#/components/schemas/RefreshTokenParams"
    }
  ],
  "title": "OAuth2TokenParams",
  "example": {
    "code": "eyJhbG...xb6H0",
    "grant_type": "authorization_code"
  },
  "x-struct": null,
  "properties": {
    "code": {
      "type": "string",
      "example": "eyJhbG...xb6H0"
    },
    "grant_type": {
      "type": "string",
      "example": "authorization_code"
    }
  },
  "x-validate": null
}
object OAuth2Tokens
{
  "type": "object",
  "oneOf": [
    {
      "$ref": "#/components/schemas/AuthorizationCodeResponse"
    },
    {
      "$ref": "#/components/schemas/BaseTokenResponse"
    },
    {
      "$ref": "#/components/schemas/RefreshTokenResponse"
    }
  ],
  "title": "OAuth2Tokens",
  "x-struct": null,
  "x-validate": null
}
object Offboarding
{
  "type": "object",
  "title": "Offboarding",
  "example": {
    "id": "ba310525-9282-40c9-8977-14d844bf891aX",
    "type": "termination",
    "status": "submitted",
    "confidential": false,
    "requested_by": "5a31f3c1-d7a7-4311-89cb-928959d3d540",
    "submitted_at": "2023-04-13T13:35:06Z",
    "employment_id": "1e74fdc2-7420-4eef-ab0a-b794cbbef4e1",
    "termination_date": "2023-12-20",
    "employee_awareness": {
      "date": "2023-12-12",
      "note": "optional text to add details"
    },
    "termination_reason": "workforce_reduction",
    "additional_comments": "",
    "agrees_to_pto_amount": "true",
    "risk_assessment_reasons": [
      "pregnant_or_breastfeeding",
      "family_leave"
    ],
    "proposed_termination_date": "2023-12-20",
    "will_challenge_termination": true,
    "will_challenge_termination_description": "additional details for the offboarding risk assessment"
  },
  "x-struct": null,
  "properties": {
    "offboarding": {
      "type": "object",
      "oneOf": [
        {
          "$ref": "#/components/schemas/ResignationOffboarding"
        },
        {
          "$ref": "#/components/schemas/TerminationOffboarding"
        }
      ],
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Offboarding"
}
object OffboardingFile
{
  "type": "object",
  "title": "OffboardingFile",
  "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
}
object OffboardingResponse
{
  "type": "object",
  "title": "OffboardingResponse",
  "example": {
    "data": {
      "offboarding": {
        "id": "ba310525-9282-40c9-8977-14d844bf891aX",
        "type": "termination",
        "status": "submitted",
        "confidential": false,
        "requested_by": "5a31f3c1-d7a7-4311-89cb-928959d3d540",
        "submitted_at": "2023-04-13T13:35:06Z",
        "employment_id": "1e74fdc2-7420-4eef-ab0a-b794cbbef4e1",
        "termination_date": "2023-12-20",
        "employee_awareness": {
          "date": "2023-12-12",
          "note": "optional text to add details"
        },
        "termination_reason": "workforce_reduction",
        "additional_comments": "",
        "agrees_to_pto_amount": "true",
        "risk_assessment_reasons": [
          "pregnant_or_breastfeeding",
          "family_leave"
        ],
        "proposed_termination_date": "2023-12-20",
        "will_challenge_termination": true,
        "will_challenge_termination_description": "additional details for the offboarding risk assessment"
      }
    }
  },
  "x-struct": null,
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Offboarding"
    }
  },
  "x-validate": null,
  "description": "Offboarding response"
}
object OfferedBenefitGroup
{
  "type": "object",
  "title": "OfferedBenefitGroup",
  "example": {
    "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_offered": 12,
      "number_of_employees_enrolled": 10
    },
    "offered_benefit_tiers": [
      {
        "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"
            }
          ]
        },
        "employee_stats": {
          "number_of_employees_offered": 12,
          "number_of_employees_enrolled": 10
        }
      }
    ]
  },
  "required": [
    "benefit_group",
    "employee_stats",
    "offered_benefit_tiers"
  ],
  "x-struct": null,
  "properties": {
    "benefit_group": {
      "$ref": "#/components/schemas/BenefitGroup"
    },
    "employee_stats": {
      "$ref": "#/components/schemas/EmployeeStats"
    },
    "offered_benefit_tiers": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/OfferedBenefitTier"
      },
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object OfferedBenefitTier
{
  "type": "object",
  "title": "OfferedBenefitTier",
  "example": {
    "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"
        }
      ]
    },
    "employee_stats": {
      "number_of_employees_offered": 12,
      "number_of_employees_enrolled": 10
    }
  },
  "required": [
    "benefit_tier",
    "employee_stats"
  ],
  "x-struct": null,
  "properties": {
    "benefit_tier": {
      "$ref": "#/components/schemas/BenefitTier"
    },
    "employee_stats": {
      "$ref": "#/components/schemas/EmployeeStats"
    }
  },
  "x-validate": null
}
object ParameterError
{
  "type": "object",
  "title": "ParameterError",
  "required": [
    "code",
    "message",
    "param"
  ],
  "x-struct": null,
  "properties": {
    "code": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "An error code that describes the nature of the error."
    },
    "param": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The parameter 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
}
array ParameterErrors
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/ParameterError"
  },
  "title": "ParameterErrors",
  "x-struct": null,
  "x-validate": null
}
object ParamsToCreateExpense
{
  "type": "object",
  "title": "ParamsToCreateExpense",
  "example": {
    "title": "new keyboard",
    "amount": 8000,
    "receipt": {
      "name": "receipt.pdf",
      "content": "UGVyaW9kIEVuZCBEYXRlLFBheSBEYXRlLEVtcG...5jZSBPZiBSZXNpZGVuYdXJyZW50LEFsbG93"
    },
    "category": "home_office",
    "currency": "EUR",
    "timezone": "Etc/UTC",
    "tax_amount": 0,
    "reviewed_at": "2023-01-11T11:12:13Z",
    "reviewer_id": "14c14128-f5f4-475a-8ec0-6329b4832a61",
    "expense_date": "2020-12-11",
    "employment_id": "d4ebc714-4950-47a9-a464-28e1f1ab2a90"
  },
  "required": [
    "expense_date",
    "title",
    "amount",
    "currency",
    "employment_id"
  ],
  "x-struct": null,
  "properties": {
    "title": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "amount": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    },
    "receipt": {
      "$ref": "#/components/schemas/Base64File"
    },
    "category": {
      "enum": [
        "education_training",
        "home_office",
        "meals",
        "other",
        "phone_utilities",
        "tech_equipment",
        "travel",
        "coworking"
      ],
      "type": "string",
      "nullable": false,
      "x-struct": null,
      "x-validate": null,
      "description": "Categories allowed for an expense"
    },
    "currency": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "  The three-letter code for the expense currency.<br/>\n  Examples: `\"USD\"`, `\"EUR\"`, `\"CAD\"`\n"
    },
    "receipts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Base64File"
      },
      "maxItems": 5,
      "x-struct": null,
      "x-validate": null
    },
    "timezone": {
      "$ref": "#/components/schemas/Timezone"
    },
    "tax_amount": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    },
    "reviewed_at": {
      "type": "string",
      "format": "date",
      "x-struct": null,
      "x-validate": null,
      "description": "The date and time that the expense was reviewed in ISO8601 format. If not provided, it defaults to the current datetime."
    },
    "reviewer_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "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."
    },
    "expense_date": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "Date of the purchase, which must be in the past"
    },
    "employment_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The ID for the employment to which this expense relates."
    }
  },
  "x-validate": null,
  "description": "  All the params needed to create an expense.\n\n  An expense can be created using the `receipt` or `receipts` fields; however, these fields are not allowed together within the same object.\"\n"
}
object Payslip
{
  "type": "object",
  "title": "Payslip",
  "example": {
    "id": "93t3j-employment-id-9suej43X",
    "issued_at": "2021-07-01",
    "employment_id": "98d3f-employment-id-1oi45n",
    "expected_payout_date": "2021-07-01",
    "net_pay_source_amount": 1000000,
    "net_pay_converted_amount": 1500000
  },
  "required": [
    "id",
    "issued_at",
    "employment_id"
  ],
  "x-struct": null,
  "properties": {
    "id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "issued_at": {
      "type": "string",
      "format": "date",
      "x-struct": null,
      "x-validate": null
    },
    "employment_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "expected_payout_date": {
      "$ref": "#/components/schemas/Date"
    },
    "net_pay_source_amount": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null,
      "description": "This field is only shown if available"
    },
    "net_pay_converted_amount": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null,
      "description": "This field is only shown if available"
    }
  },
  "x-validate": null
}
string PayslipDownloadResponse
{
  "type": "string",
  "title": "PayslipDownloadResponse",
  "format": "binary",
  "x-struct": null,
  "x-validate": null,
  "description": "The binary content of the payslip file."
}
object PayslipResponse
{
  "type": "object",
  "title": "PayslipResponse",
  "example": {
    "data": {
      "payslips": {
        "id": "93t3j-employment-id-9suej43",
        "issued_at": "2021-07-01",
        "employment_id": "98d3f-employment-id-1oi45n",
        "expected_payout_date": "2021-07-01",
        "net_pay_source_amount": 1000000,
        "net_pay_converted_amount": 1500000
      }
    }
  },
  "required": [
    "data"
  ],
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "payslip"
      ],
      "x-struct": null,
      "properties": {
        "payslip": {
          "$ref": "#/components/schemas/Payslip"
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "A single payslip."
}
object PricingPlanDetails
{
  "type": "object",
  "title": "PricingPlanDetails",
  "example": {
    "frequency": "annually"
  },
  "required": [
    "frequency"
  ],
  "x-struct": null,
  "properties": {
    "frequency": {
      "enum": [
        "annually",
        "monthly"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Selected type of payment."
}
string ProvisionalStartDate
{
  "type": "string",
  "title": "ProvisionalStartDate",
  "format": "date",
  "x-struct": null,
  "x-validate": null,
  "description": "Indicates the expected start date of the employee or contractor.\n\nRequired for employees, but optional for contractors. Date format is in ISO8601 without the time component.\n\nSee the **Date and Time Format** documentation for more details on how the Remote API works with dates.\n"
}
object RecurringIncentive
{
  "type": "object",
  "title": "RecurringIncentive",
  "example": {
    "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1X",
    "note": "Monthly stipend to buy food",
    "type": "meal_allowance",
    "amount": 50000,
    "status": "active",
    "end_date": "2022-12-20",
    "start_date": "2021-12-20",
    "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
    "amount_tax_type": "net"
  },
  "required": [
    "id",
    "employment_id",
    "type",
    "status",
    "amount",
    "amount_tax_type",
    "start_date"
  ],
  "x-struct": null,
  "properties": {
    "id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "note": {
      "type": "string",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    },
    "type": {
      "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"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "amount": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    },
    "status": {
      "enum": [
        "active",
        "inactive"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "end_date": {
      "type": "string",
      "format": "date",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    },
    "start_date": {
      "type": "string",
      "format": "date",
      "x-struct": null,
      "x-validate": null
    },
    "employment_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "amount_tax_type": {
      "$ref": "#/components/schemas/AmountTaxType"
    }
  },
  "x-validate": null
}
object RecurringIncentiveResponse
{
  "type": "object",
  "title": "RecurringIncentiveResponse",
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "recurring_incentive"
      ],
      "x-struct": null,
      "properties": {
        "recurring_incentive": {
          "$ref": "#/components/schemas/RecurringIncentive"
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Recurring Incentive response"
}
object RefreshTokenParams
{
  "type": "object",
  "title": "RefreshTokenParams",
  "example": {
    "grant_type": "refresh_token",
    "refresh_token": "b480036a-d229-49ef-a606-7e8fba58a5eb"
  },
  "required": [
    "grant_type",
    "refresh_token"
  ],
  "x-struct": null,
  "properties": {
    "grant_type": {
      "enum": [
        "refresh_token"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The Authorization flow"
    },
    "refresh_token": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The refresh token generated in the Authorization Code flow"
    }
  },
  "x-validate": null
}
object RefreshTokenResponse
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseTokenResponse"
    },
    {
      "type": "object",
      "example": {
        "expires_in": 7200,
        "token_type": "Bearer",
        "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.cThIIoDvwdueQB468K5xDc5633seEFoqwxjF_xSJyQQ",
        "refresh_token": "b480036a-d229-49ef-a606-7e8fba58a5eb"
      },
      "x-struct": null,
      "properties": {
        "refresh_token": {
          "type": "string",
          "x-struct": null,
          "x-validate": null,
          "description": "The refresh token"
        }
      },
      "x-validate": null
    }
  ],
  "title": "RefreshTokenResponse",
  "x-struct": null,
  "x-validate": null
}
string RegionStatus
{
  "enum": [
    "active",
    "inactive"
  ],
  "type": "string",
  "title": "RegionStatus",
  "example": "active",
  "nullable": true,
  "x-struct": null,
  "x-validate": null
}
object RequestDetails
{
  "type": "object",
  "title": "RequestDetails",
  "x-struct": null,
  "properties": {
    "effective_date": {
      "type": "string",
      "format": "date",
      "x-struct": null,
      "x-validate": null
    },
    "reason_for_change": {
      "enum": [
        "annual_pay_adjustment",
        "country_rule_change",
        "error_correction",
        "job_change_reevaluation",
        "promotion",
        "other"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "additional_comments": {
      "type": "string",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    },
    "salary_decrease_details": {
      "$ref": "#/components/schemas/SalaryDecreaseDetails"
    },
    "reason_for_change_description": {
      "type": "string",
      "nullable": true,
      "x-struct": null,
      "x-validate": null,
      "description": "This is filled when the reason_for_change is 'other'."
    }
  },
  "x-validate": null,
  "description": "The details of the requested changes for the contract amendment."
}
object RequestError
{
  "type": "object",
  "title": "RequestError",
  "example": {
    "errors": {
      "code": "request_internal_server_error",
      "message": "There was an error while uploading a termination reason file"
    }
  },
  "required": [
    "errors"
  ],
  "x-struct": null,
  "properties": {
    "errors": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "x-struct": null,
      "properties": {
        "code": {
          "type": "string",
          "x-struct": null,
          "x-validate": null,
          "description": "An error code that describes the nature of the error."
        },
        "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
    }
  },
  "x-validate": null
}
object ResignationAfterStartDateRequestParams
{
  "type": "object",
  "title": "ResignationAfterStartDateRequestParams",
  "example": {
    "proposed_last_date": {
      "date": "2042-04-15",
      "notes": "This date is better."
    },
    "will_take_more_pto": true,
    "agrees_to_pto_amount": false,
    "has_more_salary_info": true,
    "accepts_proposed_notice": false,
    "will_take_more_pto_notes": "3 more days.",
    "agrees_to_pto_amount_notes": "I don't agree.",
    "has_additional_information": true,
    "has_more_salary_info_notes": "Some info about the salary.",
    "agrees_to_resignation_reason": false,
    "owed_outstanding_reimbursements": {
      "notes": "Compensation.",
      "amount": 1500
    },
    "has_additional_information_notes": "Some extra info.",
    "agrees_to_resignation_reason_notes": "I don't agree.",
    "is_owed_outstanding_reimbursements": true
  },
  "required": [
    "accepts_proposed_notice",
    "agrees_to_pto_amount",
    "agrees_to_resignation_reason",
    "has_additional_information",
    "has_more_salary_info",
    "is_owed_outstanding_reimbursements",
    "will_take_more_pto"
  ],
  "x-struct": null,
  "properties": {
    "timesheet_file": {
      "$ref": "#/components/schemas/ResignationFile"
    },
    "proposed_last_date": {
      "type": "object",
      "x-struct": null,
      "properties": {
        "date": {
          "type": "string",
          "format": "date",
          "x-struct": null,
          "x-validate": null
        },
        "notes": {
          "type": "string",
          "x-struct": null,
          "x-validate": null
        }
      },
      "x-validate": null,
      "description": "Required if `accepts_proposed_notice` is set to false."
    },
    "will_take_more_pto": {
      "type": "boolean",
      "x-struct": null,
      "x-validate": null
    },
    "agrees_to_pto_amount": {
      "type": "boolean",
      "x-struct": null,
      "x-validate": null
    },
    "has_more_salary_info": {
      "type": "boolean",
      "x-struct": null,
      "x-validate": null
    },
    "accepts_proposed_notice": {
      "type": "boolean",
      "x-struct": null,
      "x-validate": null
    },
    "will_take_more_pto_notes": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "required if `will_take_more_pto` is set to true."
    },
    "agrees_to_pto_amount_notes": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "Required if `agrees_to_pto_amount` is set to false."
    },
    "has_additional_information": {
      "type": "boolean",
      "x-struct": null,
      "x-validate": null
    },
    "has_more_salary_info_notes": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "required if `has_more_salary_info` is set to true."
    },
    "agrees_to_resignation_reason": {
      "type": "boolean",
      "x-struct": null,
      "x-validate": null
    },
    "owed_outstanding_reimbursements": {
      "type": "object",
      "x-struct": null,
      "properties": {
        "notes": {
          "type": "string",
          "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 amount you're offering is EUR 500.25, you would specify `50025` as\nthe amount for this field.\n"
        }
      },
      "x-validate": null,
      "description": "required if `is_owed_outstanding_reimbursements` is set to true."
    },
    "has_additional_information_notes": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "required if `has_additional_information` is set to true."
    },
    "agrees_to_resignation_reason_notes": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "required if `agrees_to_resignation_reason` is set to false."
    },
    "is_owed_outstanding_reimbursements": {
      "type": "boolean",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "x-konfig-properties": {
    "timesheet_file": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Paid time off accuracy\n\nTypically, any vacation pay accrued and unpaid at the time\nof termination must be paid out to the employee. To avoid overpaying or underpaying,\nplease make sure we have an accurate account of their paid time off by querying the\n[Show Time Off Balance](https://gateway.remote.com/v1/docs/openapi.html) endpoint,\nfiltering by the `employment_id`.\nThis optional document should be sent in case of any discrepancies.\n"
    }
  }
}
object ResignationBeforeStartDateRequestParams
{
  "type": "object",
  "title": "ResignationBeforeStartDateRequestParams",
  "example": {
    "proposed_resignation_accepted": false,
    "proposed_resignation_accepted_notes": "I do not accept"
  },
  "required": [
    "proposed_resignation_accepted"
  ],
  "x-struct": null,
  "properties": {
    "proposed_resignation_accepted": {
      "type": "boolean",
      "x-struct": null,
      "x-validate": null
    },
    "proposed_resignation_accepted_notes": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "Required if `proposed_resignation_accepted` is set to false."
    }
  },
  "x-validate": null
}
object ResignationFile
{
  "type": "object",
  "title": "ResignationFile",
  "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
}
object ResignationOffboarding
{
  "type": "object",
  "title": "ResignationOffboarding",
  "example": {
    "id": "ba310525-9282-40c9-8977-14d844bf891aX",
    "type": "resignation",
    "status": "submitted",
    "requested_by": "5a31f3c1-d7a7-4311-89cb-928959d3d540",
    "submitted_at": "2023-04-13T13:35:06Z",
    "employment_id": "1e74fdc2-7420-4eef-ab0a-b794cbbef4e1",
    "termination_date": "2023-12-20",
    "employer_awareness": "The employer was informed on 2023-12-12",
    "resignation_reason": "workforce_reduction",
    "additional_comments": "",
    "proposed_last_working_day": "2023-12-20"
  },
  "required": [
    "id",
    "type",
    "status",
    "submitted_at",
    "employment_id",
    "requested_by",
    "proposed_last_working_day",
    "termination_date",
    "resignation_reason"
  ],
  "x-struct": null,
  "properties": {
    "id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "type": {
      "enum": [
        "resignation"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "status": {
      "enum": [
        "submitted",
        "in_review",
        "done",
        "canceled"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "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
    },
    "termination_date": {
      "type": "string",
      "format": "date",
      "nullable": true,
      "x-struct": null,
      "x-validate": null,
      "description": "Most updated termination date for the offboarding. This date is subject to change through the offboarding process even after it is finalized."
    },
    "employer_awareness": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "reason_description": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "resignation_reason": {
      "enum": [
        "cancellation_before_start_date",
        "company_culture_or_values",
        "conversion_to_contractor",
        "dissatisfaction_with_remote_service",
        "incapacity_to_perform_inherent_duties",
        "infrastructure_challenges",
        "lack_of_recognition",
        "leadership",
        "mutual_agreement",
        "other",
        "other_job_opportunity",
        "personal_reasons",
        "position_does_not_meet_expectations",
        "relationship_with_coworkers",
        "relocation_from_entity_to_entity_by_employee",
        "relocation_leaving_remote",
        "remuneration_and_benefits",
        "retirement",
        "transfer_and_relocation_new_customer_and_new_country",
        "transfer_between_remote_customer",
        "transfer_from_remote_to_customer",
        "transfer_from_remote_to_other_eor"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "additional_comments": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "proposed_last_working_day": {
      "type": "string",
      "format": "date",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object ResourceErrorResponse
{
  "type": "object",
  "title": "ResourceErrorResponse",
  "example": {
    "message": {
      "code": "resource_already_exists",
      "message": "There is already a submitted Employee termination request for this user, so you can't submit another one",
      "resource_id": "aca8ba1f-8d3a-4de8-9ab4-e0fcb4b210be",
      "resource_type": "termination_request"
    }
  },
  "required": [
    "message"
  ],
  "x-struct": null,
  "properties": {
    "message": {
      "type": "object",
      "x-struct": null,
      "properties": {
        "code": {
          "enum": [
            "parameter_invalid_date",
            "resource_not_supported_for_country",
            "parameter_value_invalid",
            "request_internal_server_error",
            "resource_invalid_state",
            "resource_already_exists",
            "resource_not_eligible",
            "action_invalid",
            "action_unrecognized",
            "parameter_map_empty",
            "parameter_one_of_required_missing",
            "parameter_required_missing",
            "parameter_too_many",
            "parameter_unknown",
            "parameter_value_unknown",
            "request_body_empty"
          ],
          "type": "string",
          "x-struct": null,
          "x-validate": null
        },
        "message": {
          "type": "string",
          "x-struct": null,
          "x-validate": null
        },
        "resource_id": {
          "type": "string",
          "nullable": true,
          "x-struct": null,
          "x-validate": null
        },
        "resource_type": {
          "type": "string",
          "x-struct": null,
          "x-validate": null
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null
}
object SalaryDecreaseDetails
{
  "type": "object",
  "title": "SalaryDecreaseDetails",
  "nullable": true,
  "x-struct": null,
  "properties": {
    "was_employee_informed": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "salary_decrease_reason": {
      "enum": [
        "change_in_working_hours",
        "trade_salary_for_equity",
        "error_in_initial_salary",
        "role_change_or_demotion",
        "compensation_restructure",
        "other"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "salary_decrease_reason_description": {
      "type": "string",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "The details of the salary decrease request if there is one"
}
string Slug
{
  "type": "string",
  "title": "Slug",
  "example": "663e0b79-c893-45ff-a1b2-f6dcabc098b5",
  "nullable": true,
  "x-struct": null,
  "x-validate": null,
  "description": "Unique ID of related department, if any. Otherwise, null."
}
object SuccessResponse
{
  "type": "object",
  "title": "SuccessResponse",
  "example": {
    "data": {
      "status": "ok"
    }
  },
  "required": [
    "data"
  ],
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "x-struct": null,
      "properties": {
        "status": {
          "type": "string",
          "x-struct": null,
          "x-validate": null
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null
}
object TerminationDetailsParams
{
  "type": "object",
  "title": "TerminationDetailsParams",
  "required": [
    "confidential",
    "proposed_termination_date",
    "termination_reason",
    "risk_assessment_reasons",
    "will_challenge_termination",
    "reason_description"
  ],
  "x-struct": null,
  "properties": {
    "confidential": {
      "type": "boolean",
      "x-struct": null,
      "x-validate": null,
      "description": "Confidential requests are visible for who authorized the token or integration. Non-confidential requests are visible to all admins in the company."
    },
    "personal_email": {
      "type": "string",
      "format": "email",
      "x-struct": null,
      "x-validate": null,
      "description": "Remote will use this email address for post-termination communication.\nIf it is not provided, this field will be derived from the employment record. Therefore, it is important to ensure that it is not a company email.\n"
    },
    "timesheet_file": {
      "$ref": "#/components/schemas/OffboardingFile"
    },
    "employee_awareness": {
      "type": "object",
      "x-struct": null,
      "properties": {
        "date": {
          "type": "string",
          "format": "date",
          "nullable": true,
          "x-struct": null,
          "x-validate": null,
          "description": "When the employee was told about the termination."
        },
        "note": {
          "type": "string",
          "nullable": true,
          "x-struct": null,
          "x-validate": null,
          "description": "Notes describing how the termination was shared with the employee. Remote advises being as specific as possible, and include details about the employee’s response, if applicable."
        }
      },
      "x-validate": null,
      "description": "Remote advises not to inform the employee of their termination until we review your request for legal risks. When we approve your request, you can inform the employee and we’ll take it from there. This field is only required if employee was informed before creating the offboarding request."
    },
    "reason_description": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "Description of the reason for termination"
    },
    "termination_reason": {
      "enum": [
        "cancellation_before_start_date",
        "compliance_issue",
        "conversion_to_contractor",
        "dissatisfaction_with_remote_service",
        "end_of_fixed_term_contract_compliance_issue",
        "end_of_fixed_term_contract_incapacity_to_perform_inherent_duties",
        "end_of_fixed_term_contract_local_regulations_max_term_reached",
        "end_of_fixed_term_contract_misconduct",
        "end_of_fixed_term_contract_operational_reasons",
        "end_of_fixed_term_contract_other",
        "end_of_fixed_term_contract_performance",
        "end_of_fixed_term_contract_redundancy",
        "end_of_fixed_term_contract_values",
        "gross_misconduct",
        "incapacity_to_perform_inherent_duties",
        "job_abandonment",
        "mutual_agreement",
        "other",
        "performance",
        "values",
        "workforce_reduction"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "Choose an accurate termination reason to avoid unfair or unlawful dismissal claims.\n\nIf the termination is created before the employee's start date, this field\nwill be set to `cancellation_before_start_date`.\n"
    },
    "additional_comments": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "Additional details regarding the termination process."
    },
    "risk_assessment_reasons": {
      "type": "array",
      "items": {
        "enum": [
          "caring_responsibilities",
          "disabled_or_health_condition",
          "family_leave",
          "member_of_union_or_works_council",
          "none_of_these",
          "pregnant_or_breastfeeding",
          "reported_concerns_with_workplace",
          "requested_medical_or_family_leave",
          "sick_leave"
        ],
        "type": "string",
        "x-struct": null,
        "x-validate": null
      },
      "minItems": 1,
      "x-struct": null,
      "x-validate": null,
      "description": "Possible reasons for offboarding risk assessment"
    },
    "termination_reason_files": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/OffboardingFile"
      },
      "x-struct": null,
      "x-validate": null,
      "description": "Any supporting documents regarding the termination reason"
    },
    "proposed_termination_date": {
      "type": "string",
      "format": "date",
      "x-struct": null,
      "x-validate": null,
      "description": "In most cases, employee needs to be notified before termination. The required notice period depends on local labor laws, the employment agreement, and other factors. Remote will use those factors to determine the required notice period. Please note that we cannot commit to a termination date until we conduct a full review of the information you submit."
    },
    "will_challenge_termination": {
      "type": "boolean",
      "x-struct": null,
      "x-validate": null,
      "description": "Whether is it likely or not that the employee will challenge their termination"
    },
    "will_challenge_termination_description": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "If it is likely that the employee will challenge their termination, please provide additional details explaining the risk"
    }
  },
  "x-validate": null,
  "x-konfig-properties": {
    "timesheet_file": {
      "type": "object",
      "x-struct": null,
      "x-validate": null,
      "description": "Paid time off accuracy\n\nTypically, any vacation pay accrued and unpaid at the time\nof termination must be paid out to the employee. To avoid overpaying or underpaying,\nplease make sure we have an accurate account of their paid time off by querying the\n[Show Time Off Balance](https://gateway.remote.com/v1/docs/openapi.html) endpoint,\nfiltering by the `employment_id`.\nThis optional document should be sent in case of any discrepancies.\n"
    }
  }
}
object TerminationOffboarding
{
  "type": "object",
  "title": "TerminationOffboarding",
  "example": {
    "id": "ba310525-9282-40c9-8977-14d844bf891a",
    "type": "termination",
    "status": "submitted",
    "confidential": false,
    "requested_by": "5a31f3c1-d7a7-4311-89cb-928959d3d540",
    "submitted_at": "2023-04-13T13:35:06Z",
    "employment_id": "1e74fdc2-7420-4eef-ab0a-b794cbbef4e1",
    "termination_date": "2023-12-20",
    "employee_awareness": {
      "date": "2023-12-12",
      "note": "optional text to add details"
    },
    "termination_reason": "workforce_reduction",
    "additional_comments": "",
    "agrees_to_pto_amount": "true",
    "risk_assessment_reasons": [
      "pregnant_or_breastfeeding",
      "family_leave"
    ],
    "proposed_termination_date": "2023-12-20",
    "will_challenge_termination": true,
    "will_challenge_termination_description": "additional details for the offboarding risk assessment"
  },
  "required": [
    "id",
    "type",
    "status",
    "submitted_at",
    "employment_id",
    "requested_by",
    "confidential",
    "proposed_termination_date",
    "termination_date",
    "termination_reason",
    "reason_description",
    "additional_comments",
    "risk_assessment_reasons",
    "will_challenge_termination"
  ],
  "x-struct": null,
  "properties": {
    "id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "type": {
      "enum": [
        "termination"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "status": {
      "enum": [
        "submitted",
        "in_review",
        "done",
        "canceled"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "confidential": {
      "type": "boolean",
      "x-struct": null,
      "x-validate": null
    },
    "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
    },
    "termination_date": {
      "type": "string",
      "format": "date",
      "nullable": true,
      "x-struct": null,
      "x-validate": null,
      "description": "Most updated termination date for the offboarding. This date is subject to change through the offboarding process even after it is finalized."
    },
    "employee_awareness": {
      "type": "object",
      "x-struct": null,
      "properties": {
        "date": {
          "type": "string",
          "format": "date",
          "nullable": true,
          "x-struct": null,
          "x-validate": null
        },
        "note": {
          "type": "string",
          "nullable": true,
          "x-struct": null,
          "x-validate": null
        }
      },
      "x-validate": null
    },
    "reason_description": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "termination_reason": {
      "enum": [
        "cancellation_before_start_date",
        "compliance_issue",
        "conversion_to_contractor",
        "dissatisfaction_with_remote_service",
        "end_of_fixed_term_contract_compliance_issue",
        "end_of_fixed_term_contract_incapacity_to_perform_inherent_duties",
        "end_of_fixed_term_contract_local_regulations_max_term_reached",
        "end_of_fixed_term_contract_misconduct",
        "end_of_fixed_term_contract_operational_reasons",
        "end_of_fixed_term_contract_other",
        "end_of_fixed_term_contract_performance",
        "end_of_fixed_term_contract_redundancy",
        "end_of_fixed_term_contract_values",
        "gross_misconduct",
        "incapacity_to_perform_inherent_duties",
        "job_abandonment",
        "mutual_agreement",
        "other",
        "performance",
        "values",
        "workforce_reduction"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "additional_comments": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "agrees_to_pto_amount": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "risk_assessment_reasons": {
      "type": "array",
      "items": {
        "enum": [
          "caring_responsibilities",
          "disabled_or_health_condition",
          "family_leave",
          "member_of_union_or_works_council",
          "none_of_these",
          "pregnant_or_breastfeeding",
          "reported_concerns_with_workplace",
          "requested_medical_or_family_leave",
          "sick_leave"
        ],
        "type": "string",
        "x-struct": null,
        "x-validate": null
      },
      "x-struct": null,
      "x-validate": null
    },
    "proposed_termination_date": {
      "type": "string",
      "format": "date",
      "x-struct": null,
      "x-validate": null
    },
    "will_challenge_termination": {
      "type": "boolean",
      "x-struct": null,
      "x-validate": null
    },
    "will_challenge_termination_description": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object Timeoff
{
  "type": "object",
  "title": "Timeoff",
  "example": {
    "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1X",
    "notes": "Some notes",
    "status": "approved",
    "document": {
      "id": "9880b711-file-id-ecf8f551bd78X",
      "name": "id.pdf",
      "type": "id",
      "sub_type": "personal_id",
      "inserted_at": "2021-11-12T17:19:21"
    },
    "end_date": "2021-12-21",
    "timezone": "Asia/Kolkata",
    "start_date": "2021-12-20",
    "timeoff_days": [
      {
        "day": "2021-12-20",
        "hours": 8
      },
      {
        "day": "2021-12-21",
        "hours": 8
      }
    ],
    "timeoff_type": "paid_time_off",
    "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d"
  },
  "required": [
    "id",
    "employment_id",
    "status",
    "start_date",
    "end_date",
    "timeoff_days",
    "timeoff_type",
    "timezone"
  ],
  "x-struct": null,
  "properties": {
    "id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "notes": {
      "type": "string",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    },
    "status": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "document": {
      "$ref": "#/components/schemas/File"
    },
    "end_date": {
      "type": "string",
      "format": "date",
      "x-struct": null,
      "x-validate": null
    },
    "timezone": {
      "$ref": "#/components/schemas/Timezone"
    },
    "start_date": {
      "type": "string",
      "format": "date",
      "x-struct": null,
      "x-validate": null
    },
    "approved_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    },
    "approver_id": {
      "$ref": "#/components/schemas/NullableApproverId"
    },
    "cancelled_at": {
      "$ref": "#/components/schemas/NullableDateTime"
    },
    "timeoff_days": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TimeoffDay"
      },
      "x-struct": null,
      "x-validate": null
    },
    "timeoff_type": {
      "$ref": "#/components/schemas/TimeoffType"
    },
    "cancel_reason": {
      "type": "string",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    },
    "employment_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object TimeoffBalance
{
  "type": "object",
  "title": "TimeoffBalance",
  "example": {
    "taken": {
      "days": 3,
      "hours": 0
    },
    "leave_entitlements": [
      {
        "name": "Annual paid time off",
        "type": "annual_paid_timeoff",
        "taken": {
          "days": 3,
          "hours": 0
        },
        "entitled": {
          "days": 28,
          "hours": 0
        },
        "remaining": {
          "days": 25,
          "hours": 0
        },
        "expiry_date": "2022-12-31"
      },
      {
        "name": "Extra days for good performance",
        "type": "additional_pto",
        "taken": {
          "days": 0,
          "hours": 0
        },
        "entitled": {
          "days": 3,
          "hours": 0
        },
        "remaining": {
          "days": 3,
          "hours": 0
        },
        "expiry_date": "2022-12-31"
      }
    ],
    "total_entitled_days": 31,
    "contractual_entitled": {
      "days": 25,
      "hours": 0
    },
    "working_hours_per_day": 8
  },
  "required": [
    "timeoff_entitlements",
    "taken",
    "upcoming_approved",
    "upcoming_requested",
    "working_hours_per_day",
    "contractual_leave_entitlement_type"
  ],
  "x-struct": null,
  "properties": {
    "taken": {
      "type": "object",
      "oneOf": [
        {
          "$ref": "#/components/schemas/TimeoffDaysAndHours"
        }
      ],
      "nullable": true,
      "x-struct": null,
      "x-validate": null,
      "description": "Number of time off days taken by the employment as of today.\n\nYou can get a list of taken time off data for this employment using the\n[list time off endpoint](https://gateway.remote.com/v1/docs/openapi.html).\n"
    },
    "upcoming_approved": {
      "type": "object",
      "oneOf": [
        {
          "$ref": "#/components/schemas/TimeoffDaysAndHours"
        }
      ],
      "nullable": true,
      "x-struct": null,
      "x-validate": null,
      "description": "Number of future, approved time off days for the employment, as of today.\n\nYou can get a list of approved time off data for this employment using the\n[list time off endpoint](https://gateway.remote.com/v1/docs/openapi.html).\n"
    },
    "upcoming_requested": {
      "type": "object",
      "oneOf": [
        {
          "$ref": "#/components/schemas/TimeoffDaysAndHours"
        }
      ],
      "nullable": true,
      "x-struct": null,
      "x-validate": null,
      "description": "Number of future, requested time off days for the employment, as of today.\n\nYou can get a list of requested time off data for this employment using the\n[list time off endpoint](https://gateway.remote.com/v1/docs/openapi.html).\n"
    },
    "total_entitled_days": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null,
      "description": "Number of time off days for the employment, based on their contract and\nany additional time off that's granted to them.\n\nThis is the sum of all `entitled` fields in the `leave_entitlements`\narray, but does not take the hours into account.\n"
    },
    "contractual_entitled": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null,
      "description": "Number of time off days for the employment, based on their contract.\n\nThe value of this field is `0` if the employment's contract does not\ninclude that information.\n"
    },
    "timeoff_entitlements": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TimeoffEntitlement"
      },
      "x-struct": null,
      "x-validate": null,
      "description": "A list of individual time off entitlements for the employment. This list\ngives more granular details for the type of time off that's available\nto the employment.\n"
    },
    "working_hours_per_day": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    },
    "contractual_leave_entitlement_type": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "Leave entitlement type for the employment, based on their contract.\n\nThe value of this field is `fixed` when the employment has a fixed\nlimit of time off days to be taken, and `unlimited` otherwise.\n"
    }
  },
  "x-validate": null
}
object TimeoffBalanceNotFoundResponse
{
  "type": "object",
  "oneOf": [
    {
      "$ref": "#/components/schemas/TimeoffBalanceNotSupportedResponse"
    },
    {
      "$ref": "#/components/schemas/NotFoundResponse"
    }
  ],
  "title": "TimeoffBalanceNotFoundResponse",
  "x-struct": null,
  "x-validate": null
}
object TimeoffBalanceNotSupportedResponse
{
  "type": "object",
  "oneOf": [
    {
      "$ref": "#/components/schemas/ResourceErrorResponse"
    }
  ],
  "title": "TimeoffBalanceNotSupportedResponse",
  "example": {
    "message": {
      "code": "resource_already_exists",
      "message": "There is already a submitted Employee termination request for this user, so you can't submit another one",
      "resource_id": "aca8ba1f-8d3a-4de8-9ab4-e0fcb4b210be",
      "resource_type": "termination_request"
    }
  },
  "x-struct": null,
  "x-validate": null
}
object TimeoffBalanceResponse
{
  "type": "object",
  "title": "TimeoffBalanceResponse",
  "example": {
    "data": {
      "timeoff_balance": {
        "taken": {
          "days": 3,
          "hours": 0
        },
        "leave_entitlements": [
          {
            "name": "Annual paid time off",
            "type": "annual_paid_timeoff",
            "taken": {
              "days": 3,
              "hours": 0
            },
            "entitled": {
              "days": 28,
              "hours": 0
            },
            "remaining": {
              "days": 25,
              "hours": 0
            },
            "expiry_date": "2022-12-31"
          },
          {
            "name": "Extra days for good performance",
            "type": "additional_pto",
            "taken": {
              "days": 0,
              "hours": 0
            },
            "entitled": {
              "days": 3,
              "hours": 0
            },
            "remaining": {
              "days": 3,
              "hours": 0
            },
            "expiry_date": "2022-12-31"
          }
        ],
        "total_entitled_days": 31,
        "contractual_entitled": {
          "days": 25,
          "hours": 0
        },
        "working_hours_per_day": 8
      }
    }
  },
  "required": [
    "data"
  ],
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "timeoff_balance"
      ],
      "x-struct": null,
      "properties": {
        "timeoff_balance": {
          "$ref": "#/components/schemas/TimeoffBalance"
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Time Off Balance response"
}
object TimeoffDay
{
  "type": "object",
  "title": "TimeoffDay",
  "example": {
    "day": "2021-01-01",
    "hours": 8
  },
  "required": [
    "day",
    "hours"
  ],
  "x-struct": null,
  "properties": {
    "day": {
      "$ref": "#/components/schemas/Date"
    },
    "hours": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "TimeoffDay schema"
}
object TimeoffDaysAndHours
{
  "type": "object",
  "title": "TimeoffDaysAndHours",
  "example": {
    "days": 1,
    "hours": 3
  },
  "x-struct": null,
  "properties": {
    "days": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    },
    "hours": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object TimeoffDaysParams
{
  "type": "object",
  "title": "TimeoffDaysParams",
  "x-struct": null,
  "properties": {
    "day": {
      "$ref": "#/components/schemas/Date"
    },
    "hours": {
      "type": "integer",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Timeoff days params"
}
object TimeoffDocumentParams
{
  "type": "object",
  "title": "TimeoffDocumentParams",
  "required": [
    "content",
    "name"
  ],
  "x-struct": null,
  "properties": {
    "name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The file name of the document"
    },
    "content": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The binary content of the file encoded with base64"
    }
  },
  "x-validate": null,
  "description": "Timeoff document params"
}
object TimeoffEntitlement
{
  "type": "object",
  "title": "TimeoffEntitlement",
  "example": {
    "name": "Extra days for good performance",
    "type": "additional_pto",
    "taken": {
      "days": 15,
      "hours": 4
    },
    "available": {
      "days": 15,
      "hours": 4
    },
    "expiry_date": "2022-12-31"
  },
  "required": [
    "name",
    "expiry_date",
    "can_expire",
    "entitled",
    "taken",
    "remaining",
    "type"
  ],
  "x-struct": null,
  "properties": {
    "name": {
      "type": "string",
      "nullable": true,
      "x-struct": null,
      "x-validate": null
    },
    "type": {
      "enum": [
        "carryover_pto",
        "additional_pto",
        "transfer_pto",
        "annual_paid_timeoff"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "Indicates the type of the time off entitlement.\n\n`annual_paid_timeoff` entitlements are calculated from the employment's\ncontract. All other time off entitlements are granted by the employer\nor automatically by the country of employment.\n"
    },
    "taken": {
      "type": "object",
      "oneOf": [
        {
          "$ref": "#/components/schemas/TimeoffDaysAndHours"
        }
      ],
      "x-struct": null,
      "x-validate": null,
      "description": "Indicates how much time off the employment has taken from this entitlement.\n"
    },
    "entitled": {
      "type": "object",
      "oneOf": [
        {
          "$ref": "#/components/schemas/TimeoffDaysAndHours"
        }
      ],
      "x-struct": null,
      "x-validate": null,
      "description": "Indicates how much this time off this entitlement contributes to the total time\noff entitlement.\n"
    },
    "remaining": {
      "type": "object",
      "oneOf": [
        {
          "$ref": "#/components/schemas/TimeoffDaysAndHours"
        }
      ],
      "x-struct": null,
      "x-validate": null,
      "description": "Indicates how much time off the employment has remaining in this entitlement.\n"
    },
    "can_expire": {
      "type": "boolean",
      "x-struct": null,
      "x-validate": null,
      "description": "Indicates whether this entitlement can expire.\n\nWhen `false`, `expiry_date` will be `nil`.\n"
    },
    "expiry_date": {
      "type": "string",
      "format": "date",
      "nullable": true,
      "x-struct": null,
      "x-validate": null,
      "description": "Indicates the date this entitlement expires and is no longer counted\ntowards the total time off entitlement for the employment.\n\nWhen this entitlement doesn't expire, `expiry_date` will be set to\n`nil`. Use the `can_expire` parameter to determine whether\nan entitlement can expire or not.\n"
    }
  },
  "x-validate": null,
  "description": "Detailed breakdown of an employment's time off balance.\n"
}
object TimeoffResponse
{
  "type": "object",
  "title": "TimeoffResponse",
  "example": {
    "data": {
      "timeoff": {
        "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1",
        "notes": "Some notes",
        "status": "approved",
        "document": {
          "id": "9880b711-file-id-ecf8f551bd78X",
          "name": "id.pdf",
          "type": "id",
          "sub_type": "personal_id",
          "inserted_at": "2021-11-12T17:19:21"
        },
        "end_date": "2021-12-21",
        "timezone": "Asia/Kolkata",
        "start_date": "2021-12-20",
        "timeoff_days": [
          {
            "day": "2021-12-20",
            "hours": 8
          },
          {
            "day": "2021-12-21",
            "hours": 8
          }
        ],
        "timeoff_type": "paid_time_off",
        "employment_id": "5e55386e-4f4f-4def-92f4-bdc19a5ce77d"
      }
    }
  },
  "required": [
    "data"
  ],
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "timeoff"
      ],
      "x-struct": null,
      "properties": {
        "timeoff": {
          "$ref": "#/components/schemas/Timeoff"
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Timeoff response"
}
string TimeoffStatus
{
  "enum": [
    "approved",
    "cancelled",
    "declined",
    "requested",
    "taken",
    "cancel_requested"
  ],
  "type": "string",
  "title": "TimeoffStatus",
  "example": "requested",
  "x-struct": null,
  "x-validate": null
}
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"
  ],
  "type": "string",
  "title": "TimeoffType",
  "example": "sick_leave",
  "x-struct": null,
  "x-validate": null
}
string Timezone
{
  "type": "string",
  "title": "Timezone",
  "example": "Etc/UTC",
  "x-struct": null,
  "x-validate": null,
  "description": "[TZ identifier](https://www.iana.org/time-zones)"
}
object TooManyRequestsResponse
{
  "type": "object",
  "title": "TooManyRequestsResponse",
  "example": {
    "message": "Too many requests"
  },
  "x-struct": null,
  "properties": {
    "message": {
      "type": "string",
      "pattern": "Too many requests",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object UnauthorizedResponse
{
  "type": "object",
  "title": "UnauthorizedResponse",
  "example": {
    "message": "Unauthorized"
  },
  "required": [
    "message"
  ],
  "x-struct": null,
  "properties": {
    "message": {
      "type": "string",
      "pattern": "Unauthorized",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object UnprocessableEntityResponse
{
  "type": "object",
  "oneOf": [
    {
      "type": "object",
      "required": [
        "errors"
      ],
      "x-struct": null,
      "properties": {
        "errors": {
          "type": "object",
          "x-struct": null,
          "x-validate": null
        }
      },
      "x-validate": null
    },
    {
      "type": "object",
      "required": [
        "message"
      ],
      "x-struct": null,
      "properties": {
        "message": {
          "oneOf": [
            {
              "type": "string",
              "x-struct": null,
              "x-validate": null
            },
            {
              "$ref": "#/components/schemas/ParameterError"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ParameterError"
              },
              "title": "ParameterErrors",
              "x-struct": null,
              "x-validate": null
            },
            {
              "$ref": "#/components/schemas/ActionError"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ActionError"
              },
              "title": "ActionErrors",
              "x-struct": null,
              "x-validate": null
            }
          ],
          "x-struct": null,
          "x-validate": null
        }
      },
      "x-validate": null
    }
  ],
  "title": "UnprocessableEntityResponse",
  "example": {
    "errors": {
      "some_field": [
        "is invalid"
      ]
    }
  },
  "x-struct": null,
  "x-validate": null
}
object UpdateApprovedTimeoffParams
{
  "type": "object",
  "title": "UpdateApprovedTimeoffParams",
  "required": [
    "edit_reason",
    "cancel_reason"
  ],
  "x-struct": null,
  "properties": {
    "notes": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "status": {
      "enum": [
        "approved",
        "cancelled"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "document": {
      "$ref": "#/components/schemas/TimeoffDocumentParams"
    },
    "end_date": {
      "$ref": "#/components/schemas/Date"
    },
    "timezone": {
      "$ref": "#/components/schemas/Timezone"
    },
    "start_date": {
      "$ref": "#/components/schemas/Date"
    },
    "approved_at": {
      "$ref": "#/components/schemas/DateTimeIso8601"
    },
    "approver_id": {
      "$ref": "#/components/schemas/NullableApproverId"
    },
    "edit_reason": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The reason for the update. Required when updating the time off data but not changing the status."
    },
    "timeoff_days": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TimeoffDaysParams"
      },
      "x-struct": null,
      "x-validate": null
    },
    "timeoff_type": {
      "$ref": "#/components/schemas/TimeoffType"
    },
    "cancel_reason": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The reason for cancelling a time off. Required when updating to status `cancelled`."
    }
  },
  "x-validate": null,
  "description": "Update timeoff params"
}
object UpdateCompanyParams
{
  "type": "object",
  "title": "UpdateCompanyParams",
  "example": {
    "name": "Tech Vision",
    "tax_number": "123456789",
    "country_code": "USA",
    "phone_number": "+11123123456",
    "address_details": {
      "city": "San Francisco",
      "state": "CA",
      "address": "1709 Broderick St",
      "postal_code": "94115",
      "address_line_2": "Flat number 123"
    },
    "desired_currency": "USD",
    "bank_account_details": {
      "name": "Bank name",
      "account_type": "savings",
      "account_holder": "Joe Smith",
      "account_number": "31234123123",
      "ownership_type": "BUSINESS",
      "routing_number": "123124123"
    }
  },
  "x-struct": null,
  "properties": {
    "name": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "This field is only accepted if company is in status `pending`. Please contact Remote if you wish to update it.\n"
    },
    "tax_number": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "  The tax identifier of the company. This field or registration_number (but not both) should be submitted.\n\n  This field is only accepted if company is in status `pending`.\n"
    },
    "country_code": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "Country of company address"
    },
    "phone_number": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "A phone number the company can be contacted with."
    },
    "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": {
      "enum": [
        "AUD",
        "CAD",
        "CHF",
        "DKK",
        "EUR",
        "GBP",
        "JPY",
        "NOK",
        "NZD",
        "SEK",
        "SGD",
        "USD"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "Desired currency for invoicing and displaying converted salaries in Remote UI regardless of the employee's country.\n\nThis field is only accepted if company is in status `pending`. Please contact Remote if you wish to update it.\n"
    },
    "registration_number": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "The company registration number. This field or tax_number (but not both) should be submitted.\n\nThis field is only accepted if company is in status `pending`.\n"
    },
    "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"
    }
  },
  "x-validate": null
}
object UpdateExpenseParams
{
  "type": "object",
  "oneOf": [
    {
      "$ref": "#/components/schemas/ApproveExpenseParams"
    },
    {
      "$ref": "#/components/schemas/DeclineExpenseParams"
    }
  ],
  "title": "UpdateExpenseParams",
  "x-struct": null,
  "x-validate": null,
  "description": "Update expense params"
}
object UpdateIncentiveParams
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/CommonIncentiveParams"
    },
    {
      "type": "object",
      "x-struct": null,
      "properties": {
        "type": {
          "type": "string",
          "x-struct": null,
          "x-validate": null,
          "description": "A valid type according to the payment frequency"
        }
      },
      "x-validate": null
    }
  ],
  "title": "UpdateIncentiveParams",
  "example": {
    "note": "Bonus for moving start date to an earlier date",
    "type": "signing_bonus",
    "amount": 50000,
    "effective_date": "2021-12-20",
    "amount_tax_type": "net"
  },
  "x-struct": null,
  "properties": {
    "note": {
      "type": "string",
      "example": "Bonus for moving start date to an earlier date"
    },
    "type": {
      "type": "string",
      "example": "signing_bonus"
    },
    "amount": {
      "type": "number",
      "example": 50000
    },
    "effective_date": {
      "type": "string",
      "example": "2021-12-20"
    },
    "amount_tax_type": {
      "type": "string",
      "example": "net"
    }
  },
  "x-validate": null
}
object ValidateResignationRequest
{
  "type": "object",
  "oneOf": [
    {
      "$ref": "#/components/schemas/ResignationAfterStartDateRequestParams"
    },
    {
      "$ref": "#/components/schemas/ResignationBeforeStartDateRequestParams"
    }
  ],
  "title": "ValidateResignationRequest",
  "x-struct": null,
  "x-validate": null
}
object ValidationError
{
  "type": "object",
  "title": "ValidationError",
  "example": {
    "errors": {
      "rejected_reason": [
        "can't be blank"
      ]
    }
  },
  "required": [
    "errors"
  ],
  "x-struct": null,
  "properties": {
    "errors": {
      "type": "object",
      "x-struct": null,
      "properties": {},
      "x-validate": null,
      "additionalProperties": true
    }
  },
  "x-validate": null
}
object WebhookCallback
{
  "type": "object",
  "title": "WebhookCallback",
  "example": {
    "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1X",
    "url": "https://example.com/callback",
    "subscribed_events": [
      "employment.onboarding_task.completed"
    ]
  },
  "required": [
    "id",
    "url"
  ],
  "x-struct": null,
  "properties": {
    "id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "url": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "signing_key": {
      "type": "string",
      "x-struct": null,
      "x-validate": null,
      "description": "This key will be used to sign the signature provided with webhook requests we\nsend to the `url` you provided for this webhook callback.\n\nThe webhook signature will be included in a custom header, `X-Remote-Signature`.\nYou can use this signature to verify that requests are coming from Remote and\nnot some unauthorized third-party.\n"
    },
    "subscribed_events": {
      "type": "array",
      "items": {
        "enum": [
          "billing_document.issued",
          "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.onboarding_task.completed",
          "employment.onboarding.completed",
          "employment.personal_information.updated",
          "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.deleted",
          "offboarding.done",
          "offboarding.review_started",
          "offboarding.submitted",
          "offboarding.submitted_to_payroll",
          "offboarding.completed",
          "payslip.released",
          "timeoff.approved",
          "timeoff.canceled",
          "timeoff.date_changed",
          "timeoff.declined",
          "timeoff.requested",
          "timeoff.taken",
          "timeoff.updated"
        ],
        "type": "string",
        "x-struct": null,
        "x-validate": null,
        "description": "The setting to be enabled."
      },
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null
}
object WebhookCallbackResponse
{
  "type": "object",
  "title": "WebhookCallbackResponse",
  "example": {
    "data": {
      "webhook_callback": {
        "id": "0073fcb5-b669-4e4a-b963-2a47744e75a1X",
        "url": "https://example.com/callback",
        "subscribed_events": [
          "employment.onboarding_task.completed"
        ]
      }
    }
  },
  "required": [
    "data"
  ],
  "x-struct": null,
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "webhook_callback"
      ],
      "x-struct": null,
      "properties": {
        "webhook_callback": {
          "$ref": "#/components/schemas/WebhookCallback"
        }
      },
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Webhook callback response"
}
object WebhookTriggerParams
{
  "type": "object",
  "title": "WebhookTriggerParams",
  "example": {
    "event_type": "employment.onboarding_task.completed",
    "employment_id": "e966a8b8-1076-11ee-a5f2-9b3997a968f6"
  },
  "x-struct": null,
  "properties": {
    "event_type": {
      "enum": [
        "billing_document.issued",
        "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.onboarding_task.completed",
        "employment.onboarding.completed",
        "employment.personal_information.updated",
        "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.deleted",
        "offboarding.done",
        "offboarding.review_started",
        "offboarding.submitted",
        "offboarding.submitted_to_payroll",
        "offboarding.completed",
        "payslip.released",
        "timeoff.approved",
        "timeoff.canceled",
        "timeoff.date_changed",
        "timeoff.declined",
        "timeoff.requested",
        "timeoff.taken",
        "timeoff.updated"
      ],
      "type": "string",
      "x-struct": null,
      "x-validate": null
    },
    "employment_id": {
      "type": "string",
      "x-struct": null,
      "x-validate": null
    }
  },
  "x-validate": null,
  "description": "Required params to trigger a webhook event in the Sandbox environment"
}