Skip to content

Loyalty Program Guide ​

Points-based tier system. Users earn points on every bet, unlock tiers with multipliers and perks, and receive periodic cashback.

Works standalone - no challenge or funded account required.


How It Works ​

  1. Operator configures points rate, tiers, and cashback in the backoffice
  2. Every placed bet earns points (amount = stake * pointsPerEurWagered * tierMultiplier)
  3. Points accumulate and unlock tier promotions
  4. Higher tiers earn more points per bet (multiplier)
  5. Cashback settles periodically (daily/weekly/monthly)
  6. Optional point decay prevents inactive hoarding

Deployment Modes ​

ModeDescription
Challenges + LoyaltyPoints earned on all bets. Tiers unlock challenge perks.
Loyalty onlyStandalone tier system. Cashback as primary value.

Configuration ​

Global config (/v1/admin/loyalty/config) ​

FieldDescription
pointsPerEurWageredBase points per EUR staked (e.g. 1 = 1 point per EUR)
cashbackPercentBase cashback rate (e.g. 2 = 2% of losses)
cashbackSettlementFrequency: daily, weekly, or monthly
decayModenone, monthly_percent, or monthly_reset
decayPercentPoints lost per decay cycle (if percent mode)

Tiers ​

FieldDescription
nameTier name ("Bronze", "Gold", etc.)
minPointsPoints threshold to enter tier
multiplierPoints multiplier (1.0, 1.5, 2.0, 3.0)
perksArray of perk descriptions
iconIcon name for widget

Example tiers:

Bronze:   0 pts,     1x multiplier
Silver:   1000 pts,  1.5x multiplier
Gold:     5000 pts,  2x multiplier, 3% cashback
Platinum: 20000 pts, 3x multiplier, 5% cashback, priority support

Points Mechanics ​

  • Points earned = stakeInEUR * pointsPerEurWagered * tierMultiplier
  • Only placed bets earn points (not settlements)
  • Points are tenant-scoped (not shared across operators)
  • Tier promotion: checked on every points award
  • Tier demotion: checked on decay cycle (with optional grace period)

Cashback ​

  • Accrues on losses during the settlement period
  • Rate = cashbackPercent (may be tier-specific)
  • Settlement fires loyalty.cashback_settled webhook
  • Operator fulfills (credits the user's sportsbook balance)

API Reference ​

Operator (admin) ​

MethodEndpointPurpose
GET/v1/admin/loyalty/configGet loyalty config
POST/v1/admin/loyalty/configSet/update config
GET/v1/admin/loyalty/tiersList tiers
POST/v1/admin/loyalty/tiersCreate a tier
PUT/v1/admin/loyalty/tiers/:idUpdate a tier
DELETE/v1/admin/loyalty/tiers/:idDelete a tier
GET/v1/admin/loyalty/usersList loyalty members
GET/v1/admin/loyalty/users/:userIdUser loyalty detail
POST/v1/admin/loyalty/users/:userId/adjustManually adjust points
GET/v1/admin/loyalty/statsProgram statistics

Public (widget key) ​

MethodEndpointPurpose
GET/v1/users/:userId/loyaltyUser's points, tier, cashback
GET/v1/loyalty/tiersPublic tier list (for widget)

SDK Usage ​

typescript
// Configure loyalty
await fast.admin.loyalty.setConfig({
  pointsPerEurWagered: 1,
  cashbackPercent: 2,
  cashbackSettlement: 'weekly',
  decayMode: 'monthly_percent',
  decayPercent: 10,
});

// Create tiers
await fast.admin.loyalty.createTier({ name: 'Gold', minPoints: 5000, multiplier: 2.0, perks: ['3% cashback', 'Priority support'] });

// Bonus points for VIP
await fast.admin.loyalty.adjustPoints('player-42', 1000, 'VIP welcome bonus');

Webhook Events ​

EventWhen
loyalty.tier_upgradedUser promoted to higher tier
loyalty.tier_downgradedUser demoted (after decay)
loyalty.cashback_settledCashback credited to user

Reward Connection ​

  • loyalty_points reward type adds points directly (from missions, achievements, etc.)
  • Tier upgrades can trigger reward rules (e.g. "on Gold, grant free_bet")
  • Cashback settlement emits webhook for operator fulfillment

BLACKLINE CONSULTING d.o.o.