---
title: "Create a new Store Refresh Popup"
method: POST
path: "/v2/offer"
tags: ["Store Refresh Popups"]
---

# Create a new Store Refresh Popup

`POST /v2/offer`

Creates a Store Refresh popup offer. Triggered when a player refreshes the web store.

## Headers

- `x-publisher-token` string, required

## Request body

- CreateStoreRefreshPopupDto
  - `publisherOfferId` string, required — Store Refresh Popup ID. This is the offer's **External ID** value in the Publisher Dashboard.
  - `name` string, required — Store Refresh Popup name. Must be at least 3 characters.
  - `displayName` string — Store Refresh Popup display name. If not provided, the name will be used.
  - `description` string — Store Refresh Popup description.
  - `type` 'PopUp', required — Offer type - In this case 'PopUp'.
  - `subType` 'StoreRefresh', required — Offer sub type - In this case 'StoreRefresh'.
  - `active` boolean, required — Whether the Store Refresh Popup is active.
  - `priority` integer, required — Priority level of the Store Refresh Popup. The priority starts from 1, where 1 is the highest priority.
  - `offerUiId` string — Offer Design ID generated by Appcharge. This is the design's **ID** value in the Publisher Dashboard. Required if `offerExternalUiId` is not provided.
  - `offerExternalUiId` string — Offer Design ID. This is the design's **External ID** value in the Publisher Dashboard. Required if `offerUiId` is not provided.
  - `segments` string[], required — List of player segments that this Store Refresh Popup applies to.
  - `productsSequence` object[], required — Sequence of products included in the Store Refresh Popup.
    - `index` integer, required — Order of the product sequence in the Store Refresh Popup.
    - `products` object[], required — List of products in the Store Refresh Popup.
      - `publisherProductId` string, required — Product ID.
      - `quantity` integer, required — Product quantity in the Store Refresh Popup.
      - `priority` 'Main' | 'Sub', required — Specifies the display priority of a product within the Store Refresh Popup.
    - `priceInUsdCents` integer, required — Product sequence price in cents. The value must be either 0 (free), or have a minimum 80 cents.
    - `playerAvailability` number — Amount of times the player can purchase the Store Refresh Popup. Must be a minimum of 1.
    - `hidePlayerAvailability` boolean — Whether to hide the availability text based on the `playerAvailability` property value in the web store. If `false`, and if `playerAvailability` is set to `5`, the web store displays `Available 5/5`. When a player purchases the offer, the displayed availability decreases, for example to `Available 4/5`. Set to `true` to hide the availability text in the UI.
  - `displayRule` StoreRefreshDisplayRule, required — Rules that control how often the Store Refresh Popup is displayed.
    - `frequency` integer, required — Number of store refreshes required before the popup is displayed.
    - `cooldownInMinutes` integer, required — Number of minutes that must pass before the popup can be shown again.
  - `schedule` Schedule — Schedule for when the Store Refresh Popup is available.
    - `permanent` boolean, required — Whether the Store Refresh Popup is permanent.
    - `timeFrames` object[], required — Time frame for the scheduled popup. Leave blank if permanent is set to true. If permanent is false, at least 1 time frame is required. When specifying multiple timeFrames, the startTime and endTime of each must not overlap.
      - `startTime` string, date-time, required — Scheduled popup start time.
      - `endTime` string, date-time, required — Scheduled popup end time. Can't be a past date.
      - `notes` string — Notes about the scheduled popup.
  - `productSale` ProductSale — Sale details for the product quantity. The sale will only be applied on the first product.
    - `sale` integer — Sale amount.
    - `type` 'percentage' — Sale type.
  - `priceDiscount` PriceDiscount — Price discount applied to the Store Refresh Popup. Relevant only for paid offers.
    - `discount` integer — Discount amount.
    - `type` 'percentage' — Discount type.
  - `badges` object[] — List of badges associated with the Store Refresh Popup.
    - `publisherBadgeId` string, required — Badge ID.
  - `publisherSectionId` string — The publisher section ID.
  - `publisherTabId` string — Tab ID in the web store.

## Response `201`

Store refresh popup created successfully.

