openapi: 3.0.3 info: title: Appcharge Assets Rolling Offers API version: 1.0.0 description: Appcharge is a monetization platform for mobile games, providing a direct-to-consumer (D2C) web store, mobile Checkout SDK, and Payment Links so publishers can sell in-game offers outside the app stores. This API covers checkout sessions, refunds, coupons and promo codes, price localization, financial and analytics reporting, web store offers (bundles, daily bonuses, rolling/special offers, progress bars, reward calendars, triggered popups), offer components (products, badges, offer designs), game-portal content, media assets, translations, and player personalization/authentication callbacks. Authentication uses the x-publisher-token header; webhooks are signed with an HMAC-SHA256 signature. contact: name: Appcharge Developer Support url: https://docs.appcharge.com/ x-apievangelist-source: https://docs.appcharge.com/api-reference (Mintlify embedded OpenAPI fragments) x-apievangelist-method: searched x-apievangelist-generated: '2026-07-17' servers: - url: https://api.appcharge.com description: Production - url: https://api-sandbox.appcharge.com description: Sandbox tags: - name: Rolling Offers paths: /offering/rolling-offer: post: tags: - Rolling Offers summary: Create a new rolling offer operationId: createRollingOffer parameters: - name: x-publisher-token in: header required: true description: The publisher token used for authentication. schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateRollingOfferDto' responses: '201': description: Rolling offer created successfully. content: application/json: schema: $ref: '#/components/schemas/RollingOfferDtoResponse' '400': description: Bad request. '401': description: Unauthorized. /offering/rolling-offer/{rollingOfferSKU}: put: tags: - Rolling Offers summary: Update an existing rolling offer operationId: updateRollingOffer parameters: - name: publisherOfferId in: path required: true description: The SKU of the rolling offer. schema: type: string - name: x-publisher-token in: header required: true description: The publisher token used for authentication. schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateRollingOfferDto' responses: '200': description: Rolling offer updated successfully. content: application/json: schema: $ref: '#/components/schemas/RollingOfferDtoResponse' '401': description: Unauthorized. components: schemas: CreateRollingOfferDto: type: object required: - publisherOfferId - name - type - active - productsSequence properties: publisherOfferId: type: string description: The unique identifier for the rolling offer. name: type: string description: The name of the rolling offer (at least 3 characters). type: type: string description: The type of offer - RollingOffer. enum: - RollingOffer active: type: boolean description: Whether the rolling offer is active. priority: type: integer description: The priority level of the rolling offer. The priority starts from 1 and 1 is the highest priority. offerUiId: type: string description: Internal ID for the Offer UI (required if offerExternalUiId not provided). offerExternalUiId: type: string description: The external UI ID for the rolling offer. segments: type: array description: List of player segments that this rolling offer applies to. items: type: string productsSequence: type: array description: The sequence of products included in the rolling offer. At least 2 productsSequences should be added. items: type: object properties: index: type: integer description: The order of the product in the rolling offer. products: type: array description: Max 3 products can be added to each productsSequence. items: type: object properties: publisherProductId: type: string description: The unique ID of the product. quantity: type: integer description: The quantity of the product in the rolling offer. priceInUsdCents: type: integer description: The price of the product in cents. priceDiscount: type: object description: Discount applied to the product. properties: discount: type: integer type: type: string enum: - percentage - fixed_amount productSale: type: object description: Sale details for the product. properties: sale: type: integer type: type: string enum: - percentage - fixed_amount badges: type: array items: type: object properties: publisherBadgeId: type: string description: The unique identifier of the badge. schedule: type: object description: The schedule for when the rolling offer is available. properties: permanent: type: boolean timeFrames: type: array items: type: object properties: startTime: type: string format: date-time endTime: type: string format: date-time notes: type: string required: - startTime - endTime RollingOfferDtoResponse: type: object properties: publisherOfferId: type: string description: The unique identifier for the rolling offer. offerId: type: string description: The unique identifier of the rolling offer. name: type: string description: The name of the rolling offer. type: type: string description: The type of rolling offer. active: type: boolean description: Whether the rolling offer is active. priority: type: integer description: The priority level of the rolling offer. segments: type: array items: type: string description: The player segments associated with the rolling offer. offerUi: type: object properties: offerUiId: type: string description: Internal ID for the Offer UI. offerUIType: type: string description: Type of the offer UI. description: type: string description: Description of the rolling offer. backgroundImage: type: string description: Background image URL for the offer UI. borderColor: type: object additionalProperties: type: string description: Border color used in the offer UI. borderWidth: type: integer description: Width of the border in the offer UI. externalId: type: string description: External identifier for the rolling offer. productsSequence: type: array items: type: object properties: index: type: integer description: The sequence index of the product. priceInUsdCents: type: integer description: The price of the product in cents. products: type: array items: type: object properties: publisherProductId: type: string quantity: type: integer badges: type: array items: type: object properties: publisherBadgeId: type: string schedule: type: object properties: permanent: type: boolean default: true timeFrames: type: array items: type: object properties: startTime: type: string format: date-time endTime: type: string format: date-time notes: type: string createdAt: type: string format: date-time description: Timestamp when the rolling offer was created. updatedAt: type: string format: date-time description: Timestamp when the rolling offer was last updated. UpdateRollingOfferDto: type: object required: - name - active - productsSequence properties: publisherOfferId: type: string description: The unique identifier for the rolling offer. name: type: string description: The updated name of the rolling offer. type: type: string description: The type of offer - RollingOffer. enum: - RollingOffer active: type: boolean description: Whether the rolling offer is active. priority: type: integer description: The priority level of the rolling offer. Rolling offers will be sorted by priority, and only the rolling offer with the highest priority will be returned. Rolling offers with no priority will be sorted by the `createdAt` date. offerUiId: type: string description: Internal ID for the Offer UI (required if offerExternalUiId not provided). offerExternalUiId: type: string description: The external UI ID for the rolling offer. segments: type: array description: List of player segments that this rolling offer applies to. items: type: string productsSequence: type: array description: The sequence of products included in the rolling offer. At least 2 productsSequences should be added. items: type: object properties: index: type: integer description: The order of the product in the rolling offer. products: type: array description: Max 3 products can be added to each productsSequence. items: type: object properties: publisherProductId: type: string description: The unique ID of the product. quantity: type: integer description: The quantity of the product in the rolling offer. priceInUsdCents: type: integer description: The price of the product in cents. priceDiscount: type: object description: Discount applied to the product. properties: discount: type: integer type: type: string enum: - percentage - fixed_amount productSale: type: object description: Sale details for the product. properties: sale: type: integer type: type: string enum: - percentage - fixed_amount badges: type: array items: type: object properties: publisherBadgeId: type: string description: The unique identifier of the badge. schedule: type: object description: The schedule for when the rolling offer is available. properties: permanent: type: boolean timeFrames: type: array items: type: object properties: startTime: type: string format: date-time endTime: type: string format: date-time notes: type: string required: - startTime - endTime securitySchemes: PublisherTokenAuth: type: apiKey in: header name: x-publisher-token description: Publisher token, as displayed in the Publisher Dashboard.