Remote

Global HR and payroll for remote teams

developer.remote.com ↗
Version
0.1.0
OpenAPI
3.0.0
Endpoints
83
Schemas
202
89
Quality
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

Endpoints

Clear filters

Benefitoffers 1 endpoints

GET /v1/benefit-offers/country-summaries

List benefit offers for each country.

operationId: BenefitOffers_listCountrySummaries

Responses

200

Success

404

Not Found

422

Unprocessable Entity

GET /v1/benefit-offers/country-summaries

Benefitoffersbyemployment 1 endpoints

GET /v1/benefit-offers

List benefit offers by employment.

operationId: BenefitOffersByEmployment_listByEmployment

Responses

200

Success

404

Not Found

GET /v1/benefit-offers

Billingdocuments 3 endpoints

GET /v1/billing-documents

List billing documents for a company

operationId: BillingDocuments_list

Parameters

Name In Required Type Description
period query optional string

The month for the billing documents (in ISO-8601 format)

page query optional integer

Starts fetching records after the given page

page_size query optional integer

Change the amount of records returned per page, defaults to 20, limited to 100

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/billing-documents
GET /v1/billing-documents/{billing_document_id}

Shows a billing document details.

Please contact api-support@remote.com to request access to this endpoint.

operationId: BillingDocuments_showDetails

Parameters

Name In Required Type Description
billing_document_id path required string

The billing document’s ID

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Unprocessable Entity

GET /v1/billing-documents/{billing_document_id}
GET /v1/billing-documents/{billing_document_id}/pdf

Downloads a billing document PDF

operationId: BillingDocuments_downloadPdf

Parameters

Name In Required Type Description
billing_document_id path required string

The billing document’s ID

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/billing-documents/{billing_document_id}/pdf

Companies 2 endpoints

GET /v1/companies

List all companies that authorized your integration to act on their behalf. In other words, these are all the companies that your integration can manage. Any company that has completed the authorization flow for your integration will be included in the response.

operationId: Companies_listAll

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/companies
GET /v1/companies/{company_id}

Given an ID, shows a company

operationId: Companies_showCompany

Parameters

Name In Required Type Description
company_id path required string

Company ID

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/companies/{company_id}

Companydepartment 1 endpoints

GET /v1/company-departments

Lists all departments for the authorized company specified in the request.

operationId: CompanyDepartment_list

Parameters

Name In Required Type Description
company_id query required string

Company ID

paginate query optional boolean

Paginate option. Default: true. When true, paginates response; otherwise, does not.

page query optional integer

Starts fetching records after the given page

page_size query optional integer

Number of items per page

Responses

200

Success

404

Not Found

422

Unprocessable Entity

GET /v1/company-departments

Companymanagers 2 endpoints

GET /v1/company-managers

List all company managers of an integration. If filtered by the company_id param,
it lists only company managers belonging to the specified company.

operationId: CompanyManagers_listManagers

Parameters

Name In Required Type Description
company_id query optional string

A Company ID to filter the results (only applicable for Integration Partners).

page query optional integer

Starts fetching records after the given page

page_size query optional integer

Change the amount of records returned per page, defaults to 20, limited to 100

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/company-managers
GET /v1/company-managers/{user_id}

Shows a single company manager user

operationId: CompanyManagers_showUser

Parameters

Name In Required Type Description
user_id path required string

User ID

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/company-managers/{user_id}

Contractamendments 2 endpoints

GET /v1/contract-amendments

List Contract Amendment requests.

operationId: ContractAmendments_listRequests

Parameters

Name In Required Type Description
page query optional integer

Starts fetching records after the given page

page_size query optional integer

Number of items per page

Responses

200

Success

401

Unauthorized

404

Not Found

422

Unprocessable Entity

GET /v1/contract-amendments
GET /v1/contract-amendments/{id}

Show a single Contract Amendment request.

operationId: ContractAmendments_showSingleRequest

Parameters

Name In Required Type Description
id path required string

Contract amendment request ID

Responses

200

Success

401

Unauthorized

404

Not Found

422

Unprocessable Entity

GET /v1/contract-amendments/{id}

Costcalculator 2 endpoints

GET /v1/cost-calculator/countries

Lists active and processing countries

