Appearance
Engagement-Only Mode
Run FAST as a pure gamification layer on your sportsbook without the challenge/funded-account system.
What You Get
- Missions (time-boxed tasks with rewards)
- Wagering bonuses (playthrough-based promotions)
- Tournaments (competitive leaderboard events)
- Loyalty program (points, tiers, cashback)
- Achievements (badges and milestones)
- Reward rules (automated trigger-based rewards)
- Embeddable widget (shows all of the above)
- Real-time SSE events
- Full webhook coverage
What You Don't Get
- Challenge purchases (users don't buy challenge tiers)
- Funded accounts (no virtual balance management)
- Bet validation rules (odds limits, stake limits, etc.)
- Shadow ledger (balance tracking)
- Withdrawal flow (profit split calculations)
Setup
1. Configure Tenant Modules
Ask FAST support to set your tenant to engagement-only, or configure via super-admin:
json
{
"modules": {
"challenges": false,
"bonuses": true,
"missions": true,
"tournaments": true,
"loyalty": true
}
}2. Forward Bet Events
Same API as full mode. Send all bet placements and settlements:
bash
curl -X POST https://api.fundedfast.eu/v1/bets \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"userId": "player-42",
"externalBetId": "BET-001",
"stakeAmount": 5.00,
"odds": 2.10,
"status": "placed"
}'Without challenges enabled, bets are always accepted (no ruleset validation). They feed into engagement engines immediately.
3. Use Standalone Reward Types
Configure missions, achievements, and reward rules with these types:
| Type | Your backend does |
|---|---|
free_bet | Credits a free bet to the user |
bonus_credit | Adds bonus balance to the user |
cashback_credit | Credits cashback amount |
loyalty_points | FAST handles (adds to loyalty balance) |
custom | Whatever you define (merch, VIP access, etc.) |
4. Handle Webhooks
FAST emits reward.granted when any reward fires:
json
{
"eventType": "reward.granted",
"userId": "player-42",
"data": {
"rewardId": "550e8400-e29b-41d4-a716-446655440000",
"rewardType": "free_bet",
"rewardValue": 500,
"applyMode": "auto"
}
}Your backend receives this and credits the 5 EUR free bet in your sportsbook.
5. Embed the Widget
html
<script
src="https://cdn.fundedfast.eu/widget.js"
data-api-base="/api/v1"
data-api-key="pk_your-widget-key"
data-user-id="player-42"
></script>The widget auto-detects which modules are enabled and only shows relevant tabs (missions, bonuses, tournaments, loyalty, rewards). No challenges tab appears.
SDK Integration
typescript
import { FastClient } from '@fundedfast/sdk';
const fast = new FastClient({ apiKey: process.env.FAST_API_KEY! });
// Forward bets (engagement-only - always accepted)
await fast.bets.ingest({
userId: 'player-42',
externalBetId: 'BET-001',
stakeAmount: 5.00,
odds: 2.10,
status: 'placed',
});
// Check user missions
const missions = await fast.admin.missions.getUserMissions('player-42');
// Get loyalty status
const loyalty = await fast.admin.loyalty.getUserLoyalty('player-42');Architecture
Your Sportsbook --> [FAST API: /v1/bets] --> accepted (always)
|
v
[Post-bet hooks fire]
/ | | | \
Missions Bonuses Tournaments Loyalty Achievements
\ | | | /
v
[Reward granted]
|
v
[Webhook: reward.granted]
|
v
[Your backend: credit free bet / bonus / etc.]FAQ
Q: Do I still need to send settlements (won/lost)? A: Yes. Settlements update mission progress (bets_won criteria), tournament scores (net_profit), and loyalty cashback calculations.
Q: Can I later add challenges? A: Yes. Enable the challenges module and challenge-coupled reward types will start being consumed on purchases. No migration needed.
Q: What about the widget showing "Buy Challenge"? A: With challenges: false, the widget doesn't show the challenges tab or shop. Only engagement modules appear.
Q: Is the pricing different for engagement-only? A: The same plans apply. Bonuses, missions and tournaments are included on Growth and Enterprise; loyalty is Enterprise only. Revenue share is calculated on engagement activity instead of challenge fees.