---
title: "Create a promotional entitlements"
method: POST
path: "/api/v1/customers/{id}/promotional-entitlements"
tags: ["Promotional Entitlements"]
---

# Create a promotional entitlements

`POST /api/v1/customers/{id}/promotional-entitlements`

Grants promotional entitlements to a customer, providing feature access outside their subscription. Entitlements can be time-limited or permanent.

## Path parameters

- `id` string, required

## Headers

- `X-ACCOUNT-ID` string
- `X-ENVIRONMENT-ID` string

## Request body

- GrantPromotionalEntitlementsRequestDto — Grant promotional entitlements to a customer for a specified period.
  - `promotionalEntitlements` object[], required — Promotional entitlements to grant
    - `featureId` string, required — The unique identifier of the entitlement feature
    - `usageLimit` integer, nullable, required — The usage limit of the entitlement
    - `hasSoftLimit` boolean, nullable, required — Whether the entitlement has a soft limit
    - `hasUnlimitedUsage` boolean, nullable, required — Whether the entitlement has an unlimited usage
    - `customEndDate` string, date-time, nullable, required — The custom end date of the promotional entitlement
    - `period` '1 week' | '1 month' | '6 month' | '1 year' | 'lifetime' | 'custom', required — The grant period of the promotional entitlement
    - `isVisible` boolean, nullable, required — Whether the entitlement is visible
    - `yearlyResetPeriodConfiguration` object, nullable, required — The yearly reset period configuration of the entitlement, defined when reset period is yearly
      - `accordingTo` 'SubscriptionStart', required — Reset anchor (SubscriptionStart)
    - `monthlyResetPeriodConfiguration` object, nullable, required — The monthly reset period configuration of the entitlement, defined when reset period is monthly
      - `accordingTo` 'SubscriptionStart' | 'StartOfTheMonth', required — Reset anchor (SubscriptionStart or StartOfTheMonth)
    - `weeklyResetPeriodConfiguration` object, nullable, required — The weekly reset period configuration of the entitlement, defined when reset period is weekly
      - `accordingTo` 'SubscriptionStart' | 'EverySunday' | 'EveryMonday' | 'EveryTuesday' | 'EveryWednesday' | 'EveryThursday' | 'EveryFriday' | 'EverySaturday', required — Reset anchor (SubscriptionStart or specific day)
    - `resetPeriod` 'YEAR' | 'MONTH' | 'WEEK' | 'DAY' | 'HOUR', nullable, required — The reset period of the entitlement
    - `enumValues` string[], nullable, required — The enum values of the entitlement

## Response `201`

The granted promotional entitlement objects.

- PromotionalEntitlementsResponseDto — Response object
  - `data` object[], required
    - `id` string, uuid, required — Unique identifier for the entity
    - `description` string, nullable, required — The description of the entitlement
    - `featureId` string, uuid, required — The unique identifier of the entitlement feature
    - `createdAt` string, date-time, required — Timestamp of when the record was created
    - `updatedAt` string, date-time, required — Timestamp of when the record was last updated
    - `startDate` string, date-time, required — The start date of the entitlement
    - `endDate` string, date-time, nullable, required — The end date of the promotional entitlement
    - `isVisible` boolean, required — Whether the entitlement is visible
    - `usageLimit` number, nullable, required — The usage limit of the entitlement
    - `hasSoftLimit` boolean, nullable, required — Whether the entitlement has a soft limit
    - `hasUnlimitedUsage` boolean, nullable, required — Whether the entitlement has an unlimited usage
    - `status` 'Active' | 'Expired' | 'Paused', required — The status of the entitlement
    - `period` '1 week' | '1 month' | '6 month' | '1 year' | 'lifetime' | 'custom', required — The grant period of the promotional entitlement
    - `resetPeriod` 'YEAR' | 'MONTH' | 'WEEK' | 'DAY' | 'HOUR', nullable, required — The reset period of the entitlement
    - `resetPeriodConfiguration` union, required — The reset period configuration of the entitlement
      - object — Yearly reset configuration
        - `accordingTo` 'SubscriptionStart', required — Reset anchor (SubscriptionStart)
      - object — Monthly reset configuration
        - `accordingTo` 'SubscriptionStart' | 'StartOfTheMonth', required — Reset anchor (SubscriptionStart or StartOfTheMonth)
      - object — Weekly reset configuration
        - `accordingTo` 'SubscriptionStart' | 'EverySunday' | 'EveryMonday' | 'EveryTuesday' | 'EveryWednesday' | 'EveryThursday' | 'EveryFriday' | 'EverySaturday', required — Reset anchor (SubscriptionStart or specific day)
    - `environmentId` string, uuid, required — The unique identifier for the environment
    - `enumValues` string[], nullable, required — The enum values of the entitlement
    - `featureGroupIds` string[], nullable, required — Feature group IDs associated with this entitlement

## Other responses

- `400` — bad request.
- `401` — User is not authenticated.
- `403` — User is not allowed to access this resource.
- `409` — Promotional Entitlements conflict error.
- `429` — Too many requests.

---

[API](https://skmtc.net/stiggio/apis/stigg-api.md) · [All operations](https://skmtc.net/stiggio/apis/stigg-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/stiggio/stigg-api/revisions/3e2c8cfcd035/schema)
