---
title: "Sync player information"
method: POST
path: "/{YOUR_PERSONALIZE_WEBSTORE_ENDPOINT}"
tags: ["Personalization"]
---

# Sync player information

`POST /{YOUR_PERSONALIZE_WEBSTORE_ENDPOINT}`

<Note> This is a callback API. Appcharge calls this endpoint on your server when specific events occur. </Note> 

 Notifies your system to personalize the web store for a player. <br /> <br /> Appcharge calls this endpoint when: <ul><li>A player logs in to your web store.</li><li>A player completes a purchase.</li><li>Every 5 minutes after the player’s last sync.</li></ul> Your server responds with the most current player data and all available offers for the player. Appcharge then updates the web store for the player accordingly.

## Headers

- `x-publisher-token` string
- `signature` string

## Request body

- object
  - `playerId` string — Player ID (the same value as the `publisherPlayerId` property returned in the [Authenticate Player Callback](/../../api-reference/webstore/player-authentication/authenticate-player-callback)).

## Response `200`

Successful operation

- object
  - `version` integer — The used version. In this case, the value is ‘2’
  - `logo` string — Logo ID provided when a file is uploaded to the Assets Library. Use this to display a logo in your web store.
  - `status` 'valid' | 'invalid', required — Web store personalization request status.
  - `sessionMetadata` object, required — Container for storing any pertinent information related to the player's session. If enabled, this is sent back in the [Grant Award Callback](/../../api-reference/checkout/awards/grant-award-callback) as well.
  - `profileFrameId` string — Corresponds to the profile frame picture ID uploaded to the asset library in Appcharge's dashboard. Displayed above the player's profile picture.
  - `playerLevelName` string — Aligns with the player level picture name/ID uploaded to the asset library in Appcharge's dashboard. Displayed alongside the footer.
  - `bannerExternalId` string — Aligns with the banner asset ID uploaded to the asset library in Appcharge’s dashboard. Displayed at the top of the screen.
  - `playerLevel` object — Presents discounts related to the player’s level.
    - `assetId` string, required — The ID of the asset relevant to the player’s level, uploaded to the asset library in Appcharge’s dashboard.
    - `text` string — Text to be displayed on top of the asset.
    - `endsIn` number — Epoch timestamp in milliseconds indicating when the level discount will end.
  - `playerLevelBanners` object[] — List of banners to display to players based on their game level.
    - `assetId` string, required — The banner ID in the Asset Library.
    - `designId` string, required — ID provided by Appcharge specifying the banner type and design.
    - `text` object[] — List of text objects for displaying the banner text.
      - `id` string — The text ID that specifies the text’s placement in the banner.
      - `content` string — The text displayed in the banner.
    - `endsIn` number — Unix timestamp indicating when the banner expires. For example, `1720051200` represents July 4, 2024.
  - `offersOrder` 'publisherOrder' | 'priceHighToLow' | 'priceLowToHigh' — Defines the order of offers.
  - `sectionsOrder` string[] — An array of publisher’s section ids that defines the order of sections for the store.
  - `segments` string[] — The list of segments associated with the player.
  - `focus` object — Customize which offer you want to focus on.
    - `publisherBundleId` string — The id of the bundle to focus on in the web store.
  - `attributes` object — A set of custom key-value pairs that you can define to tag players for segmentation and A/B testing. These attributes can then be used to filter players in the Publisher Dashboard. Example: { "BF_test": "test", "monetization_persona": "non_payer" }
  - `storeTheme` object — Information about the web store theme.
    - `bgImageMobile` string — Name of the background image for mobile devices in the Assets Library of the Publisher Dashboard.
    - `bgImageDesktop` string — Name of the background image for desktop devices in the Assets Library of the Publisher Dashboard.
    - `logo` string — Name of the logo image in the Assets Library of the Publisher Dashboard.
    - `profileFrameImage` string — Name of the profile frame image in the Assets Library of the Publisher Dashboard.
    - `bannerImage` string — Name of the banner image in the Assets Library of the Publisher Dashboard.
    - `playerLevelImage` string — Name of the player level image in the Assets Library of the Publisher Dashboard.
  - `balances` object[] — A list of product balances of the player.
    - `publisherProductId` string, required — The publisher's product id.
    - `quantity` integer, required — The quantity of the product. Should be greater than or equal to 0 and less than or equal to 24 digits long.
  - `offers` object[]
    - `publisherOfferId` string, required — The publisher's offer id.
    - `endsIn` number — [Epoch](https://www.epoch101.com/) timestamp in milliseconds indicating how much time remains on the countdown timer for the offer displayed in the web store, regardless of its schedule.
    - `offerDescriptionOverride` string — The description that will be displayed instead of the current offer description in the store UI.
    - `offerDesignOverride` object
      - `offerDesignSubtitleTextOverride` string — The text that will be displayed instead of the current subtitle in the offer UI.
      - `offerDesignId` string — This is the offerExternalUiId, which is used to override the offer UI for the store.
      - `offerBackgroundImageOverride` string — Image URL used to override the current background image. Appcharge saves and uses this URL as-is and doesn't download, copy, upload, or host the image. The image must remain available at the provided URL. We recommend uploading image files instead of using external URLs when possible. Appcharge hosts uploaded files on its CDN.
    - `productSale` object — Details on the product sale. This field is not applicable for Rolling Offers. To define a product sale for Rolling Offers, refer to the 'productSale' field within 'productsSequence'.
      - `amountBeforeSale` integer — Offer amount in USD before sale is applied.
      - `sale` integer — Sale amount in percentage.
      - `type` string — Will be 'percentage' by default. Optional values are 'percentage', 'multiplier', 'fixed_amount'.
    - `priceDiscount` object — Used to define the discount for the offer price. This field is not applicable for Rolling Offers. To define an offer discount for Rolling Offers, refer to the 'priceDiscount' field within 'productsSequence'.
      - `priceBeforeDiscount` integer — The original price of the offer before discount. Copied to FE without any logic on Appcharge’s side. The minimum should be 0.
      - `discount` integer, required — The discount percentage, min of 0
      - `type` 'percentage', required — The type of discount, currently only "percentage" is supported.
    - `badges` object[] — A list of badges in the offer. If you do not want to have badges, then it should be sent as an empty array. This field is not applicable for Rolling Offers. To define badges for Rolling Offers, refer to the ‘badges’ field within ‘productsSequence’.
      - `publisherBadgeId` string, required — The publisher's badge id.
      - `position` 'right' | 'left' | 'center', required — This field is outdated. The position of the badge should be set from Dashboard only.
      - `ribbonTextOverride` string — A text that will override the ribbon's text provided in publisherBadgeId. Only relevant when the badge sent in publisherBadgeId is from type 'Ribbon'.
    - `dynamicOfferUi` object — Details of the dynamic user interface for the offer. **Deprecated**
      - `badges` object[] — A list of badges in the offer.
        - `publisherBadgeId` string, required — The publisher's badge id.
        - `position` 'right' | 'left' | 'center', required — This field is outdated. The position of the badge should be set from Dashboard only.
        - `ribbonTextOverride` string — A text that will override the ribbon's text provided in publisherBadgeId. Only relevant when the badge sent in publisherBadgeId is from type 'Ribbon'.
      - `salePercentage` integer, required — Sale amount in percentage.
      - `amountBeforeSale` integer — Offer amount in USD before sale is applied.
      - `salePercentageDisplayType` string — Will be 'percentage' by default. Optional values are 'percentage', 'multiplier', 'fixed_amount'.
      - `offerDesignId` string — This is the offerExternalUiId, which is used to override the offer UI for the store.
    - `productsSequence` object[], required — The sequence of the products included in the offer. Rolling offers should be the same amount of sequences as the amount of sub offers configured in the Publisher Dashboard.
      - `index` integer, required — The position of this offer or sub-offer within the parent offer. Each index should be a positive integer starting from 1. **Note:** For the Progress Bar offer, this property defines the mission order.
      - `productSale` object — Details on the product sale. This field is only relevant for Rolling Offers. To define a product sale for other offer types, refer to the corresponding 'productSale' field at the root level within 'offers'.
        - `amountBeforeSale` integer — Offer amount in USD before sale is applied.
        - `sale` integer — Sale amount in percentage.
        - `type` string — Will be 'percentage' by default. Optional values are 'percentage', 'multiplier', 'fixed_amount'.
      - `priceDiscount` object — Used to define the discount for the offer price. This is only relevant for Rolling Offers. To define a price discount for other offer types, refer to the corresponding 'priceDiscount' field at the root level within the 'offers' object.
        - `priceBeforeDiscount` integer — The original price of the offer before discount. Copied to FE without any logic on Appcharge’s side. The minimum should be 0.
        - `discount` integer, required — The discount percentage, min of 0
        - `type` 'percentage', required — The type of discount, currently only "percentage" is supported.
      - `badges` object[] — A list of badges in the offer. If you do not want to have badges, then it should be sent as an empty array. This field is only relevant for Rolling Offers. To define badges for other offer types, refer to the 'badges' field at the root level within the 'offers' object.
        - `publisherBadgeId` string, required — The publisher's badge id.
        - `position` 'right' | 'left' | 'center', required — This field is outdated. The position of the badge should be set from Dashboard only.
        - `ribbonTextOverride` string — A text that will override the ribbon's text provided in publisherBadgeId. Only relevant when the badge sent in publisherBadgeId is from type 'Ribbon'.
      - `progressBarPoints` object[] — The contribution of this offer toward the progress bar. A points ribbon is displayed with the number of points for offers that define this field. **Note:** Currently you can only have 1 progress bar object.
        - `publisherBarId` string — The publisher's external bar ID.
        - `points` integer — Number of points awarded toward the progress bar when this offer is purchased or claimed.
      - `products` object[], required — The products in a given offer. **Note:** For the Progress Bar offer, this property defines the reward received when completing the given mission.
        - `publisherProductId` string, required — The product Id.
        - `quantity` integer, required — The quantity of the product. Should be minimum 0 and equal to or less than 24 digits long.
        - `priority` 'Main' | 'Sub' — Specifies the display priority of a product within the offer.
        - `traits` object[] — A list of visual or descriptive features associated with the product. Useful for distinguishing variants, bonuses, or unique characteristics of the product.
          - `assetId` string, required — The asset ID of the trait, located in the Asset Library.
          - `text` string, required — The label or descriptor associated with the trait.
        - `rarityProductInfo` object — Details about the rarity of the product.
          - `stars` integer — The number of icons (stars) representing the rarity of the product. Displayed next to the product and inside the tooltip.
          - `tooltip` union
            - object[] — Assets representing products and the player's probability of receiving them.
              - …
            - object — A general description tooltip for the product.
              - …

---

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