---
title: "Create Reward"
method: POST
path: "/v1/rewards"
tags: ["Rewards"]
---

# Create Reward

`POST /v1/rewards`

Create a new reward.

## Request body

- union — Request body schema for **POST** `v1/rewards`.
  - RewardsCreateRequestBodyDigital — Request body schema for creating a digital reward using **POST** `v1/rewards`.
    - `name` string — Reward name.
    - `parameters` RewardsCreateRequestBodyDigitalParameters, required — Configure a digital (CAMPAIGN) reward. These can be in the form of discount coupons, gift card credits, or loyalty point credits.
      - `campaign` union, required — Objects stores information about the campaign related to the reward.
        - RewardsCreateRequestBodyDigitalParametersLoyaltyProgram — Configure a reward that adds points to a loyalty card. This type of reward is a subset of a Digital (CAMPAIGN) reward.
          - `id` string, required — Assign the reward to the campaign that contains the loyalty cards that will be replenished by the reward. Provide the unique campaign ID, assigned by Voucherify.
          - `balance` integer, required — The incremental points to be added to the current balance on the loyalty card.
        - RewardsCreateRequestBodyDigitalParametersGiftVouchers — Configure a reward that adds cash to a gift card. This type of reward is a subset of a Digital (CAMPAIGN) reward.
          - `id` string, required — Assign the reward to the campaign that contains the gift cards that will be replenished by the reward. Provide the unique campaign ID, assigned by Voucherify.
          - `balance` integer, required — The incremental amount to be added to the current balance on the gift card. The value is multiplied by 100 to represent 2 decimal places. For example `10000 cents` for `$100.00`.
        - RewardsCreateRequestBodyDigitalParametersDiscountCoupons — Configure a reward that provides a discount coupon. This type of reward is a subset of a Digital (CAMPAIGN) reward.
          - `id` string, required — Assign the reward to the campaign that contains the vouchers that will be the source of the reward. Provide the unique campaign ID, assigned by Voucherify.
    - `metadata` object — The metadata object stores all custom attributes assigned to the reward. A set of key/value pairs that you can attach to a reward object. It can be useful for storing additional information about the reward in a structured format.
  - RewardsCreateRequestBodyMaterial — Request body schema to create a material reward using **POST** `v1/rewards`.
    - `name` string — Reward name.
    - `parameters` RewardsCreateRequestBodyMaterialParameters, required — Configure parameters representing products as a (MATERIAL) reward.
      - `product` object, required — Define the product given as a reward.
        - `id` string, required — Unique product ID, assigned by Voucherify, given as a reward.
        - `sku_id` string, nullable — Unique SKU ID, assigned by Voucherify, of the SKU given as a reward.
    - `stock` integer — The number of units of the product that you want to share as a reward. Use this parameter to code a stock-taking logic.
    - `attributes` object — Attributes of a material reward.
      - `image_url` string — HTTPS URL pointing to a .png or .jpg file.
      - `description` string — Description of a material reward.
    - `metadata` object — The metadata object stores all custom attributes assigned to the reward. A set of key/value pairs that you can attach to a reward object. It can be useful for storing additional information about the reward in a structured format.
  - RewardsCreateRequestBodyPayWithPoints — Request body schema for creating a pay with points reward using **POST** `v1/rewards`.
    - `name` string — Reward name.
    - `parameters` RewardsCreateRequestBodyPayWithPointsParameters, required — Configure parameters representing a Pay with Points (COIN) reward.
      - `coin` object, required — Define the ratio by mapping the number of loyalty points in `points_ratio` to a predefined cash amount in `exchange_ratio`.
        - `exchange_ratio` string, required — The cash equivalent of the points defined in the `points_ratio` property.
        - `points_ratio` string — The number of loyalty points that will map to the predefined cash amount defined by the `exchange_ratio` property.
    - `metadata` object — The metadata object stores all custom attributes assigned to the reward. A set of key/value pairs that you can attach to a reward object. It can be useful for storing additional information about the reward in a structured format.

## Response `200`

Returns a reward object.

- RewardsCreateResponseBody
  - `id` string, required — Unique reward ID, assigned by Voucherify.
  - `name` string, required — Reward name.
  - `stock` integer, nullable, required — Configurable for **material rewards**. The number of units of the product that you want to share as a reward. Use this parameter to code a stock-taking logic.
  - `redeemed` integer, nullable, required — Defines the number of already invoked (successful) reward redemptions.
  - `attributes` object — These properties are configurable for **material rewards**.
    - `image_url` string — The HTTPS URL pointing to the .png or .jpg file.
    - `description` string — An arbitrary string that you can attach to a material reward.
  - `metadata` object, required — The metadata object stores all custom attributes assigned to the reward. A set of key/value pairs that you can attach to a reward object. It can be useful for storing additional information about the reward in a structured format.
  - `type` 'CAMPAIGN' | 'COIN' | 'MATERIAL', required — Reward type.
  - `parameters` union
    - RewardTypeCampaign
      - `campaign` object, required — Objects stores information about the campaign related to the reward.
        - `id` string, required — Unique campaign ID, assigned by Voucherify.
        - `balance` integer — The number of points to be added to a loyalty card or the amount to be added to the current balance on the gift card. For gift cards, the value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 amount is written as 10000.
        - `type` 'DISCOUNT_COUPONS' | 'GIFT_VOUCHERS' | 'LOYALTY_PROGRAM', required — Campaign type.
    - RewardTypeCoin
      - `coin` object, required — Defines the ratio by mapping the number of loyalty points in points_ratio to a predefined cash amount in exchange_ratio.
        - `exchange_ratio` number, required — The cash equivalent of the points defined in the points_ratio property.
        - `points_ratio` integer — The number of loyalty points that will map to the predefined cash amount defined by the exchange_ratio property.
    - RewardTypeMaterial
      - `product` object, required — Contains information about the product given as a reward.
        - `id` string, required — Unique product ID, assigned by Voucherify.
        - `sku_id` string, nullable — Unique SKU ID, assigned by Voucherify, of the SKU given as a reward.
  - `created_at` string, date-time, required — Timestamp representing the date and time when the reward was created. The value is shown in the ISO 8601 format.
  - `updated_at` string, date-time, nullable, required — Timestamp representing the date and time when the reward was updated. The value is shown in the ISO 8601 format.
  - `object` 'reward', required — The type of the object represented by the JSON. This object stores information about the reward.

---

[API](https://skmtc.net/voucherifyio/apis/voucherify-api-async-actions.md) · [All operations](https://skmtc.net/voucherifyio/apis/voucherify-api-async-actions/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/voucherifyio/voucherify-api-async-actions/versions/4982266e0494/schema)
