---
title: "Create a Simple reward"
method: POST
path: "/rewards/actions/create-simple-reward"
tags: ["Rewards"]
---

# Create a Simple reward

`POST /rewards/actions/create-simple-reward`

Create a new simple reward.
⚠️ Action methods are available only in Enterprise interface.

## Headers

- `Accept-Language` string

## Request body

- object
  - `simple_reward` SimpleReward, required — Simple Reward structure.
    - `reward_id` string — The unique ID of the simple reward.
    - `code` string, required — Unique code of the simple reward. The unique code serves as an identifier for specific rewards, allowing for easy recognition and application during transactions. For instance, a customer might enter the code BIRTHDAY20 to receive a 20% discount in celebration of their birthday. This system simplifies the process of tracking and redeeming rewards, ensuring that customers can easily access their benefits while businesses can efficiently manage promotional offers. ⚠️ The special characters `|` and `-` are not allowed in the code.
    - `names` TextTranslation[], required — List of reward name translations.
      - `language_code` string — The unique ID of the language code by ISO 639-1.
      - `text` string — This is universal parameter that contain text in the defined language.
    - `notes` TextTranslation[] — List of note translations.
      - `language_code` string — The unique ID of the language code by ISO 639-1.
      - `text` string — This is universal parameter that contain text in the defined language.
    - `subtitles` TextTranslation[] — List of reward subtitle translations.
      - `language_code` string — The unique ID of the language code by ISO 639-1.
      - `text` string — This is universal parameter that contain text in the defined language.
    - `points_cost` number, float — Specifies the number of loyalty points required for voucher redemption.
    - `valid_date_from` string — Start date of the reward's validity period in ISO-8601 format (`YYYY-MM-DD`).
    - `valid_date_to` string — End date of the reward's validity period in ISO-8601 format (`YYYY-MM-DD`).
    - `reward_type_id` string, required — Indicates the unique ID for the reward type, defining its behavior. Current supported types: *Product with fixed discount / Product with a discount in percentages / Product for discounted price*. See the [GET/reward−types](https://carecloud.readme.io/reference/getrewardtypes) endpoint for additional information.
    - `reward_type_value` number, float, required — Represents the discount amount, which can be either a percentage, a fixed currency value, or the final price after applying the reward.
    - `maximum_discount_value` number, float — Represents the maximum discount possible if `Product with a discount in percentages` reward type is selected. If not set, the maximum is not limited.
    - `minimum_purchase_value` number, float — Specifies the minimum total purchase amount required to apply the reward's discount. If not set, the reward can be applied to any purchase regardless of the total price.
    - `stores` StoreID[] — List of the stores where the reward can be claimed.
      - `store_id` string, required — The unique ID of the store in CareCloud. [GET /stores](https://carecloud.readme.io/reference/getstores)
    - `segments` SegmentID[] — List of the segments for witch the reward can be applied.
      - `segment_id` string, required — The unique ID of the segment. [GET /segments](https://carecloud.readme.io/reference/getsegments)
    - `priority` 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 — Priority of the reward. *1 is the highest priority*
    - `image_urls` UrlLanguageVariant[] — List of URLs linking to reward images in the chosen language.
      - `language_code` string — The unique ID of the language code by ISO 639-1.
      - `url` string — URL address that will link to content in the specific language variant
    - `reward_external_urls` UrlLanguageVariant[] — A list of URLs and their corresponding language versions, linking to external resources and information about rewards.
      - `language_code` string — The unique ID of the language code by ISO 639-1.
      - `url` string — URL address that will link to content in the specific language variant
    - `tags` Tag[] — List of the tags assigned to the reward. Tags are used for easier identification of selected rewards. The list of tags for rewards is available at the endpoint [GET /rewards/tags](https://carecloud.readme.io/reference/getsubrewardtags).
      - `tag_id` string — The unique ID of the tag.
      - `name` string — Name of the tag in language from the HTTP header.
      - `text_id` string — Text ID of the tag.
      - `state` 0 | 1 | 2 — State of the tag. *Possible values are: 0 - deleted / 1 - active / 2 - non active*
      - `last_change` string — Date and time of the last change. *(YYYY-MM-DD HH:MM:SS)*
    - `global_reward` true | false, required — The parameter describes if the reward is available for all CareCloud partners or only for selected one. If the reward is for selected partner only, the parameter partner_id is required in the request. Possible values: - `true` The reward is global and it is available for all partners in CareCloud. - `false` The reward is available only for the specified partner from the parameter partner_id.
    - `partner_id` string — The unique ID of the partner. Partner represents business, company, or organization in the CareCloud domain. CareCloud allows single partner setup or multiple partner setup depending on the business setup. [GET /partners](https://carecloud.readme.io/reference/getpartners)
    - `voucher_validity` 'interval' | 'end_of_time_unit' | 'reward_validity', required — This parameter determines the type of validity period applied to the voucher. It can be one of the following values: - `interval` The voucher is valid for a specific time interval after issuance. If you use this value, the parameter voucher_validity_value is mandatory and you need to add there an interval. For example *7 days, 1 year, 10 weeks, 30 minutes, etc* - `end_of_time_unit` The voucher is valid until the end of a specific time unit, such as the end of a day, week, or month. If you use this value, the parameter voucher_validity_value is mandatory and you need to add there an interval. Possible values: *end_of_the_day / end_of_week / end_of_month / end_of_year* - `reward_validity` The voucher's validity is linked to the validity period of the associated reward. In this case, there is no other value needs to be set and parameter `voucher_validity_value` is not mandatory and has no effect.
    - `voucher_validity_value` string — This parameter determines the value of validity period applied to the voucher. Depending on the `voucher_validity` it can have multiple values. For a list of possible values, please read the description of `voucher_valdity` parameter.
    - `voucher_code_generation_preference` string, required — This parameter controls the method of generating voucher codes within the system. It can be set to one of two values: - `A` Automatically generate voucher codes. When 'A' is selected, the system will generate voucher codes automatically based on predefined rules and algorithms. - `M` Manually import voucher codes. When 'M' is chosen, voucher codes will need to be manually inputted into the system by an administrator or user.
    - `is_portable` true | false — This parameter determines whether the voucher can be transferred to a customer other than the one it was originally assigned to. The parameter can be set to: - `true` The voucher is portable and can be transferred to a different customer. This allows for flexibility in reward management, such as gifting or transferring voucher between customers. - `false` The voucher is not portable and remains exclusive to the initially assigned customer. This ensures that the voucher stays fixed and cannot be moved to another customer.
    - `state` 1 | 2, required — State of the simple reward. *Possible values are: 1 - active / 2 - non active *

## Response `201`

Created

- object
  - `data` object
    - `reward_id` string — The unique ID of the simple reward.

## Other responses

- `400` — Bad input parameter. The response body's `error.error_data.invalid_params[]` array lists the parameters that caused the failure, each carrying a `reason` code. See the `BadRequestErrorBody` schema for the generic reason taxonomy. Operations with domain-specific business rules document additional reasons at the operation level.
- `401` — The client has invalid credentials or auth token.
- `403` — The client does not exist or the client tried to access an unauthorized property or resource.
- `404` — The resource was not found.
- `405` — The resource does not support the specified HTTP method.
- `429` — Too many requests - more than the resource limit.
- `500` — Server is not working as expected.
- `503` — Temporary state when the service is temporarily unavailable, overloaded or there is a maintenance window.

---

[API](https://skmtc.net/crmcarecloud/apis/rest-api-reference.md) · [All operations](https://skmtc.net/crmcarecloud/apis/rest-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/crmcarecloud/rest-api-reference/revisions/329c06dbf8d9/schema)
