Appcharge Rolling Offers API
The Rolling Offers API from Appcharge — 2 operation(s) for rolling offers.
The Rolling Offers API from Appcharge — 2 operation(s) for rolling offers.
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.