---
title: "Create employment"
method: POST
path: "/v1/sandbox/employments"
tags: ["Sandbox"]
---

# Create employment

`POST /v1/sandbox/employments`

Creates an employment without provisional_start_date validation.

This endpoint is only available in Sandbox and allows creating employments which
`provisional_start_date` is in the past. This is especially helpful for:
  * Testing the Timeoff Balance endpoints
  * Testing the Offboarding endpoints
  * Testing features around probation periods

This endpoint will respond with a 404 outside of the Sandbox environment.

For creating an employment's parameters outside of testing purposes, use [this
Employment create endpoint](#operation/post_create_employment)

## Headers

- `Authorization` string, required

## Request body

- EmploymentCreateParams — Description of the basic required and onboarding tasks params to create an employment. You do not need to include all onboarding tasks when creating or updating an employment.
  - `basic_information` object, required — Employment basic information. As its properties may vary depending on the country, you must query the [Show form schema](#tag/Countries/operation/get_show_form_country) endpoint passing the country code and `employment_basic_information` as path parameters.
  - `bill_to_legal_entity_id` string — Id of the legal entity that should be billed for the employment. If omitted, falls back to `engaged_by_legal_entity_id`. For EOR and Contractor employments this may differ from `engaged_by_legal_entity_id`. For Global Payroll and Direct (HRIS) employments it must match `engaged_by_legal_entity_id`.
  - `company_id` string — This optional field is deprecated.
  - `country_code` string, required — The ISO 3166-1 3-letter country code where the employee will be based (e.g., `AUS`, `GBR`, `USA`).
  - `engaged_by_entity_slug` string — Deprecated alias for `engaged_by_legal_entity_id`. Use `engaged_by_legal_entity_id` instead.
  - `engaged_by_legal_entity_id` string — Id of the legal entity that engages the employee or contractor. Required for Global Payroll employees. For EOR and Contractor employments this may differ from `bill_to_legal_entity_id`. For Global Payroll and Direct (HRIS) employments it must match `bill_to_legal_entity_id`.
  - `external_id` string — A unique reference code for the employment record in a non-Remote system. This optional field links to external data sources. If not provided, it defaults to `null`. While uniqueness is recommended, it is not strictly enforced within Remote's system.
  - `type` 'employee' | 'contractor' | 'global_payroll_employee' | 'hris' — If not provided, it will default to `employee`.

## Response `201`

Success

- EmploymentCreationResponse
  - `data` object
    - `employment` EmploymentBasicResponse — A lightweight employment representation returned after creation. Contains basic identification, country, and status fields but not the full onboarding details or country-specific form data.
      - `basic_information` object — Employment basic information. As its properties may vary depending on the country, you must query the [Show form schema](#tag/Countries/operation/get_show_form_country) endpoint passing the country code and `basic_information` as path parameters.
      - `company_id` string — The unique identifier (UUID) of the company.
      - `country_code` string — The ISO 3166-1 3-letter country code for this employment.
      - `created_at` string, date-time — When this employment was created.
      - `employment_lifecycle_stage` 'employment_creation' | 'employee_self_enrollment' | 'right_to_work_check' | 'contract_signing' | 'remote_enrollment' | 'onboarded' | 'offboarded' — The stage of employment lifecycle. When it's `onboarded` means the employee is ready to commence or has already commenced.
      - `full_name` string — The employee's full name.
      - `id` string, uuid — Identifier of the employment being terminated.
      - `job_title` string, nullable — The employee's job title. May be null if not yet set.
      - `login_email` string, email — The email the employee uses to log in to Remote.
      - `personal_email` string, email — The employee's personal email address.
      - `provisional_start_date` string, date — Required for employees, optional for contractors
      - `type` 'employee' | 'contractor' — The type of employment.
      - `updated_at` string, date-time — When this employment was last updated.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found
- `422` — Unprocessable Entity
- `429` — Too many requests

---

[API](https://skmtc.net/remote-com/apis/remote.md) · [All operations](https://skmtc.net/remote-com/apis/remote/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/remote-com/remote/revisions/7e6a0c61ac82/schema)
