§2
依开发确认改为容错解析:英文/中文逗号、英文/中文分号、空白与换行均可识别,空项跳过、大小写不敏感、同批重复去重,不再产生“账号格式错误”;只有账号查无、非总代、重复、品牌或权限不符才走对象类失败。全文按需求
27–32 的最短路径重写,保留既有业务边界与完整版本历史;新增 BO HTML
原型并重绘资讯图表。
Author Luke Source Version
v1.12 Translation Version
EN-1.5 Date 2026-09-14 Status In
Progress Platforms BRAND_A &
BRAND_B Category M
This file is the English translation of PRD_v1.12_withdrawalChannelLimit.md.
The Chinese PRD remains the authoritative source. If the two files
differ, follow the Chinese PRD and update this translation.
EN-1.5 aligns Admin Action Log and the Set Limits action with the canonical translation dictionary and source v1.12. Business rules are unchanged.
Source Version History
Version
Date
Change Summary
v1.12
2026-09-14
Aligned the English wording for §5.3 and the BO prototype with the canonical terms Admin Action Log, Withdrawal Channel Management, and the Set Limits action. Removed visible form-difference explanations, added reversible full-page Chinese/EN switching, and completed the duplicate-existing-Master-Agent simulation. Business rules are unchanged.
v1.11
2026-09-11
Specified that a zero-success batch returns the first actual failure
reason in cleaned input order, using that reason's single-item message;
added the matching acceptance coverage. The BO prototype adds a
BRAND_A-scope simulation, an out-of-scope creation branch, and all four
edit-amount range boundaries.
v1.10
2026-09-11
Changed §2 to tolerant parsing based on
engineering confirmation: English and Chinese commas, English and
Chinese semicolons, whitespace, and line breaks are recognized as
separators; empty items are skipped; matching is case-insensitive;
duplicates in the same batch are removed; and no account-format error is
produced. Only account-not-found, non-Master-Agent, duplicate,
BRAND-scope, or permission failures remain. Rewrote the document using
the Requirements 27–32 concise standard while preserving existing
business boundaries and version history; added the BO HTML prototype and
redrew the infographic.
v1.9
2026-08-13
Shortened L0 and consolidated repeated rules; removed restatements
of platform baseline behavior and the unsupported agent-line-change
scenario; finalized physical deletion; retained only
requirement-specific audit details; reorganized acceptance criteria by
failure mode while preserving existing AC numbers; and clarified
deliberate design choices for full replacement limits, batch results,
edit fields, deletion confirmation, and the lower bound of
1.
v1.8
2026-08-12
Restricted the rule that controls remain visible without permission
to the three write permissions only; the page-entry permission continues
to hide the entry.
v1.7
2026-08-12
Finalized the limit range as 1–50000, standardized the
timestamp format as yyyy-MM-dd HH:mm:ss, added concrete
examples of wider and stricter overrides, and aligned batch-deletion
copy.
v1.6
2026-08-12
Aligned bulk deletion to list every Master Agent account without
displaying a count; fixed related count and wording
inconsistencies.
v1.5
2026-08-12
Removed obsolete open points and repeated explanations; confirmed no
Remarks field and kept only requirement-specific behavior.
v1.4
2026-08-12
Aligned object-specific errors, error-code mapping, record
lifecycle, Master Agent resolution, and downstream return boundaries
with the deposit-side requirement; the earlier channel-specific range
decision was later replaced by v1.7.
v1.3
2026-08-11
Removed deletion Remarks, reordered field tables, and removed an
incorrect out-of-scope statement.
v1.2
2026-08-11
Added concurrency uniqueness, parsing consequences, server rejection
of attempted Master Agent changes, permission revocation handling, and
zero-success batch behavior.
v1.1
2026-08-11
Added missing fallback and read-failure branches, skip-and-continue
batch handling, read-only behavior, and the stricter-limit example.
v1.0
2026-08-11
Initial version. Added Set Limits to each
Withdrawal Channel and defined per-channel, per-Master-Agent minimum and
maximum withdrawal limits with Base Configuration fallback.
Table of Contents
L0 · Quick Overview
All Master Agent examples in the infographic use the required
@BRAND_A suffix.
① Requirement in One
Sentence
Add Set Limits to each channel under Deposit
& Withdrawal Channel Management > Withdrawal Channel
Management. Maintain the minimum and maximum per-transaction
withdrawal limits by Master Agent. Use the Limit Record when it exists;
otherwise, use the channel's Base Configuration.
② Fixed Terminology
Term
Only meaning in this document
Limit Record
One override configuration for a Withdrawal Channel and a Master
Agent.
Base Configuration
The channel's existing default limit, used only when no Limit Record
exists.
User Channel
The list's BRAND filter, based on the Master Agent's BRAND. The
Withdrawal Channel itself is platform-wide.
Per-Transaction Limit
The minimum and maximum amount for one withdrawal, not a daily total
or transaction-count limit.
③ Global Invariants
#
Invariant
Failure impact
Verification
G1
A channel and a Master Agent may have at most one Limit Record. Use
that record when it exists; otherwise, use Base Configuration.
The wrong limit may be used or two sources of truth may be
created.
AC1AC2AC11
G2
A Limit Record applies to the Master Agent's entire agent line.
Downline members may not receive the configured limit.
AC3
G3
Both limits must be positive integers from 1–50000, and
the minimum must be strictly less than the maximum.
An invalid range may be created.
AC8AC9
G4
Limits are independent of channel assignment. If the channel is
unassigned or the Master Agent cannot be resolved, the channel remains
hidden.
A Limit Record may unintentionally make a channel available.
AC4AC5
G5
Read the limit once when the player submits. Later edits or
deletions do not re-evaluate withdrawals already in progress.
An already submitted withdrawal may be changed retroactively.
AC6AC7
G6
Account input uses tolerant parsing and does not produce format
errors. Fail only when an account is not found or violates an object or
business rule.
A valid list may be blocked because of punctuation.
AC12AC13AC14
G7
Header Select All covers all results under the current filter.
Per-row selections apply only to the current page and are cleared after
page changes.
The batch scope may be incorrect.
AC18AC19
G8
Deletion is physical, while the log retains the prior values. The
same Master Agent may be added again.
A deleted configuration may become impossible to recreate or
audit.
AC20AC21
G9
If the Limit Record read fails, reject the withdrawal and ask the
player to retry. Never treat the failure as unlimited.
A money-related error may be allowed through.
AC10
④ Scope
This release includes the entry, limit list, create, edit, delete,
bulk edit, bulk delete, BRAND filter, value precedence, four
permissions, and Admin Action Log entries. It does not change
Assignment Settings, View Balance,
channel master data, player-facing pages or copy, Secondary-Agent or
individual-member limits, import, export, alerts, rate limits, or
asynchronous jobs.
1. Pages and Data
1.1 Entry
1.1.1 The action order in the Withdrawal Channel
list is fixed as Assignment Settings, View
Balance, and Set Limits. Set
Limits appears on every row. A user with view permission can
open the channel's full-page limit list; write permissions are evaluated
separately.
1.2 Limit List
1.2.1 The title is
Withdrawal Channel List – {Configuration Name} – Limit List.
Each channel has one list. Back returns to the
Withdrawal Channel list.
Order
Column
Rule
1
Selection
Header Select All and per-row selection.
2
ID
Auto-increment primary key; batch operations identify records by
ID.
3
Master Agent
Account; immutable after creation.
4–5
Minimum / Maximum Per-Transaction Limit
Positive integers.
6
Updated At
yyyy-MM-dd HH:mm:ss; time of the latest manual
write.
7
Administrator
User who performed the latest manual write.
8
Actions
Edit and Delete; always
visible.
1.2.2 Sort by ID ascending by default. The only
filter is User Channel:
All / BRAND_A / BRAND_B.
2. Creation and Account
Parsing
2.1 Form
2.1.1 The top of the page contains the multiline
Add Agents (Master Agents only) input, Minimum
Per-Transaction Limit, Maximum Per-Transaction
Limit, Add, and Back.
Multiple Master Agents may share one limit pair in a single submission.
The account placeholder is
Separate with commas, semicolons, spaces, or line breaks.
2.2 Tolerant Parsing
2.2.1 The frontend and backend use the same
pipeline:
Recognize the English comma ,, Chinese comma
,, English semicolon ;, Chinese semicolon
;, tab, space, and line break as separators.
Trim each item and skip empty items. Consecutive, leading, or
trailing separators do not produce an error.
Deduplicate accounts case-insensitively. A duplicate in the same
batch counts as one item.
Use the cleaned, deduplicated account count to determine single
versus batch handling and the 100-account limit.
2.2.2 Zero accounts after cleaning is handled as a
missing required value. More than 100 accounts blocks the entire batch
and preserves the input. There is no account-format error branch: a
string that does not resolve to an account is handled as an
account-not-found error.
Master Agent BRAND is within the administrator's permitted
scope.
Return the matching permission error.
Exclude the item.
6
The channel does not already have a record for the Master
Agent.
Return the duplicate message.
Exclude the item.
2.3.1 A frozen or disabled Master Agent may still be
added and the record takes effect. Process batch items independently. If
any item succeeds, return only the success count and no failure details.
If zero items succeed, return the first actual failure reason in cleaned,
deduplicated input order and reuse that reason's single-item message from
§5.2 verbatim. Do not always report “not a Master
Agent” or let a later reason overwrite the first one. If concurrent
creation hits the unique constraint, exclude only the
conflicting item.
3. Value Resolution,
Effect, and Errors
3.1 Limit Rules
3.1.1 Both limits accept only positive integers from
1–50000, inclusive. Reject 0, negative values,
decimals, and thousands separators. The minimum must be strictly less
than the maximum. A Limit Record may be wider or stricter than Base
Configuration; do not intersect the ranges.
3.2 Value Used at Player
Submission
Query by the player's Master Agent and the current Withdrawal
Channel. If a Limit Record exists, use its minimum and maximum
values.
Only when no Limit Record exists, use the channel's default limits
from Base Configuration.
If the channel is unassigned or the Master Agent cannot be resolved,
do not show the channel to the player. If Base Configuration also cannot
be read, the channel is unavailable.
If the Limit Record read times out or fails, keep the channel
visible, but reject submission, ask the player to retry, and write a
system runtime log. Do not fall back or allow the request.
3.2.1 The limits apply to the Master Agent's entire
agent line. Read and validate once when the player submits. A saved
change affects only later submissions; do not re-evaluate withdrawals
already in progress. Downstream consumers receive only the effective
minimum and maximum values, not the source level.
4. Edit, Delete, and Batch
Operations
4.1 Edit
4.1.1 Single and batch edits use the same dialog
titled Edit limits for {n} records. The Master Agent field
is disabled and the complete list remains scrollable. Both amount fields
are empty and required. Confirming applies one limit pair to all
selected records. The buttons are Confirm and
Cancel. No second confirmation is required. Reject the
entire request if it contains a Master Agent field.
4.2 Delete
4.2.1 Single and batch deletion use the same
confirmation dialog and do not require Remarks. The dialog lists every
selected Master Agent account without truncation. After confirmation,
physically delete the records. They disappear from the list, limits
immediately fall back to Base Configuration, and the same Master Agent
may later be added again with a new ID.
4.3 Selection,
Concurrency, and Results
4.3.1 Do not send a batch edit or delete request
when nothing is selected. Per-row selections apply only to the current
page. Header Select All covers all results across pages under the
current filter. During batch execution, skip deleted or unauthorized
items and continue with the rest. Always display
Operation successful. without success or skipped
counts.
4.3.2 For concurrent edits to the same record, the
later save wins. If a record has been deleted before a single edit or
delete is submitted, ask the operator to refresh. Repeated submissions
must not create duplicate records or repeat deletion.
5. Permissions, Copy, and
Admin Action Log
5.1 Permissions
Permission Key / English Meaning
Controls
Without permission
提款渠道管理_设置限额
Withdrawal Channel Management — Set Limits
5.1.1 The backend revalidates permissions and the
target Master Agent's BRAND on every write. Administrators may see only
records within their permitted BRAND scope.
5.2 Backoffice Copy
Chinese remains the source copy. The English column is the approved
display translation for the bilingual prototype.
Scenario
Chinese source
English display
Presentation
No selection for a batch operation
请先选择用户,再操作
Select at least one user before continuing.
Dialog.
More than 100 accounts after cleaning and deduplication
仅支持单笔 100 个账号
A maximum of 100 accounts is allowed per submission.
Dialog; preserve the input.
Required value missing or no account after cleaning
请填写完整
Complete all required fields.
Inline.
Limit format or range error
请输入 1–50000 的正整数
Enter a positive integer from 1 to 50000.
Inline.
Minimum is greater than or equal to maximum
单笔最大限额 需大于 单笔最小限额
Per-transaction maximum must be greater than the minimum.
Inline.
Single account not found
查无此账号,请检查确认
Account not found. Check and try again.
Dialog.
Single account is not a Master Agent
该用户非总代,请检查确认
This user is not a Master Agent. Check and try again.
Dialog.
Single duplicate
{总代账号} 该总代之前已添加,请勿重复提交
{Master Agent account} was already added. Do not submit it again.
Dialog.
Outside BRAND scope
该总代不在您的可操作范围内
This Master Agent is outside your permitted scope.
Dialog.
Missing write permission
您没有操作权限,请联系管理员
You do not have permission. Contact an administrator.
Dialog.
Target already deleted
该笔配置已被删除,请刷新后重试
This limit record was deleted. Refresh and try again.
Dialog; refresh after closing.
Single-delete confirmation
{总代账号},是否确认删除?
Delete {Master Agent account}?
Dialog.
Batch-delete confirmation
{账号1},{账号2} 是否确认删除?
Delete {account1}, {account2}?
Dialog; show the complete list.
Success or partial batch success
操作成功
Operation successful.
Dialog; no count.
Zero-success batch creation
Use the single-item Chinese message for the first actual failure
reason in cleaned input order.
Use the matching English display message for that same reason.
Dialog; show only that reason.
Empty Limit List
No More Data
No More Data
Inline empty state.
5.2.1 Separator formatting does not trigger a
message by itself. For system query or write failures, preserve the
backoffice's existing raw error presentation and do not add new
copy.
5.3 Admin Action Log
5.3.1 Create, edit, and delete actions write Admin
Action Log entries containing object ID, Master Agent, channel, and
values before and after the change. A batch action writes one summary
with the object ID list. Batch creation also records submitted,
successful, and excluded counts, plus the excluded accounts. The Admin
Action Log does not include Remarks or an operation-reason field. A
Limit Record read failure writes a system runtime log.
L2 · Acceptance and
Appendices
Appendix A: Acceptance Criteria
#
P
Acceptance Criterion
AC1
P0
For the same channel and Master Agent, use the Limit Record when it
exists and Base Configuration when it does not (G1).
AC2
P0
A Limit Record may be wider or stricter than Base Configuration; do
not intersect the ranges (G1).
AC3
P0
A downline member uses the record of their Master Agent
(G2).
AC4
P0
An unassigned channel remains hidden from the player even when a
Limit Record exists (G4).
AC5
P0
Removing channel assignment does not delete the record; the original
record takes effect immediately when assignment is restored
(G4).
AC6
P0
After saving new values, the next withdrawal submission uses the new
values (G5).
AC7
P0
A withdrawal submitted before the save is not re-evaluated
(G5).
AC8
P0
Accept 1 and 50000; reject 0,
negative values, decimals, thousands separators, and 50001
(G3).
AC9
P0
Block when the minimum is equal to or greater than the maximum
(G3).
AC10
P0
When a Limit Record read failure is injected, reject submission, ask
the player to retry, and write a log. Do not fall back or allow the
request (G9).
AC11
P0
Concurrent creation for the same channel and Master Agent produces
only one record (G1).
AC12
P0
Parse agentA,, agentB;\nAGENTA,agentC; as
agentA / agentB / agentC without a format error
(G6).
AC13
P0
Input containing only commas, semicolons, and whitespace is handled
as a missing required value (G6).
AC14
P0
not-exist@@ does not produce a format error; handle it
as account not found (G6).
AC15
P1
After cleaning and deduplication, 100 accounts may be submitted; 101
blocks the entire batch and preserves the content.
AC16
P1
In a batch, exclude invalid, non-Master-Agent, unauthorized, or
duplicate items and write the valid items. If zero items succeed, report
the first actual failure reason in cleaned input order.
AC17
P1
A frozen or disabled Master Agent may still be added and the record
takes effect.
AC18
P0
A batch operation with no selection sends no request
(G7).
AC19
P0
Header Select All covers every result across pages under the current
BRAND filter (G7).
AC20
P0
After deletion, the record disappears, the limit falls back to Base
Configuration, and the Master Agent may be added again with a new ID
(G8).
AC21
P0
The deletion log retains the Master Agent, channel, and prior values
(G8).
AC22
P1
The edit dialog does not prefill amounts and does not allow editing
the Master Agent. Reject the entire request if it contains a Master
Agent field.
AC23
P1
The batch-edit impact count uses the actual selection count. Skip
deleted items and update the rest.
AC24
P0
Hide the entry without view permission. Without write permission,
keep controls visible but reject submission in both frontend and
backend.
Appendix B: Prototype Visual Checklist
Prototype Visual Checklist
Visual ID
Surface
Purpose
Evidence
VIS-BO-NONE
BO
The backoffice page uses no image or image placeholder.
The BO prototype contains only forms, tables, and dialogs.