---
title: "Create Contract Amendment"
method: POST
path: "/v1/contract-amendments"
tags: ["Contract Amendments"]
---

# Create Contract Amendment

`POST /v1/contract-amendments`

## Request

- Base URL: `https://gateway.remote.com`
- URL: `https://gateway.remote.com/v1/contract-amendments`
- Auth: one of:
  - OAuth 2
    - Authorization code: `/auth/oauth2/authorize`
    - Token URL: `/auth/oauth2/token` scopes: `https://gateway.remote.com/company.manage`
  - OAuth 2
    - Authorization code: `/auth/oauth2/authorize`
    - Token URL: `/auth/oauth2/token` scopes: `contract_amendment:write`
  - OAuth 2
    - Authorization code: `/auth/oauth2/authorize`
    - Token URL: `/auth/oauth2/token` scopes: `all:write`
  - OAuth 2
    - Client credentials
    - Token URL: `/auth/oauth2/token` scopes: `contract_amendment:write`
  - OAuth 2
    - Client credentials
    - Token URL: `/auth/oauth2/token` scopes: `all:write`
  - HTTP bearer

Creates a Contract Amendment request.

This endpoint requires and returns country-specific data. The exact required and returned fields will
vary depending on which country the employment is in. To see the list of parameters for each country,
see the **Show form schema** endpoint under the [Contract Amendments](#tag/Contract-Amendments) category.

Please note that the compliance requirements for each country are subject to change according to local
laws. Given its continual updates, using Remote's [json-schema-form](https://developer.remote.com/docs/how-json-schemas-work) should be considered in order to avoid
compliance issues and to have the latest version of a country requirements.

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

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

To learn how you can dynamically generate forms to display in your UI, see the documentation for
the [json-schema-form](https://developer.remote.com/docs/how-json-schemas-work) tool.

## Authentication

This endpoint accepts any one of the following token types:

- **Company-scoped access token** (`OAuth2AuthorizationCode`) — obtained by a company manager through the Authorization Code flow or the Refresh Token flow. See [Authentication for partners](https://developer.remote.com/docs/authentication-for-partners).
- **Company-scoped access token (assertion)** (`OAuth2CompanyManagerAssertion`) — obtained through the `urn:ietf:params:oauth:grant-type:jwt-bearer` grant for a company manager. See [OAuth Assertion](https://developer.remote.com/docs/authorization-method-oauth-assertion).
- **Customer API token** (`CustomerAPIToken`) — generated by the customer on their Integration Settings page, with the scopes they choose there. See [Authorization for customers](https://developer.remote.com/docs/authorization-for-customers).

## Scopes

Any one of the scopes in a token type's row is enough. `all:write` works too.

| Token type | Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|---|
| Company-scoped access token | Manage employments (`employments`) | - | Manage contract amendments (`contract_amendment:write`) |
| Company-scoped access token (assertion) | Manage employments (`employments`) | - | Manage contract amendments (`contract_amendment:write`) |
| Customer API token | Manage employments (`employments`) | - | Manage contract amendments (`contract_amendment:write`) |

## Query parameters

- `json_schema_version` union
  - integer: Specific version number
  - 'latest': Use latest version

## Headers

- `Authorization` string, required

## Request body

- CreateContractAmendmentParams
  - `amendment_contract_id` string, required: The contract ID of the contract that needs to be amended.
  - `contract_amendment` object, required: Contract amendment informations. As its properties may vary depending on the country, you must query the [Show form schema](#tag/Contract-Amendments/operation/post_show_form_contract_amendment_schema) endpoint passing the country code, `contract_amendment` and the employment ID as request body.
  - `employment_id` string, required: The employment ID that is related to the contract amendment request.

## Response `200`

Success

- ContractAmendmentResponse: Contract Amendment response
  - `data` object
    - `contract_amendment` ContractAmendment, required: A full contract amendment record, including the requested changes with their previous and current values.
      - `amendment_contract_id` string, nullable, required: The unique identifier of the contract being amended. Null if no specific contract was targeted.
      - `changes` object, required: Describes all the changes requested for the contract and contract details with all their previous and current values.
      - `employment_id` string, required: The unique identifier (UUID) of the employment.
      - `id` string, required: The unique identifier (UUID) of the contract amendment.
      - `request_details` RequestDetails, required: The details of the requested changes for the contract amendment.
        - `additional_comments` string, nullable
        - `effective_date` string, date
        - `reason_for_change` 'annual_pay_adjustment' | 'country_rule_change' | 'error_correction' | 'job_change_reevaluation' | 'promotion' | 'other', nullable
        - `reason_for_change_description` string, nullable: This is filled when the reason_for_change is 'other'.
        - `salary_decrease_details` SalaryDecreaseDetails, nullable: The details of the salary decrease request if there is one
          - `salary_decrease_reason` 'change_in_working_hours' | 'trade_salary_for_equity' | 'error_in_initial_salary' | 'role_change_or_demotion' | 'compensation_restructure' | 'other'
          - `salary_decrease_reason_description` string, nullable
          - `was_employee_informed` string
      - `requested_by` string, required: The unique identifier (UUID) of the user who submitted the amendment.
      - `status` 'submitted' | 'in_review' | 'done' | 'canceled' | 'deleted', required: The current status of a contract amendment request. - `submitted`: The amendment has been submitted and is awaiting Remote's review. - `in_review`: Remote is reviewing the amendment for compliance and feasibility. - `done`: The amendment has been approved and applied to the contract. - `canceled`: The amendment request was canceled before completion. - `deleted`: The amendment request was deleted.
      - `submitted_at` string, datetime, required: The timestamp when the amendment was submitted.
      - `zendesk_ticket_url` string, nullable, required: A link to the support ticket associated with this amendment, if one was created. Null otherwise.

## Other responses

- `401`: Unauthorized
- `404`: Not Found
- `422`: Unprocessable Entity

---

[API](https://skmtc.dev/remote-com/apis/contracts.md) - [All operations](https://skmtc.dev/remote-com/apis/contracts/llms.txt) - [OpenAPI document](https://skmtc.dev/remote-com/apis/contracts/revisions/a2ac13920580?raw)
