---
title: "Upserts employment benefit offers"
method: PUT
path: "/v1/employments/{employment_id}/benefit-offers"
tags: ["Benefit Offers"]
---

# Upserts employment benefit offers

`PUT /v1/employments/{employment_id}/benefit-offers`

## Request

- Base URL: `https://gateway.remote.com`
- URL: `https://gateway.remote.com/v1/employments/{employment_id}/benefit-offers`
- 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: `benefit_offer: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: `benefit_offer:write`
  - OAuth 2
    - Client credentials
    - Token URL: `/auth/oauth2/token` scopes: `all:write`
  - HTTP bearer

## 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 company resources (`company_admin`) | - | Manage benefit offers (`benefit_offer:write`) |
| Company-scoped access token (assertion) | Manage company resources (`company_admin`) | - | Manage benefit offers (`benefit_offer:write`) |
| Customer API token | Manage company resources (`company_admin`) | - | Manage benefit offers (`benefit_offer:write`) |

## Path parameters

- `employment_id` string, uuid, required: A unique identifier in UUID v4 format.

## Query parameters

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

## Request body

- UnifiedEmploymentUpsertBenefitOffersRequest: Upsert benefit offers request. As its properties may vary depending on the employment, you must query the [Show benefit offers schema](#tag/benefits/operation/get_show_benefit_offer) endpoint passing the employment id

## Response `200`

Success

- SuccessResponse: A generic success response returned by operations that don't produce a specific resource (e.g., updates, deletes).
  - `data` object, required
    - `status` string: The result status. Always `"ok"` for successful operations.

## Other responses

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

---

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