figma guide
Designing breach settlement disbursement hold release and payment gate UI in Figma: HOLD-DISB-* orchestration, GATE-PAY-* rules, and WAVE-* batch safety
Design breach settlement disbursement hold UI in Figma with HOLD-DISB-* reasons, GATE-PAY-* release rules, WAVE-* batch guards, and counsel locks before payout files export.
- Published
- Updated
- Sep 19, 2026
- Read time
- 5 min
- Level
- Intermediate
Quick answer
Disbursement hold UI prevents WAVE- batches from paying claims that fail policy, law, or data integrity checks—not a single “fraud flag” checkbox.* Design HOLD-DISB- records* with structured reason codes, GATE-PAY- release rules* (all-of vs any-of predicates), and BATCH-GUARD- preflight* panels that scan a tranche before payment file export. Holds should originate from tier objections, fraud detection, ID re-verification, restatement ack, contested escrow, lien offsets, and appeal stays—each with LOG-HOLD-* and optional APP-REL-* counsel approval. Without orchestration UI, one team clears a fraud hold while another exports WAVE-*, returned payments spike, and call center agents cannot explain “paid but pending.” Start from the Figma guides hub and pair with counsel payout approval, distribution schedule, and fund reconciliation.
Who this is for
- Product designers unifying hold reasons across admin, treasury, and claimant surfaces.
- Operations leads running BATCH-GUARD-* before every tranche release.
- Developers implementing deterministic GATE-PAY-* evaluation order.
HOLD-DISB-* lifecycle overview
DisbursementHold — HOLD-DISB-9921 · CLM-4412 · Status: Active
├── Reason codes (non-exhaustive):
│ ├── OBJ-TIER-* open · [tier objection](/designing-breach-settlement-tier-objection-and-award-challenge-ui-in-figma/)
│ ├── FRAUD-* · [duplicate claim](/designing-breach-settlement-duplicate-claim-detection-and-fraud-prevention-ui-in-figma/)
│ ├── IDV-* · [step-up verification](/designing-breach-settlement-claimant-identity-reverification-and-step-up-ui-in-figma/)
│ ├── REST-ACK-* · [award restatement](/designing-breach-settlement-award-restatement-and-fin-awd-version-history-ui-in-figma/)
│ ├── DISP-* · [appeals](/designing-breach-settlement-claims-dispute-and-appeals-ui-in-figma/)
│ ├── LIEN-PEND-* · [creditor offset](/designing-breach-settlement-lien-and-third-party-creditor-offset-ui-in-figma/)
│ ├── DEF-NOT-* · [deficiency](/designing-breach-settlement-deficiency-notice-and-claim-cure-ui-in-figma/)
│ ├── STY-APP-* · [appeal stay](/designing-breach-settlement-appeal-and-mandamus-review-ui-in-figma/)
│ └── MANUAL-* · dual-control admin hold
├── ID namespace:
│ ├── HOLD-DISB-* (hold instance)
│ ├── REASON-HOLD-* (taxonomy)
│ ├── GATE-PAY-* (computed pay/no-pay)
│ ├── APP-REL-* (release approval)
│ ├── LOG-HOLD-* · LOG-REL-*
│ ├── BATCH-GUARD-* (tranche scan job)
│ └── EXCL-WAVE-* (claim skipped in batch)
├── Stacking rules:
│ ├── Multiple holds OK · release only when all clear
│ ├── Severity · hard block vs soft warning
│ ├── Auto-release on source close · e.g. OBJ-TIER resolved
│ ├── Manual release requires APP-REL-* for MANUAL-*
│ └── Expiry · rare · log if used
└── Surfaces:
├── Treasury WAVE-* planner · red/yellow counts
├── [Status portal](/designing-breach-settlement-claim-status-portal-and-claimant-dashboard-ui-in-figma/) · plain language
└── [Counsel review](/designing-breach-settlement-counsel-review-and-payout-approval-ui-in-figma/) · hold summary tab
| HOLD state | GATE-PAY-* | WAVE-* export |
|---|---|---|
| Active (hard) | Block | Claim excluded |
| Active (soft) | Warn | Requires override + LOG |
| Pending APP-REL | Block | Batch blocked if any |
| Released | Allow | Eligible if other gates pass |
| Superseded | Recalc | Audit only |
Verdict: GATE-PAY- must be computed server-side at export time— UI toggles alone do not release payment.*
GATE-PAY-* rule builder UI
PaymentGate — GATE-PAY-SETTLEMENT-2026 · policy version 14
├── Predicate groups:
│ ├── Identity · IDV pass · not expired
│ ├── Award · active VER-AWD-* · no REST-ACK pending
│ ├── Disputes · no open OBJ-TIER / DISP hard holds
│ ├── Treasury · FIN-AWD ≤ escrow ALLOC available
│ ├── Legal · not on STY-APP-* list
│ └── Payment rail · valid [payment method](/designing-payment-methods-ui-in-figma/)
├── Evaluation order (document for eng):
│ ├── 1. Hard holds · any → block
│ ├── 2. Award version lock
│ ├── 3. Lien net amount > 0
│ ├── 4. Counsel APP-PAY-* on claim or batch
│ └── 5. BATCH-GUARD-* sample QA pass
├── Override path:
│ ├── Role · counsel + admin dual
│ ├── Reason text · min length
│ ├── LOG-OVERRIDE-* immutable
│ └── Optional monitor notify
└── Test harness:
├── Paste CLM id · show GATE-PAY trace
├── Simulate WAVE-* · list EXCL-WAVE-*
└── Export policy JSON for CI fixtures
Use forms for override reasons and modals for destructive batch overrides.
BATCH-GUARD-* preflight UI
| Check | Failure action | Owner |
|---|---|---|
| Hold count | Block export | Treasury |
| VER-AWD drift | Block · rerun planner | Admin |
| Escrow ALLOC | Block · reconciliation | Treasury |
| Duplicate bank tokens | Block · fraud queue | Risk |
| Sample QA fail | Block · post-disbursement QA | Compliance |
| Counsel lock missing | Block | Counsel |
Show a single tranche dashboard: eligible count, excluded with top REASON-HOLD-* breakdown, and estimated release after auto-clear events.
Comparison: hold vs escrow vs provisional pay
| Mechanism | Cash movement | Claimant message |
|---|---|---|
| HOLD-DISB-* | None | “Payment on hold” |
| Contested escrow | Reserve moved | “Under review” |
| Provisional pay | Partial pay | “Interim payment” |
| STY-APP-* | Pool-level freeze | Program-wide notice |
Recommended: do not use provisional pay to bypass HOLD-DISB-* without explicit plan language and LOG.
Common mistakes
- Releasing HOLD-DISB- locally while OBJ-TIER- still open**— double source of truth.
- No BATCH-GUARD- on partial WAVE- reruns**— stale exclusions after VER-AWD-* change.
- Claimant portal shows “approved” while GATE-PAY- blocks*— align copy with status portal states.
- Manual overrides without APP-REL-*— auditor findings in external review.
- Ignoring returned payment auto-hold— reissue loops pay twice.
Recommended workflow
- Define GATE-PAY- policy* with counsel · version in admin UI.
- Auto-create HOLD-DISB-* from source systems · never orphan holds.
- Run BATCH-GUARD-* on WAVE-* draft · fix exclusions · counsel batch APP-PAY-*.
- Export payment file · stamp GATE-PAY trace id on batch.
- Post-export · auto-hold on return/NOC events · link LOG-HOLD-*.
FAQ
Soft vs hard hold?
Hard blocks GATE-PAY-*— soft requires explicit treasury acknowledgment to export.
Hold on zero-dollar claims?
Still log— prevents erroneous future credits when VER-AWD-* updates.
Provisional payment with active hold?
Only if GATE-PAY- policy includes PROV- exception**— show separate timeline either way.
Developer handoff?
Ship GATE-PAY- as pure functions* with ordered trace array for support tools— Dev Mode checklist.
Monitor reporting?
Include hold aging histogram in court monitor reports— not only paid dollars.
Next steps
- Design breach settlement award restatement and FIN-AWD version history UI in Figma — REST-ACK holds
- Design breach settlement payment disbursement and payout tracking UI in Figma — WAVE-* after gates pass
- Design breach settlement counsel review and payout approval UI in Figma — APP-PAY-* locks
- Design breach settlement distribution schedule and tranche disbursement planning UI in Figma — tranche planning with exclusions
- Design breach settlement contested claim escrow and dispute reserve UI in Figma — reserve vs hold semantics
§ Keep reading