operationId: CostCalculator_listCountries

Responses

200

Success

GET /v1/cost-calculator/countries
GET /v1/cost-calculator/regions/{slug}/fields

Returns required fields JSON Schema for a given region. These are required in order to calculate
the cost of employment for the region. These fields are based on employer contributions that are associated
with the region or any of it’s parent regions.

operationId: CostCalculator_showRegionFields

Parameters

Name In Required Type Description
slug path required string

Slug

Responses

200

Success

401

Unauthorized

500

Internal Server Error

GET /v1/cost-calculator/regions/{slug}/fields

Countries 3 endpoints

GET /v1/countries

Returns a list of all countries that are supported by Remote API alphabetically ordered. The supported list accounts for creating employment with basic information and it does not imply fully onboarding employment via JSON Schema.

operationId: Countries_listAlphabetically

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/countries
GET /v1/countries/{country_code}/holidays/{year}

List all holidays of a country for a specific year. Optionally, it can be filtered by country subdivision.

operationId: Countries_listHolidaysByYear

Parameters

Name In Required Type Description
country_code path required string

Country code according to ISO 3166-1 3-digit alphabetic codes

year path required string

Year for the holidays

country_subdivision_code query optional string

Country subdivision code according to ISO 3166-2 codes

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/countries/{country_code}/holidays/{year}
GET /v1/countries/{country_code}/{form}

Returns the json schema of a supported form. Possible form names are:

- address_details 
- administrative_details 
- bank_account_details 
- employment_basic_information 
- billing_address_details 
- contract_details 
- emergency_contact 
- employment_document_details 
- personal_details 
- pricing_plan_details 

This endpoint requires a company access token, as forms are dependent on certain
properties of companies and their current employments.

operationId: Countries_getFormSchema

Parameters

Name In Required Type Description
country_code path required string

Country code according to ISO 3-digit alphabetic codes

form path required string

Name of the desired form

employment_id query optional string

Required for contract_amendment form

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Unprocessable Entity

GET /v1/countries/{country_code}/{form}

Customfields 2 endpoints

GET /v1/custom-fields

Returns custom fields definitions

operationId: CustomFields_listDefinitions

Parameters

Name In Required Type Description
page query optional integer

Starts fetching records after the given page

page_size query optional integer

Change the amount of records returned per page, defaults to 20, limited to 100

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/custom-fields
GET /v1/custom-fields/{custom_field_id}/values/{employment_id}

Returns a custom field value for a given employment

operationId: CustomFields_showValue

Parameters

Name In Required Type Description
custom_field_id path required string

Custom field ID

employment_id path required string

Employment ID

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/custom-fields/{custom_field_id}/values/{employment_id}

Employmentcontracts 2 endpoints

GET /v1/employment-contracts

Get the employment contract history (list of all contracts active or not) for a given employment.

operationId: EmploymentContracts_getHistory

Parameters

Name In Required Type Description
employment_id query required string

Employment ID

Responses

200

Success

401

Unauthorized

403

Forbidden

404

Not Found

422

Unprocessable Entity

GET /v1/employment-contracts
GET /v1/employment-contracts/{employment_id}/pending-changes

Get all the pending changes (waiting for aproval or signature) for the employment contract.

operationId: EmploymentContracts_getPendingChanges

Parameters

Name In Required Type Description
employment_id path required string

Employment ID

Responses

200

Success

401

Unauthorized

403

Forbidden

404

Not Found

422

Unprocessable Entity

GET /v1/employment-contracts/{employment_id}/pending-changes

Employments 2 endpoints

GET /v1/employments

Lists all employments, except for the deleted ones.

This endpoint requires and returns country-specific data. The exact required and returned fields will
vary depending on which country the employment is in. To see the list of parameters for each country,
see the Show form schema endpoint under the Countries category.

Please note that the compliance requirements for each country are subject to change according to local
laws. Given its continual updates, using Remote’s json-schema-form should be considered in order to avoid
compliance issues and to have the latest version of a country requirements.

If you are using this endpoint to build an integration, make sure you are dynamically collecting or
displaying the latest parameters for each country by querying the “Show form schema” endpoint.

For more information on JSON Schemas, see the How JSON Schemas work documentation.

