figma guide
Designing breach settlement counsel review and payout approval UI in Figma: APR-* queues, COUN-* sign-off, and dual-control disbursement gates
Design breach settlement counsel review and payout approval UI in Figma with APR-* approval queues, COUN-* sign-off states, dual-control gates, and audit-ready payout holds.
Intermediate
- Published
- Updated
- Aug 31, 2026
- Read time
- 7 min
- Level
- Intermediate
- Editor
- Abdus Salam
Quick answer
Counsel review and payout approval UI prevents settlement money from leaving the fund until the right people sign off—without burying approvers in unreadable claim PDFs. Design APR- approval requests* for individual CLM-* or batch PAY-* releases, COUN- counsel sign-off states* with segregation of duties, and dual-control gates where ops prepares and counsel approves (or vice versa per plan). Admins see approval queues with amount thresholds, risk flags, and linked DEF-* / FRD-* / IDV-* status; counsel sees summary cards—not raw PII dumps. Connect to payment disbursement, fraud detection, deficiency cure, identity re-verification, and final accounting. Start from the Figma guides hub and pair with tables, badges, and Dev Mode handoff.
Who this is for
- Product designers building settlement administrator consoles where payouts require counsel or supervisor approval before release.
- Class counsel and claims administrators implementing court-ordered dual-control and amount-threshold rules.
- Compliance teams who need APR-* and COUN-* audit trails that survive discovery and fund audits.
Approval gate overview
ApprovalGate — APR-992-0188 · CLM-992-44102 · PAY-992-22014 · Status: Pending counsel (COUN-*)
├── When approval required (plan config):
│ ├── PAY-* amount above threshold (e.g. >$500)
│ ├── First disbursement in settlement · Batch run release
│ ├── CLM-* with cleared [FRD-* hold](/designing-breach-settlement-duplicate-claim-detection-and-fraud-prevention-ui-in-figma/) · Manual override path
│ ├── [Deceased/heir](/designing-breach-settlement-deceased-claimant-and-heir-designation-ui-in-figma/) or [minor/guardian](/designing-breach-settlement-minor-claimant-and-guardian-designation-ui-in-figma/) payout
│ ├── [Foreign claimant](/designing-breach-settlement-foreign-claimant-and-international-payment-ui-in-figma/) wire above limit
│ ├── Post-[deficiency cure](/designing-breach-settlement-deficiency-notice-and-claim-cure-ui-in-figma/) high-risk category
│ └── [Reissue](/designing-breach-settlement-returned-payment-and-reissue-ui-in-figma/) REI-* after repeat RET-*
├── ID namespace:
│ ├── APR-* (approval request) · COUN-* (counsel sign-off record)
│ ├── PAY-* (held disbursement) · CLM-* (claim context)
│ └── AUD-* (prepare · approve · reject · delegate)
├── Roles (segregation of duties):
│ ├── Ops preparer — creates APR-* · cannot approve own request
│ ├── Counsel approver — COUN-* sign-off · read-heavy UI
│ ├── Supervisor — threshold override · dual rejection resolve
│ └── System — auto-approve below floor (logged)
└── Outcomes:
├── Approved → PAY-* released to [disbursement](/designing-breach-settlement-payment-disbursement-and-payout-tracking-ui-in-figma/)
├── Rejected → Return to review · DEF-* or hold
├── Deferred → More IDV-* or docs
└── Escalated → Court or special master
| Approval tier | Typical threshold | Approver | SLA |
|---|---|---|---|
| Auto | Under plan floor | System | Immediate |
| Supervisor | Mid-tier amounts | Ops lead | 1–2 business days |
| Counsel | High value or flagged | Class counsel | 3–5 business days |
| Court | Plan exception | External filing | Out of band |
Verdict: Preparer and approver must never be the same user on the same APR-*—design the UI to enforce it.
APR-* request structure and ops queue
ApprovalRequest — APR-992-0188 · pay_id: PAY-992-22014 · clm_id: CLM-992-44102
├── Core fields:
│ ├── apr_id (APR-*) · pay_id · clm_id · batch_id (optional)
│ ├── amount · currency · payment_method_enum
│ ├── approval_tier_enum (supervisor · counsel · court)
│ ├── trigger_reasons[] (amount · fraud_clear · foreign · reissue · manual)
│ ├── preparer_user_id · prepared_at
│ ├── approver_user_id (null until COUN-*) · approved_at
│ └── status: draft · pending · approved · rejected · deferred · expired
├── Summary card (counsel view):
│ ├── Claim class · award tier · amount · payee name (masked SSN)
│ ├── Risk chips: FRD cleared · IDV pass · DEF cured · DUP none
│ ├── Linked records: CLM-* · PAY-* · [DOC-*](/designing-breach-settlement-claim-document-upload-and-evidence-management-ui-in-figma/) count
│ └── One-click drill to claim timeline (not 40-tab PDF)
├── Ops queue columns:
│ ├── APR-* · Amount · Tier · Age · Preparer · Status
│ ├── Blockers (IDV pending · DEF open · FRD hold)
│ └── Batch vs single indicator
└── Bulk actions:
├── Submit batch APR-* for counsel · Export approval log
├── Recall draft APR-* · Reassign approver
└── Link to [audit log](/designing-audit-log-and-security-activity-ui-in-figma/)
Use badges for blocker states—counsel should see at a glance why an APR-* is not ready.
COUN-* sign-off and dual-control UI
CounselSignOff — COUN-992-0188 · apr_id: APR-992-0188 · Signed by: counsel_user · 2026-08-31
├── Sign-off screen:
│ ├── Attestation checkbox: "I reviewed per plan section X"
│ ├── Optional comment (internal · may surface in audit)
│ ├── Reject with reason_enum (insufficient_docs · amount_error · policy)
│ ├── Defer → creates ACT-* for [IDV-*](/designing-breach-settlement-claimant-identity-reverification-and-step-up-ui-in-figma/) or DEF-*
│ └── Cannot approve if preparer_user_id === current_user
├── Dual-control batch:
│ ├── Batch summary: count · total $ · max single PAY-*
│ ├── Exception list (flagged CLM-* pulled from batch)
│ ├── Counsel approves batch COUN-* with hash of pay_ids[]
│ └── Partial batch approve not allowed unless plan permits
├── Rejection flow:
│ ├── PAY-* remains held · Notify preparer
│ ├── Preparer fixes · new APR-* or reopen same with version
│ └── AUD-* captures reject reason + counsel comment
└── Delegation:
├── Substitute approver with date range · AUD-* logged
└── No permanent shared counsel login (bad practice)
Prototype side-by-side layout: claim summary left, approval actions right, audit trail footer—counsel workflows are read-decide-sign, not data entry.
PAY-* hold states until approval
PaymentHold — PAY-992-22014 · Status: held_pending_apr · apr_id: APR-992-0188
├── Hold reasons on PAY-* row:
│ ├── held_pending_apr · held_idv · held_frd · held_def · held_manual
│ ├── Badge on [status portal](/designing-breach-settlement-claim-status-portal-and-claimant-dashboard-ui-in-figma/): "Payment processing" (no internal codes)
│ └── Claimant never sees APR-* or COUN-* IDs
├── Release sequence:
│ ├── COUN-* approved → PAY-* → queued → sent
│ ├── Rejected → ops notified · claimant neutral status
│ └── Expired APR-* → re-queue or cancel PAY-*
├── Integration with [disbursement console](/designing-breach-settlement-payment-disbursement-and-payout-tracking-ui-in-figma/):
│ ├── Disbursement batch excludes held PAY-*
│ ├── Approved APR-* injects PAY-* into next run
│ └── [Final accounting](/designing-breach-settlement-final-accounting-and-court-closure-ui-in-figma/) reports held vs released $
└── Notifications:
├── Counsel: daily pending APR-* digest
├── Ops: approval/rejection realtime
└── Claimant: only on actual send (not on approve)
Comparison: approval UI vs adjacent settlement surfaces
| Surface | Focus | This UI adds |
|---|---|---|
| Payment disbursement | Execute PAY-* | Gate before release |
| Fraud detection | Block bad actors | Counsel review after FRD clear |
| Identity re-verification | Prove identity | Approval blocked until IDV pass |
| Deficiency cure | Fix claim data | Approval after cure complete |
| Final accounting | Fund close | Approved vs held reconciliation |
Handoff checklist (Dev Mode)
- ApprovalRequest — apr_id (APR-*), pay_id, clm_id, approval_tier_enum, trigger_reasons[], preparer_user_id, status_enum.
- CounselSignOff — coun_id (COUN-*), apr_id, approver_user_id, attestation_checked, signed_at, reject_reason_enum.
- PaymentHold — pay_id, hold_reason_enum, apr_id, release_eligible (bool).
- ApprovalSummaryCard — clm_id, amount, risk_chips[], linked_record_refs[], timeline_href.
- CounselApprovalQueue — tier_filter[], batch_mode, dual_control_enforced, sortable_columns[].
Common mistakes
| Mistake | Why it hurts | Fix |
|---|---|---|
| Same user prepares and approves | Segregation violation | Block UI when user IDs match |
| Counsel sees full SSN/bank in list | PII exposure | Mask in queue · reveal in secure drill-down |
| No APR-* for batch releases | Unaudited bulk payouts | Batch COUN-* with pay_ids hash |
| Approve with open DEF-* or FRD-* | Bad payout | Blocker badges · disable approve CTA |
| Claimant sees “awaiting counsel” | Confusing · legal exposure | Neutral “processing” copy |
| Reject without reason_enum | Ops cannot fix | Required reject reason + comment |
| No AUD-* on auto-approve below floor | Audit gap | Log system approver + rule ID |
| PDF-only counsel review | Slow · error-prone | Summary card + timeline |
| Partial batch approve without plan rule | Court finding | All-or-nothing batch COUN-* default |
| Hold PAY-* without expiry | Stuck funds | APR-* SLA + escalate |
Recommended workflow
- Map approval tiers from the settlement plan (amounts, roles, batch rules).
- Design ops APR- preparation queue* with blocker chips and batch grouping.
- Prototype counsel sign-off screen with attestation, reject, and defer paths.
- Connect PAY- hold states* to disbursement console filters.
- Define SLA alerts for pending counsel APR-* beyond threshold days.
- Export approval logs for final accounting and compliance exports.
FAQ
Auto-approve below $X—still need UI?
Yes—read-only auto-approve log · Filter “system approved” · AUD-* with rule_id · Counsel spot-check sample.
Reissue REI-* needs new APR-*?
Often yes after 2nd REI- or amount change* · Configurable · Link REI-* to parent APR-* chain.
Counsel rejects—claimant notified?
Usually no · Ops fixes or DEF-* · Claimant sees processing until PAY-* sends or denial path.
Batch of 10,000 low-value payments?
Single batch APR- with exception pull-out* · Flagged CLM-* separate APR-* · COUN-* signs summary + hash.
Integration with team roles?
Map preparer vs approver roles · Enforce at API + UI · No role elevation in approval screen.
Next steps
- Design breach settlement payment disbursement and payout tracking UI in Figma — PAY-* execution after COUN-*
- Design breach settlement deficiency notice and claim cure UI in Figma — Blockers before APR-*
- Design breach settlement duplicate claim detection and fraud prevention UI in Figma — FRD-* clearance path
- Design audit log and security activity UI in Figma — APR-* and COUN-* trail
- Design breach settlement final accounting and court closure UI in Figma — Held vs released reconciliation
§ Keep reading