---
title: "Create loyalty tiers"
method: POST
path: "/v1/loyalties/{campaignId}/tiers"
tags: ["Loyalties"]
---

# Create loyalty tiers

`POST /v1/loyalties/{campaignId}/tiers`

Creates loyalty tiers for desired campaign.

## Request body

- object[] — Request body schema for **POST** `v1/loyalties/{campaignId}/tiers`
  - `name` string, required — Loyalty Tier name.
  - `earning_rules` object — Contains a list of earning rule IDs and their points mapping for the given earning rule.
  - `rewards` object — Contains a list of reward IDs and their points mapping for the given reward.
  - `points` object, required — Defines range of loyalty tier in points.
    - `from` integer — Bottom points threshold value.
    - `to` integer — Top points threshold value.
  - `metadata` object — The metadata object stores all custom attributes assigned to the loyalty tier. A set of key/value pairs that you can attach to a loyalty tier object. It can be useful for storing additional information about the loyalty tier in a structured format.

## Response `200`

Returns created loyalty tiers.

- LoyaltyTier[] — Response body schema for **POST** `v1/loyalties/{campaignId}/tiers`.
  - `name` string, required — Loyalty Tier name.
  - `earning_rules` object — Contains a list of earning rule IDs and their points mapping for the given earning rule.
  - `rewards` object — Contains a list of reward IDs and their points mapping for the given reward.
  - `points` object, required — Defines range of loyalty tier in points.
    - `from` integer — Bottom points threshold value.
    - `to` integer — Top points threshold value.
  - `id` string, required — Unique loyalty tier ID.
  - `campaign_id` string, required — Unique parent campaign ID.
  - `metadata` object, nullable, required — The metadata object stores all custom attributes assigned to the loyalty tier. A set of key/value pairs that you can attach to a loyalty tier object. It can be useful for storing additional information about the loyalty tier in a structured format.
  - `created_at` string, date-time, required — Timestamp representing the date and time when the loyalty tier was created. The value is shown in the ISO 8601 format.
  - `updated_at` string, date-time, nullable — Timestamp representing the date and time when the loyalty tier was updated. The value is shown in the ISO 8601 format.
  - `config` object, required — Defines loyalty tier range in points.
    - `points` object, required — Defines range of loyalty tier in points.
      - `from` integer — Bottom points threshold value.
      - `to` integer — Top points threshold value.
  - `expiration` LoyaltyTierExpiration — Defines loyalty tier expiration date.
    - `customer_id` string, required — Unique customer identifier of the customer making the purchase. The ID is assigned by Voucherify.
    - `campaign_id` string, required — Unique campaign ID, assigned by Voucherify.
    - `tier_id` string, required — Unique tier ID, assigned by Voucherify.
    - `start_date` string — Activation timestamp defines when the loyalty tier starts to be active in ISO 8601 format. Loyalty tier is inactive before this date.
    - `expiration_date` string — Expiration timestamp defines when the loyalty tier expires in ISO 8601 format. Loyalty tier is inactive after this date.
    - `created_at` string, date-time, required — Timestamp representing the date and time when the loyalty tier was created. The value is shown in the ISO 8601 format.
    - `updated_at` string, date-time — Timestamp representing the date and time when the loyalty tier was updated. The value is shown in the ISO 8601 format.
  - `object` 'loyalty_tier', required — The type of the object represented by JSON. This object stores information about the loyalty.

---

[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/revisions/4982266e0494/schema)
