Storefront
Storefront exposes Shop and game services through one contract. Every ID is opaque. Monetary values never use Float: units is the exact integer amount in minor units, while decimal is its ready-to-display decimal representation.
StorefrontMoney
| Field | Type | Description |
|---|
units | String! | Exact amount in minor units |
decimal | String! | Exact decimal representation |
currencyCode | String! | Currency code |
currencyScale | Int! | Number of decimal places |
StorefrontPrice
| Field | Type | Description |
|---|
base | StorefrontMoney! | Price before adjustments |
effective | StorefrontMoney! | Effective price |
adjustments | [StorefrontPriceAdjustment!]! | Applied discounts and campaigns |
fromPrice | Boolean! | The displayed amount is a starting price |
hasSavings | Boolean! | Effective price is lower than base |
StorefrontPriceAdjustment contains code, a SALE, REFERRAL, VIP, or CAMPAIGN source, an integer percentage, and exact amount. At checkout, StorefrontCheckoutAdjustment additionally contains a DISCOUNT or SURCHARGE kind.
StorefrontPageInfo
| Field | Type | Description |
|---|
endCursor | ID | Cursor for the next request |
hasNextPage | Boolean! | Whether another page is available |
ShopOffer
| Field | Type | Description |
|---|
id | ID! | Opaque offer ID |
sku | String! | Stable offer code |
name | String! | Localized name |
description | String! | Localized description |
imageReference | String | Allowed image reference |
categoryId | ID | Opaque category ID |
pricingMode | ShopPricingMode! | BUNDLE or SELECTION |
deliveryModes | [ShopDeliveryMode!]! | Allowed delivery modes |
selectionLimitCount | Int | Maximum selected item count |
items | [ShopOfferItem!]! | Bundle contents or selectable items |
price | StorefrontPrice! | Offer price |
selectionPrices | [ShopSelectionPrice!]! | Per-selection prices |
availability | ShopOfferAvailability! | Availability and limit progress |
sortOrder | Int! | Catalog order |
ShopOfferConnection returns items and pageInfo. ShopDeliveryMode values are ACCOUNT_CHARACTER, DIRECT_CHARACTER, WAREHOUSE, and GUEST_CHARACTER.
ShopOfferItem
| Field | Type | Description |
|---|
assetReference | String! | Delivered asset identifier |
quantity | Int! | Base quantity |
enchantLevel | Int! | Enchant level |
selectionKey | String | Selectable item key |
quantitySelectable | Boolean! | Whether the player can change the quantity multiplier |
maximumQuantityMultiplier | Int! | Maximum multiplier |
ShopOfferAvailability
| Field | Type | Description |
|---|
status | ShopOfferAvailabilityStatus! | Availability or rejection reason |
available | Boolean! | Whether the offer can be purchased now |
startsAt | DateTime | Publication start |
endsAt | DateTime | Publication end |
globalLimit | ShopPurchaseLimitProgress | Global offer limit |
customerLimit | ShopPurchaseLimitProgress | Player limit |
gameAccountLimit | ShopPurchaseLimitProgress | Game-account limit |
gameAccountSelectionRequired | Boolean! | Account selection is required to evaluate availability |
Statuses are AVAILABLE, NOT_STARTED, ENDED, CUSTOMER_NOT_ELIGIBLE, GLOBAL_LIMIT_REACHED, CUSTOMER_LIMIT_REACHED, GAME_ACCOUNT_LIMIT_REACHED, and BLOCKED_OFFER_PURCHASED.
ShopPurchaseLimitProgress contains windowSeconds, maximumPurchases, currentPurchases, remainingPurchases, the evaluated flag, and the next nextAvailableAt.
ShopCategory
| Field | Type | Description |
|---|
id | ID! | Opaque category ID |
name | String! | Localized name |
sortOrder | Int! | Display order |
ShopCategoryConnection returns items and pageInfo.
ShopQuote
| Field | Type | Description |
|---|
id | ID! | Opaque calculation ID |
offer | ShopOffer! | Frozen offer snapshot |
quantity | Int! | Offer quantity |
selectedItems | [ShopQuoteSelection!]! | Accepted selections and multipliers |
deliveryItems | [ShopQuoteDeliveryItem!]! | Final delivery contents |
unitAmount | StorefrontMoney! | Unit amount |
subtotal | StorefrontMoney! | Amount before checkout adjustments |
adjustments | [StorefrontCheckoutAdjustment!]! | Checkout adjustments |
total | StorefrontMoney! | Amount to debit or pay |
hasSavings | Boolean! | Whether savings apply |
delivery | ShopQuoteDelivery! | Mode and verified recipient |
expiresAt | DateTime! | Calculation expiry |
ShopQuoteSelection contains selectionKey and quantityMultiplier; ShopQuoteDeliveryItem contains assetReference, quantity, and enchantLevel; ShopQuoteDelivery contains mode, accountLogin, and characterName.
ShopPurchase
| Field | Type | Description |
|---|
orderId | ID! | Opaque order ID |
quoteId | ID! | Consumed calculation |
orderStatus | StorefrontOrderStatus! | Order state |
paymentId | ID | Opaque wallet payment ID |
paymentStatus | StorefrontPaymentStatus! | Debit or reversal state |
total | StorefrontMoney! | Final amount |
createdAt | DateTime! | Creation time |
Order statuses are PENDING_PAYMENT, PAID, FULFILLING, FULFILLED, and CANCELLED. Payment statuses are DEBIT_PENDING, PAID, REVERSAL_PENDING, REVERSED, and REQUIRES_REVIEW.
A zero-total purchase is confirmed without payment: paymentId is null and paymentStatus is NOT_REQUIRED. The order progresses through CONFIRMED, FULFILLING and FULFILLED; confirmation does not yet mean delivery is complete.
StorefrontExternalPaymentPreparation
| Field | Type | Description |
|---|
orderId | ID! | Created guest order |
quoteId | ID! | Storefront calculation |
orderStatus | StorefrontOrderStatus! | Order state |
intent | StorefrontExternalPaymentIntent! | Payment intent and expiry |
methods | [StorefrontExternalPaymentMethod!]! | Eligible methods with individual calculations |
A method contains id, code, name, optional iconAssetId, and paymentQuote. A method calculation contains id, paymentAmount, destinationAmount, payerFee, and expiresAt.
StorefrontExternalPaymentExecution
| Field | Type | Description |
|---|
orderId | ID! | Guest order |
quoteId | ID! | Storefront calculation |
orderStatus | StorefrontOrderStatus! | Order state |
intent | StorefrontExternalPaymentIntent! | Payment-intent state |
attempt | StorefrontExternalPaymentAttempt! | Current payment attempt |
action | StorefrontExternalPaymentAction | Next client action |
action.kind is REDIRECT, FORM_POST, QR_CODE, DEEP_LINK, or WAIT; only the matching action field is populated. Intent statuses are OPEN, PROCESSING, SETTLED, CANCELLED, and EXPIRED. Attempt statuses are CREATED, REQUIRES_CUSTOMER_ACTION, PENDING_PROVIDER, AUTHORIZED, CAPTURED, DECLINED, CANCELLED, EXPIRED, and REVIEW_REQUIRED.
GameServiceOffer
| Field | Type | Description |
|---|
id | ID! | Opaque service ID |
name | String! | Localized name |
description | String! | Localized description |
imageReference | String! | Service image |
category | GameServiceLocalizedCategory! | Category code, name, and description |
targetKind | GameServiceTargetKind! | GAME_ACCOUNT or CHARACTER |
fields | [GameServiceField!]! | Configurable purchase fields |
price | StorefrontPrice! | Service price |
availability | GameServiceAvailability! | Availability and publication window |
sortOrder | Int! | Catalog order |
GameServiceOfferConnection returns items and pageInfo. GameServiceCategoryConnection returns categories with code, name, description, sortOrder, and cursor data.
GameServiceField
| Field | Type | Description |
|---|
code | String! | Field code |
kind | GameServiceFieldKind! | TEXT, OPTION, or COLOR |
required | Boolean! | Whether the field is required |
name | String! | Localized name |
description | String! | Localized description |
textConstraint | GameServiceTextConstraint | Text policy and length bounds |
options | [GameServiceOption!]! | Allowed options |
sortOrder | Int! | Field order |
determinesPrice | Boolean! | Whether the selection determines the price |
GameServiceTextConstraint.policy is FREE_TEXT, ALPHANUMERIC_NAME, EXTENDED_NAME, or ACCOUNT_NAME. GameServiceOption contains value, optional visualValue, name, description, optional price, and sortOrder.
GameServiceQuote
| Field | Type | Description |
|---|
id | ID! | Opaque calculation ID |
offer | GameServiceOffer! | Frozen service snapshot |
fieldValues | [GameServiceFieldValue!]! | Validated field values |
target | GameServicePurchaseTarget! | Verified account or character |
unitAmount | StorefrontMoney! | Unit amount |
subtotal | StorefrontMoney! | Amount before adjustments |
adjustments | [StorefrontCheckoutAdjustment!]! | Checkout adjustments |
total | StorefrontMoney! | Final amount |
hasSavings | Boolean! | Whether savings apply |
expiresAt | DateTime! | Calculation expiry |
GameServicePurchase
Fields and statuses match ShopPurchase: orderId, quoteId, orderStatus, paymentId, paymentStatus, total, and createdAt.
Cases and Rewards
CaseConfig
Case configuration.
| Field | Type | Description |
|---|
id | ID! | Case ID |
name | String! | Name |
price | Float! | Price |
items | [CaseItem!]! | Items in case |
available | Boolean! | Available |
CaseItem
Case item.
| Field | Type | Description |
|---|
id | ID! | ID |
itemId | Int! | Item ID |
name | String! | Name |
count | Int! | Quantity |
enchantLevel | Int! | Enchant level |
icon | String | Icon |
weight | Int! | Drop chance weight |
rarity | String | Rarity |
CaseCategory
Case category.
| Field | Type | Description |
|---|
id | ID! | ID |
name | String! | Name |
sort | Int! | Sort order |
CaseSalesRestriction
Global case restriction.
| Field | Type | Description |
|---|
enabled | Boolean! | Enabled |
time | Int! | Period in seconds |
count | Int! | Maximum count |
CaseIndividualLimit
Individual case limit.
| Field | Type | Description |
|---|
enabled | Boolean! | Enabled |
time | Int! | Period in seconds |
count | Int! | Maximum count |
CaseOpenResult
Case opening result.
| Field | Type | Description |
|---|
item | WarehouseItem! | Won item |
balance | Float | Updated balance |
bonusBalance | Float | Updated bonus balance |
LuckyWheelConfig
Wheel configuration.
| Field | Type | Description |
|---|
id | ID! | ID |
price | Float! | Spin price |
broadcast | Int! | Announcements |
items | [LuckyWheelItem!]! | Items on the wheel |
LuckyWheelItem
Wheel item.
| Field | Type | Description |
|---|
id | ID! | ID |
itemId | Int! | Item ID |
name | String! | Name |
count | Int! | Quantity |
enchantLevel | Int! | Enchant level |
icon | String | Icon |
weight | Int! | Chance weight |
LuckyWheelSpin
Spin history record.
| Field | Type | Description |
|---|
id | ID! | ID |
itemId | Int! | Item ID |
itemName | String! | Item name |
itemCount | Int! | Quantity |
createdAt | String! | Date |
LuckyWheelSpinResult
Spin result.
| Field | Type | Description |
|---|
item | WarehouseItem! | Won item |
key | Int! | Winning cell index |
balance | Float | Updated balance |
bonusBalance | Float | Updated bonus balance |
LuckyWheelSpinConnection
One page of spin history.
| Field | Type | Description |
|---|
nodes | [LuckyWheelSpin!]! | Entries in the current page |
totalCount | Int! | Total number of spins |
pageInfo | LuckyWheelPageInfo! | Next-page information |
LuckyWheelPageInfo
| Field | Type | Description |
|---|
hasNextPage | Boolean! | Whether another page exists |
hasPreviousPage | Boolean! | Whether a previous page exists |
endCursor | String | Cursor for the next page |
DailyRewardStatus
Daily rewards status.
| Field | Type | Description |
|---|
currentDay | Int! | Current day |
lastClaimDate | DateTime | Last claim date |
rewards | [DailyReward!]! | Rewards by day |
canClaim | Boolean! | Can claim reward |
DailyReward
Reward for a day.
| Field | Type | Description |
|---|
day | Int! | Day number |
items | [DailyRewardItem!]! | Items |
claimed | Boolean! | Claimed |
DailyRewardItem
Daily reward item.
| Field | Type | Description |
|---|
itemId | Int! | Item ID |
name | String | Name |
count | Int! | Quantity |
enchantLevel | Int! | Enchant level |
DailyRewardClaimResult
Daily reward claim result.
| Field | Type | Description |
|---|
item | WarehouseItem | Received item |
balance | Float | Updated balance |
bonusBalance | Float | Updated bonus balance |
warehouse | [WarehouseItem!] | Updated warehouse |
BonusCodeRedemptionResult
Bonus code activation result.
| Field | Type | Description |
|---|
requiresRecipient | Boolean! | The operation must be repeated with a game account and character |
rewardType | BonusCodeRewardType! | Reward type: BALANCE or ITEMS |
amount | Float | Amount |
bonusExpiresAt | DateTime | Bonus balance expiration time |
balance | Float | Updated balance |
bonusBalance | Float | Updated bonus balance |
itemsCount | Int | Item count |
characterName | String | Recipient character |
baseAmount | Float | Base amount before VIP is applied |
vipBonusAmount | Float | Fixed additional VIP amount |
vipMultiplier | Float! | Applied multiplier; 1 without an increase |
vipApplied | Boolean! | Whether the VIP reward policy was applied |
baseItemsCount | Int | Number of base item entries |
vipBonusItemsCount | Int | Number of additional VIP item entries |
GiftCodePackage
Gift code package.
| Field | Type | Description |
|---|
id | ID! | Package ID |
name | String! | Name |
description | String | Description |
price | Decimal! | Exact charge amount as a string |
denomination | Decimal! | Exact denomination as a string |
popular | Boolean! | Package is highlighted as popular |
GiftCodeStore
Gift-code store state.
| Field | Type | Description |
|---|
enabled | Boolean! | Feature is enabled for the game server |
customAmount | GiftCodeCustomAmount! | Custom-denomination policy |
packages | [GiftCodePackage!]! | Enabled packages in display order |
GiftCodeCustomAmount contains enabled: Boolean! and nullable Decimal fields minimum, maximum, and priceRate. Monetary values are JSON strings such as "100.0001", not floating-point numbers.
GiftCodePurchase
Gift code purchase.
| Field | Type | Description |
|---|
id | ID! | Record ID |
code | String! | Code |
denomination | Decimal! | Exact denomination as a string |
status | String! | Bonus-code state such as ACTIVE or REDEEMED |
createdAt | DateTime! | Purchase date |
GiftCodeResult
Gift code purchase result.
| Field | Type | Description |
|---|
purchaseId | ID! | Idempotent purchase ID |
code | String! | Generated code |
denomination | Decimal! | Exact denomination as a string |
balance | Decimal | Main balance after the original debit |
bonusBalance | Decimal | Bonus balance after the original debit |
A completed purchase replay returns the same code and saved debit result, not a fresh snapshot of the current balance.
Support and Activity
PlayerSupportPortal
| Field | Type | Description |
|---|
| enabled | Boolean! | Whether the feature is enabled |
| provider | String! | Current processing provider: INTERNAL or OMNIDESK |
| minimumTitleLength / maximumTitleLength | Int! | Title length limits |
| minimumMessageLength / maximumMessageLength | Int! | Message length limits |
| attachmentsEnabled | Boolean! | Whether attachments are accepted |
| maxFileSizeMb / maxFiles / maxTotalSizeMb | Int! | Upload limits |
| allowedMimeTypes | [String!]! | Allowed MIME types |
| writeAccess | PlayerSupportWriteAccess! | Current player's write access |
| categories | [PlayerSupportCategory!]! | Published categories |
PlayerSupportWriteAccess
| Field | Type | Description |
|---|
| allowed | Boolean! | Ticket creation and replies are allowed |
| reason | String | Restriction reason |
| expiresAt | DateTime | Restriction expiry |
PlayerSupportCategory
| Field | Type | Description |
|---|
| id | ID! | Category ID |
| name | String! | Name in the request locale |
| icon | String | Configured icon class |
PlayerSupportTicket
| Field | Type | Description |
|---|
| id | ID! | Ticket ID |
| title | String! | Ticket title |
| categoryId | Int! | Category ID |
| status | PlayerSupportTicketStatus! | Workflow state |
| messages | PlayerSupportMessageConnection! | Current message slice |
| messagesCount | Int! | Total message count |
| unreadCount | Int! | Unread staff replies |
| lastMessage | String! | Last-message preview |
| createdAt / updatedAt | DateTime! | Creation and update timestamps |
PlayerSupportTicketConnection
| Field | Type | Description |
|---|
| items | [PlayerSupportTicket!]! | Current slice |
| pageInfo | PlayerSupportCursorPageInfo! | Continuation cursors |
PlayerSupportTicketSummary
| Field | Type | Description |
|---|
| all | Int! | All player tickets |
| waitingForPlayer | Int! | Waiting for the player |
| waitingForStaff | Int! | Waiting for staff |
| closed | Int! | Closed tickets |
PlayerSupportMessage
| Field | Type | Description |
|---|
| id | ID! | Message ID |
| content | String! | Content or redaction marker |
| author | PlayerSupportMessageAuthor! | PLAYER or STAFF |
| authorLabel | String | Public author label |
| redacted | Boolean! | Staff redacted the message |
| deliveryState | PlayerSupportMessageDeliveryState | External delivery state |
| feedback | PlayerSupportMessageFeedback | Current player's latest selection |
| feedbackAllowed | Boolean! | Whether the current player can rate the response |
| attachments | [PlayerSupportAttachment!]! | Accessible attachments |
| createdAt | DateTime! | Creation time |
PlayerSupportMessageConnection
| Field | Type | Description |
|---|
| items | [PlayerSupportMessage!]! | Current slice |
| pageInfo | PlayerSupportCursorPageInfo! | Continuation cursors |
PlayerSupportCursorPageInfo
| Field | Type | Description |
|---|
| nextCursor | String | Next-slice cursor |
| previousCursor | String | Previous-slice cursor |
| hasMore | Boolean! | More records exist in the selected direction |
PlayerSupportAttachment
| Field | Type | Description |
|---|
| url | String! | Short-lived original URL |
| thumbnailUrl | String! | Short-lived thumbnail URL |
PlayerSupportMutationResult
| Field | Type | Description |
|---|
| message | String! | Localized confirmation |
| ticketId | ID! | Ticket ID |
| messageId | ID! | Created message ID |
| deliveryPending | Boolean! | External delivery is still pending |
PlayerSupportMessageFeedbackResult
| Field | Type | Description |
|---|
| messageId | ID! | Rated staff-message ID |
| feedback | PlayerSupportMessageFeedback! | Stored selection |
CreatePlayerSupportTicketInput contains requestId, categoryId, title, message, optional account, character, and attachmentClaim.
ReplyPlayerSupportTicketInput contains requestId, ticketId, message, and optional attachmentClaim.
RatePlayerSupportMessageInput contains the required messageId and feedback.
PlayerSupportAttachmentClaimInput contains the required id and credential of a previously uploaded claim.
Enums
- PlayerSupportTicketStatus: NEW, WAITING_FOR_STAFF, WAITING_FOR_PLAYER, CANCELLED, CLOSED.
- PlayerSupportMessageAuthor: PLAYER, STAFF.
- PlayerSupportMessageDeliveryState: PENDING, DELIVERED, FAILED.
- PlayerSupportMessageFeedback: HELPFUL, NOT_HELPFUL.
Notification
Notification.
| Field | Type | Description |
|---|
id | ID! | ID |
type | String! | Notification type |
title | String! | Title |
message | String! | Text |
isRead | Boolean! | Read |
BalanceInfo
Balance.
| Field | Type | Description |
|---|
balance | Decimal! | Available main balance as an exact decimal string |
bonusBalance | Decimal! | Available bonus balance as an exact decimal string |
paymentDebt | Decimal! | Outstanding debt as an exact decimal string |
purchasesRestricted | Boolean! | Purchases and withdrawals from this balance are restricted pending repayment |
ModuleStatuses
Module statuses.
| Field | Type | Description |
|---|
cases | Boolean! | Cases enabled |
dailyRewards | Boolean! | Daily rewards |
giftCodes | Boolean! | Gift codes |
luckyWheel | Boolean! | Lucky wheel |
market | Boolean! | Marketplace |
referralProgram | Boolean! | Referral program |