To learn how you can dynamically generate forms to display in your UI, see the documentation for
the json-schema-form tool.

operationId: Employments_listAll

Parameters

Name In Required Type Description
company_id query optional string

Company ID

email query optional string

Filters the results by employments whose login email matches the value

status query optional string

Filters the results by employments whose status matches the value

page query optional integer

Starts fetching records after the given page

page_size query optional integer

Change the amount of records returned per page, defaults to 20, limited to 100

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/employments
GET /v1/employments/{employment_id}

Shows all the information of an employment.

This endpoint requires and returns country-specific data. The exact required and returned fields will
vary depending on which country the employment is in. To see the list of parameters for each country,
see the Show form schema endpoint under the Countries category.

Please note that the compliance requirements for each country are subject to change according to local
laws. Given its continual updates, using Remote’s json-schema-form should be considered in order to avoid
compliance issues and to have the latest version of a country requirements.

If you are using this endpoint to build an integration, make sure you are dynamically collecting or
displaying the latest parameters for each country by querying the “Show form schema” endpoint.

For more information on JSON Schemas, see the How JSON Schemas work documentation.

To learn how you can dynamically generate forms to display in your UI, see the documentation for
the json-schema-form tool.

operationId: Employments_getEmploymentInfo

Parameters

Name In Required Type Description
employment_id path required string

Employment ID

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/employments/{employment_id}

Expenses 3 endpoints

GET /v1/expenses

Lists all expenses records

operationId: Expenses_listRecords

Parameters

Name In Required Type Description
page query optional integer

Starts fetching records after the given page

page_size query optional integer

Change the amount of records returned per page, defaults to 20, limited to 100

Responses

201

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/expenses
GET /v1/expenses/{expense_id}/receipts/{receipt_id}

Download a receipt by id.

operationId: Expenses_downloadReceiptById

Parameters

Name In Required Type Description
expense_id path required string

The expense ID

receipt_id path required string

The receipt ID

Responses

200

Success

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

422

Unprocessable Entity

429

Unprocessable Entity

500

Internal Server Error

GET /v1/expenses/{expense_id}/receipts/{receipt_id}
GET /v1/expenses/{id}

Shows a single expense record

operationId: Expenses_showRecord

Parameters

Name In Required Type Description
id path required string

Expense ID

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/expenses/{id}

Files 1 endpoints

GET /v1/files/{id}

Downloads a file.

Please contact api-support@remote.com to request access to this endpoint.

operationId: Files_downloadFile

Parameters

Name In Required Type Description
id path required string

File ID

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/files/{id}

Identity 1 endpoints

GET /v1/identity/current

Shows information about the entities that can be controlled by the current auth token.

operationId: Identity_getTokenInfo

Responses

201

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/identity/current

Identityverification 1 endpoints

GET /v1/identity-verification/{employment_id}

Gets necessary information to perform the identity verification of an employee.

operationId: IdentityVerification_getEmploymentProfile

Parameters

Name In Required Type Description
employment_id path required string

Employment ID

Responses

201

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/identity-verification/{employment_id}

Incentives 2 endpoints

GET /v1/incentives

Lists all Incentives of a company

operationId: Incentives_listAll

Parameters

Name In Required Type Description
employment_id query optional string

Filter by Employment ID

status query optional string

Filter by Incentive status

recurring_incentive_id query optional string

Filter by Recurring Incentive id

page query optional integer

Starts fetching records after the given page

page_size query optional integer

Change the amount of records returned per page, defaults to 20, limited to 100

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/incentives
GET /v1/incentives/{id}

Show an Incentive’s details

operationId: Incentives_showDetails

Parameters

Name In Required Type Description
id path required string

Incentive ID

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/incentives/{id}

Offboarding 2 endpoints

GET /v1/offboardings

Lists Offboarding requests.

operationId: Offboarding_listRequests

Parameters

Name In Required Type Description
employment_id query optional string

Filter by Employment ID

type query optional string

Filter by offboarding type

include_confidential query optional string

By default, the results do not include confidential termination requests.
Send include_confidential=true to include confidential requests in the response.

page query optional integer

Starts fetching records after the given page

page_size query optional integer

Change the amount of records returned per page, defaults to 20, limited to 100

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/offboardings
GET /v1/offboardings/{id}

