Deposit promotion options

Live
GET/api/v1/promotions/deposit-options

Fetch the promotions the member can choose to receive

A member who never took the welcome bonus (tier NEW) → forced, NEW_REGISTER only | if already taken, mode is choose between FIRST_DEPOSIT (no successful deposit yet today) and GOLDEN_MINUTE (inside its window) | if no promotion is available, mode is none

This is display/selection only — the bonus is actually granted when the deposit is credited, and conditions are re-checked at that moment.

Headers

FieldTypeRequiredDescription
AuthorizationstringYesUsed — send Bearer <member access_token>
X-Api-KeystringYesAgent API key (ak_…) from the bo screen
X-TimestampstringYesSigning time in unix milliseconds (±300s skew allowed)
X-NoncestringYesUnique per-request value (UUIDv4) for replay protection
X-SignaturestringYeshex(HMAC-SHA256(secret, canonical)) — see the Authentication page
X-Player-IPstring—The player's real IP (IPv4/IPv6) — recommended (used in login history)
X-Player-UAstring—The player's User-Agent (optional — recorded in login history)
X-Request-Idstring—Your correlation id — echoed back as request_uuid (recommended)
x-langstring—th (default) or en — the language of message

Response

Fields in data

FieldTypeRequiredDescription
modestring—forced = only the welcome bonus (NEW_REGISTER) is offered — the member cannot change it, render it as a single locked option · choose = the member picks one of options (or opts out) · none = no eligible deposit bonus right now — hide the bonus picker entirelyforced | choose | none
optionsobject[]—Selectable promotions — same shape as items in "All promotions", and every entry is already eligible (eligible = true).
└ idstring—Promotion id — pass to PUT /promotions/selected
└ typestring—Deposit bonuses are limited to these 3 typesNEW_REGISTER | FIRST_DEPOSIT | GOLDEN_MINUTE
└ namestring—Promotion name
└ banner_urlstring | null—Displayable banner URL
└ configobject—Bonus config { percentage, max_bonus_thb, min_deposit_thb }
└ time_windowobject | null—GOLDEN_MINUTE time window (Bangkok time)
└ wager_multiplierstring | null—Turnover multiplier when this bonus is taken
└ withdraw_cap_thbstring | null—Withdrawal cap for this bonus
└ eligibleboolean—Always true in this list
selected_idstring | null—The member's current saved choice — null = no bonus; use it to highlight the selected option.
Response example
{
  "success": true,
  "code": 0,
  "message": "สำเร็จ",
  "data": {
    "mode": "choose",
    "options": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440111",
        "type": "FIRST_DEPOSIT",
        "name": "ฝากแรกของวันรับเพิ่ม 10%",
        "description": "โบนัส 10% สำหรับยอดฝากแรกที่สำเร็จของวัน",
        "banner_url": "https://cdn.bestsystem.example/promotions/first-deposit-10.jpg",
        "sort_order": 3,
        "config": { "percentage": 10, "max_bonus_thb": 300, "min_deposit_thb": 100 },
        "time_window": null,
        "wager_mode": "TURNOVER",
        "wager_multiplier": "3",
        "withdraw_cap_thb": null,
        "allowed_provider_ids": [],
        "allowed_categories": [],
        "ends_at": null,
        "eligible": true,
        "cashback_available_thb": null,
        "cashback_claimed_today": false
      },
      {
        "id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
        "type": "GOLDEN_MINUTE",
        "name": "นาทีทอง 20.00-22.00 รับเพิ่ม 15%",
        "description": "ฝากช่วงนาทีทองรับโบนัสเพิ่ม 15%",
        "banner_url": "https://cdn.bestsystem.example/promotions/golden-minute.jpg",
        "sort_order": 4,
        "config": { "percentage": 15, "max_bonus_thb": 500, "min_deposit_thb": 200 },
        "time_window": { "recurrence": "DAILY", "start_hour": 20, "end_hour": 22 },
        "wager_mode": "TURNOVER",
        "wager_multiplier": "5",
        "withdraw_cap_thb": "10000.00",
        "allowed_provider_ids": [],
        "allowed_categories": [],
        "ends_at": null,
        "eligible": true,
        "cashback_available_thb": null,
        "cashback_claimed_today": false
      }
    ],
    "selected_id": "550e8400-e29b-41d4-a716-446655440111"
  },
  "request_uuid": "5c8d2f4a-1e37-49b0-a6d4-8e2f5c1b7d90"
}

Possible error codes

codeNameHTTPMessage
1001UNAUTHORIZED401Unauthorized
1007TOKEN_INVALID401Token invalid