Daily card overview

Live
GET/api/v1/card

Fetch all details of the member's daily card.

The card is deposit-gated for the day (evaluated at read time): ≥ 1 successful deposit and today's total ≥ unlock_deposit_thb make eligible = true.

prize_amount_thb applies in CREDIT mode and prize_diamond in DIAMOND mode — the other field is always "0" per the configured mode.

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
enabledboolean—Whether the card is enabled at the agent level — hide the menu when false (a DIAMOND-mode card is only enabled when the agent's diamond program is also on).
reward_modestring—The agent's reward mode: CREDIT = pays wallet credit · DIAMOND = pays diamonds (one mode per agent).CREDIT | DIAMOND
unlock_deposit_thbstring—The cumulative successful-deposit amount for today needed to unlock a flip (THB, string; "0" = any ≥ 1 successful deposit unlocks).
deposited_today_thbstring—The member's total successful deposits today (THB, string) — show progress against unlock_deposit_thb
deposit_count_todaynumber—Number of successful deposits today
eligibleboolean—Whether the flip is unlocked (enabled + ≥ 1 successful deposit + total ≥ unlock_deposit_thb) — the flip button should also check eligible && !already_played_today.
already_played_todayboolean—Whether the card was already flipped today (one flip per day)
card_back_image_urlstring | null—The card-back art (displayable URL; null = default art)
background_image_urlstring | null—The game background art (displayable URL; null = default)
slotsobject[]—All cards (6) ordered by slot_index — per-card probabilities are never exposed.
└ slot_indexnumber—Card position (0-5)
└ labelstring—Card label, e.g. "20 บาท"
└ prize_amount_thbstring—Credit prize of the card (THB, string) — used when reward_mode = CREDIT, "0" is a no-win card
└ prize_diamondnumber—Diamond prize of the card (integer) — used when reward_mode = DIAMOND, 0 is a no-win card
today_resultobject | null—Today's flip result — null when not yet flipped today (shows the played card when already_played_today = true)
└ slot_indexnumber—The flipped card
└ labelstring—The flipped card's label at the time (snapshot)
└ prize_amount_thbstring—Credit prize won (THB, string) — "0" in diamond mode or on a no-win
└ prize_diamondnumber—Diamond prize won — 0 in credit mode or on a no-win
└ played_atstring (ISO 8601)—When the flip happened
Response example
{
  "success": true,
  "code": 0,
  "message": "Card fetched successfully",
  "data": {
    "enabled": true,
    "reward_mode": "CREDIT",
    "unlock_deposit_thb": "300",
    "deposited_today_thb": "500",
    "deposit_count_today": 2,
    "eligible": true,
    "already_played_today": false,
    "card_back_image_url": "https://cdn.bestsystem.example/card/luckybet888-back.png",
    "background_image_url": "https://cdn.bestsystem.example/card/luckybet888-bg.png",
    "slots": [
      { "slot_index": 0, "label": "5 บาท", "prize_amount_thb": "5", "prize_diamond": 0 },
      { "slot_index": 1, "label": "เสียใจด้วย", "prize_amount_thb": "0", "prize_diamond": 0 },
      { "slot_index": 2, "label": "20 บาท", "prize_amount_thb": "20", "prize_diamond": 0 },
      { "slot_index": 3, "label": "เสียใจด้วย", "prize_amount_thb": "0", "prize_diamond": 0 },
      { "slot_index": 4, "label": "50 บาท", "prize_amount_thb": "50", "prize_diamond": 0 },
      { "slot_index": 5, "label": "100 บาท", "prize_amount_thb": "100", "prize_diamond": 0 }
    ],
    "today_result": null
  },
  "request_uuid": "3b7e0d9c-4f61-4a28-b5e3-8d2c6f1a9e07"
}

Possible error codes

codeNameHTTPMessage
6231DAILY_CARD_NOT_ENABLED400The daily card game is not enabledToday a disabled card answers success with enabled = false and empty lists instead — still handle this code, as flip uses it
1001UNAUTHORIZED401Unauthorized
1007TOKEN_INVALID401Token invalid