---
title: "Update an existing Store Refresh Popup"
method: PUT
path: "/v2/offer/${publisherOfferId}"
tags: ["Store Refresh Popups"]
---

# Update an existing Store Refresh Popup

`PUT /v2/offer/${publisherOfferId}`

## Request

- The document declares no server URL.
- Auth: none required

Updates a Store Refresh popup offer.

## Path parameters

- `publisherOfferId` string, required

## Headers

- `x-publisher-token` string, required

## Request body

- UpdateStoreRefreshPopupDto
  - `name` string: 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': 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. 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[]: 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.
  - `publisherSectionId` string: The publisher section ID.
  - `publisherTabId` string: Tab ID in the web store.

## Response `200`

Store refresh popup updated 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.dev/appcharge/apis/grant-award.md) - [All operations](https://skmtc.dev/appcharge/apis/grant-award/llms.txt) - [OpenAPI document](https://skmtc.dev/appcharge/apis/grant-award/revisions/b4f6759240d5?raw)
