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
}
Load more schemas