- StoreRefreshPopupDtoResponse
  - `publisherId` string — Publisher ID.
  - `offerId` string — Store Refresh Popup ID.
  - `publisherOfferId` string — Store Refresh Popup ID provided by the publisher. This is the offer's **External ID** value in the Publisher Dashboard.
  - `name` string — Store Refresh Popup name.
  - `displayName` string — Store Refresh Popup display name. If not provided, the name will be used.
  - `description` string — Store Refresh Popup description.
  - `type` string — Offer type.
  - `subType` string — Offer sub type - In this case 'StoreRefresh'.
  - `active` boolean — Whether the Store Refresh Popup is active.
  - `priority` integer — Priority level of the Store Refresh Popup.
  - `offerUi` object — UI configuration for the Store Refresh Popup.
    - `offerUiId` string — Offer Design ID generated by Appcharge. This is the design's **ID** value in the Publisher Dashboard.
    - `offerExternalUiId` string — Offer Design ID. This is the design's **External ID** value in the Publisher Dashboard.
    - `active` boolean — Whether the Store Refresh Popup design is active.
    - `offerUiType` string — Offer design type.
    - `name` string — Store Refresh Popup design name, as configured in the Publisher Dashboard.
    - `description` string — Store Refresh Popup design description, as configured in the Publisher Dashboard.
  - `segments` string[] — List of player segments that this Store Refresh Popup applies to.
  - `productsSequence` object[] — Sequence of products included in the Store Refresh Popup.
    - `index` integer, required — Order of the product sequence in the Store Refresh Popup.
    - `products` object[], required — List of products in the Store Refresh Popup.
      - `publisherProductId` string, required — Product ID.
      - `quantity` integer, required — Product quantity in the Store Refresh Popup.
      - `priority` 'Main' | 'Sub', required — Specifies the display priority of a product within the Store Refresh Popup.
    - `priceInUsdCents` integer, required — Product sequence price in cents. The value must be either 0 (free), or have a minimum 80 cents.
    - `playerAvailability` number — Amount of times the player can purchase the Store Refresh Popup. Must be a minimum of 1.
    - `hidePlayerAvailability` boolean — Whether to hide the availability text based on the `playerAvailability` property value in the web store. If `false`, and if `playerAvailability` is set to `5`, the web store displays `Available 5/5`. When a player purchases the offer, the displayed availability decreases, for example to `Available 4/5`. Set to `true` to hide the availability text in the UI.
  - `displayRule` StoreRefreshDisplayRule — Rules that control how often the Store Refresh Popup is displayed.
    - `frequency` integer, required — Number of store refreshes required before the popup is displayed.
    - `cooldownInMinutes` integer, required — Number of minutes that must pass before the popup can be shown again.
  - `schedule` Schedule — Schedule for when the Store Refresh Popup is available.
    - `permanent` boolean, required — Whether the Store Refresh Popup is permanent.
    - `timeFrames` object[], required — Time frame for the scheduled popup. Leave blank if permanent is set to true. If permanent is false, at least 1 time frame is required. When specifying multiple timeFrames, the startTime and endTime of each must not overlap.
      - `startTime` string, date-time, required — Scheduled popup start time.
      - `endTime` string, date-time, required — Scheduled popup end time. Can't be a past date.
      - `notes` string — Notes about the scheduled popup.
  - `productSale` ProductSale — Sale details for the product quantity. The sale will only be applied on the first product.
    - `sale` integer — Sale amount.
    - `type` 'percentage' — Sale type.
  - `priceDiscount` PriceDiscount — Price discount applied to the Store Refresh Popup. Relevant only for paid offers.
    - `discount` integer — Discount amount.
    - `type` 'percentage' — Discount type.
  - `badges` object[] — List of badges associated with the Store Refresh Popup.
    - `publisherBadgeId` string, required — Badge ID.
  - `createdAt` string, date-time — Date the Store Refresh Popup was created.
  - `updatedAt` string, date-time — Date the Store Refresh Popup was updated.

## Other responses

- `400` — Bad request.
- `401` — Unauthorized.

---

[API](https://skmtc.net/appcharge/apis/grant-award.md) · [All operations](https://skmtc.net/appcharge/apis/grant-award/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/appcharge/grant-award/versions/b4f6759240d5/schema)
