Returns coupon detail object when code=0; empty object {} otherwise
| Name | Type | Description | Notes |
|---|---|---|---|
| Id | int | Coupon distribution record ID (coupon_send_issuing_log.id) | [optional] |
| DetailsId | int | User coupon detail table primary key (separate table per type). This field is 0 for task coupons | [optional] |
| CouponType | string | Coupon type, enum values same as the `coupon_type` parameter | [optional] |
| Name | string | Coupon display name (i18n translated) | [optional] |
| Amount | string | Coupon denomination (formatted string with thousand separators). Meaning by type: point card = balance, interest rate boost coupon = rate percentage (e.g., '5%'), VIP trial card = VIP level number, position voucher = face value x leverage, others = face value | [optional] |
| OriginAmount | string | Original denomination (string with trailing zeros removed). Only returned for point card type, other types do not have this field | [optional] |
| Currency | string | Denomination unit. Point card = 'POINT', interest rate boost coupon = 'APR', VIP trial card = 'VIP', Alpha cash coupon = base currency, others = uppercase currency symbol (e.g., 'USDT'/'GT') | [optional] |
| RuleNew | string | Coupon usage rule text (i18n translated). Only has value in the detail endpoint, fixed as empty string in the list endpoint | [optional] |
| Status | string | Coupon status. Regular coupon: NOT_ACTIVE (pending activation), ACTIVATED (activated), TO_BE_USED (to be used), EXPIRED (expired), RECYCLED (recycled), INVALID (invalidated), USED (used), UNKNOWN (unknown), LOCKED (locked, P2P only). Task coupon: TASK_START (task not started), TASK_WAIT (task in progress), TASK_DONE (task completed, processing), TASK_EXPIRED (task not completed, expired), TASK_NOT_STARTED_EXPIRED (not started, expired), TASK_RECEIVE_SUCCESS (reward claimed successfully), TASK_RECEIVE_FAIL (reward claim failed) | [optional] |
| JumpUrl | ListUserCouponsResponseDataJumpUrl | [optional] | |
| HelpUrl | ListUserCouponsResponseDataHelpUrl | [optional] | |
| ExpireTime | int | Expiration time (Unix timestamp). Some types replace this with actual expiration time after activation/use. Point card type returns 0. Rules by type: cash=not_received_expired_timest; contract_bonus=uses expired_timest after activation/use; contract_bonus_new=always uses expired_timest; position_voucher/tradfi_position_voucher=uses expire_time after use; robot_bonus=not_received_expired_timest; commission_rebate=uses use_deadline after use; crypto_loan_interest=not_using_expired_timest; copy_trading=not_using_expired_timest; alpha_voucher=not_received_expired_timest; etf_voucher=not_using_expired_timest | [optional] |
| ExpireTimeOrderBy | int | Sorting expiration time (from the original expiration time of the distribution record, unaffected by activation) | [optional] |
| ExpireSecond | int | Seconds remaining until expiration, returns 0 if expired or point card type | [optional] |
| HasUsageHistory | bool | Whether there is a usage history. Fixed as true for point card type, determined by type for others | [optional] |
| HasProgress | bool | Whether to display a progress bar. Only true for commission_rebate, interest_voucher, and qualifying task coupons | [optional] |
| ProgressConfig | ListUserCouponsResponseDataProgressConfig | [optional] | |
| ActivationInfo | Object | Type-specific activation information. Types without specific fields return empty object {}. Fields by type: interest_voucher={supported_pairs (applicable trading pairs), transaction_type}; contract_bonus_new={received_expired_hour (valid hours after activation)}; contract_bonus={check_unified_account_mode, received_expired_days (valid days after activation), abtest}; commission_rebate={market (spot/margin/futures/alpha/etf/tradfi), market_name (market display name)}; robot_bonus={designated_bots (ENABLED = designated strategies only / DISABLED = unrestricted)}; position_voucher={symbols (applicable trading pairs, empty = unrestricted), leverage, need_user_funds (0 = no user funds required / 1 = user funds required), user_funds_amount, position_bonus (original face value)}; tradfi_position_voucher={symbols, leverage, position_bonus}; etf_voucher={currency_markets (ETF market list, comma-separated), amount (original face value)} | [optional] |
| IsTaskCoupon | int | Whether it is a task coupon. `0` = regular coupon; `1` = task coupon | [optional] |
| UpgradeToast | bool | Whether to prompt the user to upgrade the App (true when the app version is too old to support the coupon) | [optional] |
| FromTask | bool | [Detail endpoint only] Whether this regular coupon was obtained by completing a task (a sub-coupon automatically issued after task completion). Regular coupons may be true, task coupons are always false | [optional] |
| TaskTitle | string | Task title. Task coupons have value; regular coupons return empty string (but task_title is not assigned when from_task=true) | [optional] |
| TaskDesc | string | Task description. Task coupons have value; regular coupons return empty string | [optional] |
| TaskStartAt | int | Task start timestamp (Unix). Task coupon: has value when in TASK_EXPIRED status, otherwise 0; regular coupon (from_task=true): start time of the source task | [optional] |
| TaskExpireAt | int | Task validity expiration timestamp (Unix). Task coupon: claim validity deadline (0 means unlimited); regular coupon: fixed at 0 | [optional] |
| TaskCompletedAt | int | Task completion timestamp (Unix). Task coupon: task completion time (0 means not completed); regular coupon (from_task=true): completion time of the source task | [optional] |
| Extra | List<List<Object>> | [Detail endpoint only] Coupon detail attributes organized by display blocks. The frontend renders them as separate sections. Point card type always returns empty array []. Other types return a 2D array composed of blocks: block 1 = coupon name/source/status, block 2 = coupon core attributes, block 3 = time information. Each item contains: type (display type: string/timestamp/day/hour/status/btn), key (label text, i18n translated), value (string or integer, timestamp type is Unix timestamp) | [optional] |