---
title: "Create a new benefit"
method: POST
path: "/benefits"
tags: ["Benefits"]
---

# Create a new benefit

`POST /benefits`

## Request body

- BenefitSubscriptionInput
  - `beneficiary` object, required
    - `name` string, required
    - `email` string, email, required
  - `country` string, required
  - `city` string, required
  - `service` string, required
  - `monthlyFee` number, required — Monetary value in EUR
  - `subscribedAtDate` string, date, required
  - `cancelledAtDate` string, date

## Response `201`

Benefit created successfully

- BenefitSubscription
  - `id` string, required
  - `service` object, required
    - `name` string, required
    - `provider` string, required
  - `beneficiary` object, required
    - `name` string, required
    - `email` string, email, required
  - `category` 'HEALTHCARE' | 'SPORT_WELLNESS' | 'LUNCH_FOOD' | 'CULTURE_RECREATION', required
  - `country` string, required
  - `city` string, required
  - `monthlyFee` number, required — Monetary value in EUR
  - `subscribedAtDate` string, date, required
  - `cancelledAtDate` string, date

## Other responses

- `400` — Invalid benefit subscription input request body @see {@link BenefitSubscriptionInput}
- `409` — Benefit already exists for this employee and service
- `500` — An internal server error occurred.
- `503` — The service is temporarily unavailable. Maybe there is maintenance?

## Changes

- **2025-01-17** `4573748c6338` — 4 info
  - added the optional property `errorGUID` to the response with the `400` status
  - added the optional property `errorGUID` to the response with the `409` status
  - added the optional property `errorGUID` to the response with the `500` status
  - added the optional property `errorGUID` to the response with the `503` status
- **2025-01-09** `a59b7402c514` — 4 breaking
  - the response property `code` became optional for the status `400`
  - the response property `code` became optional for the status `409`
  - the response property `code` became optional for the status `500`
  - the response property `code` became optional for the status `503`
- **2025-01-09** `29074eeb2bb5` — 4 info
  - added the media type `application/json` for the response with the status `400`
  - added the non-success response with the status `409`
  - added the non-success response with the status `500`
  - added the non-success response with the status `503`
- **2025-01-07** `659ddbe31a58` — 1 breaking, 3 info
  - removed the media type `application/json` for the response with the status `400`
  - removed the non-success response with the status `409`
  - removed the non-success response with the status `500`
  - removed the non-success response with the status `503`

[Change history](https://skmtc.dev/ducin-public/apis/itcorpo-api/changes/benefits/post.md)

---

[API](https://skmtc.dev/ducin-public/apis/itcorpo-api.md) · [All operations](https://skmtc.dev/ducin-public/apis/itcorpo-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ducin-public/itcorpo-api/revisions/80675117301b/schema)