Shows an Offboarding request.

operationId: Offboarding_showRequest

Parameters

Name In Required Type Description
id path required string

Offboarding request ID

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/offboardings/{id}

Payslips 3 endpoints

GET /v1/payslips

Lists all payslips belonging to a company. Can also filter for a single employment belonging
to that company.

operationId: Payslips_listAll

Parameters

Name In Required Type Description
employment_id query optional string

Employment ID

start_date query optional string

Filters by payslips issued_at field, after or on the same day than the given date

end_date query optional string

Filters by payslips issued_at field, before or or the same day than the given date

expected_payout_start_date query optional string

Filters by payslips expected_payout_date field, after or on the same day than the given date

expected_payout_end_date query optional string

Filters by payslips expected_payout_date field, before or or the same day than the given date

page query optional integer

Starts fetching records after the given page

page_size query optional integer

Change the amount of records returned per page, defaults to 20, limited to 100

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/payslips
GET /v1/payslips/{id}

Given an ID, shows a payslip.

Please contact api-support@remote.com to request access to this endpoint.

operationId: Payslips_showPayslip

Parameters

Name In Required Type Description
id path required string

Payslip ID

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/payslips/{id}
GET /v1/payslips/{payslip_id}/pdf

Given a Payslip ID, downloads a payslip.
It is important to note that each country has a different payslip format and they are not authored by Remote.

operationId: Payslips_downloadPdf

Parameters

Name In Required Type Description
payslip_id path required string

Payslip ID

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/payslips/{payslip_id}/pdf

Recurringincentives 1 endpoints

GET /v1/incentives/recurring

List all Recurring Incentives of a company.

operationId: RecurringIncentives_listIncentives

Parameters

Name In Required Type Description
status query optional string

Filter by recurring incentive status: active or deactive.

type query optional string

Filter by recurring incentive type.

note query optional string

Filter by recurring incentives that contain the value in their notes.

page query optional integer

Starts fetching records after the given page

page_size query optional integer

Change the amount of records returned per page, defaults to 20, limited to 100

Responses

201

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Too many requests

GET /v1/incentives/recurring

Resignation 1 endpoints

GET /v1/resignations/{employment_request_id}/resignation-letter

Downloads a resignation letter from an employment request.

operationId: Resignation_downloadLetter

Parameters

Name In Required Type Description
employment_request_id path required string

The employment request ID

Responses

200

Success

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

422

Unprocessable Entity

429

Unprocessable Entity

500

Internal Server Error

GET /v1/resignations/{employment_request_id}/resignation-letter

Timeoff 3 endpoints

GET /v1/timeoff

Lists all Time Off records.

operationId: TimeOff_listRecords

Parameters

Name In Required Type Description
employment_id query optional string

Only show time off for a specific employment

timeoff_type query optional

Filter time off by its type

status query optional

Filter time off by its status

order query optional string

Sort order

sort_by query optional string

Field to sort by

page query optional integer

Starts fetching records after the given page

page_size query optional integer

Number of items per page

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Unprocessable Entity

GET /v1/timeoff
GET /v1/timeoff/types

Lists all time off types that can be used for the timeoff_type parameter

operationId: TimeOff_listTypes

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Unprocessable Entity

GET /v1/timeoff/types
GET /v1/timeoff/{id}

Shows a single Time Off record

operationId: TimeOff_getRecord

Parameters

Name In Required Type Description
id path required string

Timeoff ID

Responses

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

422

Unprocessable Entity

429

Unprocessable Entity

GET /v1/timeoff/{id}

Timeoffbalances 1 endpoints

GET /v1/timeoff-balances/{employment_id}

Shows the time off balance for the given employment_id.

Please note, this endpoint is only supported for employments in certain countries.
For countries where it’s not supported, this endpoint will respond with a 404 Not Found.

operationId: TimeOffBalances_showBalance

Parameters

Name In Required Type Description
employment_id path required string

Employment ID for which to show the time off balance

Responses

200

Success

400

Bad Request

401

Unauthorized

404

TimeoffBalanceNotFoundResponse

422

Unprocessable Entity

429

Too many requests

GET /v1/timeoff-balances/{employment_id}

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
}