figma guide
Designing breach settlement unclaimed funds and escheatment UI in Figma: dormancy tracking, reissue workflows, and state reporting
Design breach settlement unclaimed funds and escheatment UI in Figma with dormancy countdowns, reissue wizards, state escheat reporting, and administrator reconciliation dashboards.
- Published
- Updated
- Aug 24, 2026
- Read time
- 7 min
- Level
- Intermediate
Quick answer
Breach settlement unclaimed funds UI handles money that was issued but never received—checks returned, ACH failures, or claimants who never selected a payment method. Design dormancy countdown trackers tied to PAY-* records, multi-channel outreach campaigns, reissue and void workflows, and state escheatment reporting dashboards that reconcile before funds transfer to unclaimed property offices. Connect to payment disbursement, saved addresses, claims status, and compliance exports. Start from the Figma guides hub and pair with inline alerts, forms, and Dev Mode handoff.
Who this is for
- Product designers building post-disbursement recovery flows—not generic ecommerce refund UI.
- Settlement administrators and finance teams tracking dormancy periods and state escheat filing deadlines.
- Support teams handling “I never got my check” calls with PAY-* and UCF-* lookup parity.
Unclaimed fund lifecycle overview
UnclaimedFundLifecycle — PAY-992-88421 · $47.82 · Status: Dormant · Days until escheat: 94
├── Trigger events:
│ ├── Check undeliverable · ACH returned · Account closed
│ ├── No payment method selected by cutoff
│ ├── Issued but unclaimed past statutory dormancy period
│ └── Claimant deceased · Estate pending
├── Status progression:
│ ├── Failed delivery → Outreach active → Reissue window → Dormant → Escheat queued → Escheated
│ └── Exception: Legal hold blocks escheat from [compliance exports](/designing-compliance-exports-and-legal-hold-ui-in-figma/)
├── ID namespace:
│ ├── PAY-* (original disbursement) · UCF-* (unclaimed fund case) · ESC-* (escheat batch)
│ └── One UCF-* per PAY-* unless split by jurisdiction
└── Victim portal + admin console share status enum
| Stage | Victim sees | Admin sees |
|---|---|---|
| Failed delivery | Retry payment method CTA | Exception queue from disbursement console |
| Outreach active | Banner + email reminders | Campaign batch status |
| Dormant | Countdown to escheatment | Jurisdiction rules engine output |
| Escheat queued | Final claim window | State filing prep checklist |
| Escheated | ”Funds remitted to state” + lookup link | ESC-* batch confirmation |
Verdict: Create UCF- as a first-class case* when PAY-* enters failed or unclaimed state—do not overload PAY-* status alone.
Victim-facing dormancy tracker
DormancyTracker — UCF-992-1204 · PAY-992-88421 · $47.82 · Action required
├── Alert banner: "Your settlement payment could not be delivered"
├── Failure detail:
│ ├── Reason: Check returned undeliverable · Date: 2027-05-14
│ ├── Original amount: $47.82 · Reissue deadline: 2027-08-12
│ └── Escheatment date if no action: 2027-11-10 (per [state rules])
├── Reissue wizard:
│ ├── Update [mailing address](/designing-saved-addresses-and-address-book-ui-in-figma/) or ACH details
│ ├── Attestation: "Address is current and deliverable"
│ ├── Void-and-reissue confirmation · New PAY-* ref on success
│ └── Cannot change amount · Pro-rata locked from original CLM-*
├── Outreach history (transparency):
│ ├── Email sent 2027-05-16, 2027-06-01, 2027-07-15
│ └── Physical mail notice 2027-06-20 (if court requires)
├── Escheatment warning (30 days before):
│ ├── "Funds may be sent to state unclaimed property office"
│ ├── State name · Claimant lookup URL for post-escheat recovery
│ └── Final CTA: [ Update payment information ]
└── Contact support · Pre-fill UCF-* and PAY-* for [call center](/designing-breach-call-center-and-agent-script-ui-in-figma/)
Use progress indicators for dormancy timeline—not ambiguous “pending” badges.
Reissue and void workflow (administrator)
ReissueConsole — UCF-992-1204 · PAY-992-88421 · CLM-992-88421 · $47.82
├── Case summary: Failure code · Outreach count · Jurisdiction · Dormancy start date
├── Actions:
│ ├── [ Approve reissue ] → Void original PAY-* · Create PAY-992-91204 · Export to next batch
│ ├── [ Extend dormancy ] → Legal approval required · Audit comment · New deadline
│ ├── [ Mark deceased / estate ] → Hold escheat · Route to estate rep flow
│ └── [ Queue for escheatment ] → Move to ESC-* prep when statutory period met
├── Void checklist (before reissue):
│ ├── Original check stop-payment confirmed or ACH reversal complete
│ ├── No duplicate PAY-* for same CLM-* in active batch
│ ├── Address or ACH validated · Fraud flag cleared
│ └── Finance sign-off for amounts over threshold
├── Bulk operations: Select UCF-* rows · Batch reissue · Batch escheat queue
└── Audit log: ucf_id · pay_id · action · operator_id · void_ref · new_pay_id
Reissue creates new PAY- ID* linked to original via supersedes_pay_id—never mutate settled transaction records.
State escheatment reporting dashboard
EscheatDashboard — Settlement SET-992 · ESC batch ESC-992-Q3 · 892 rows · $41,204 total
├── Jurisdiction breakdown: CA · NY · TX · Unknown (manual assign)
├── Filing checklist per state:
│ ├── Dormancy period met · Last outreach date documented
│ ├── Owner name and last known address · SSN last-four if required
│ ├── Amount · Property type code · Report year
│ └── Export format: NAUPA · State-specific CSV · Due date countdown
├── Pre-filing validation:
│ ├── UCF-* without active legal hold
│ ├── PAY-* void confirmed · No pending reissue
│ ├── Duplicate owner merge across UCF-* rows
│ └── Amount sum matches finance ledger
├── Post-filing:
│ ├── State confirmation number · ESC-* batch closed
│ ├── Victim portal status → Escheated · State lookup instructions
│ └── Archive to [compliance exports](/designing-compliance-exports-and-legal-hold-ui-in-figma/)
└── Reconciliation: Escheat total vs disbursed-minus-reissued ledger variance
Design jurisdiction rules as configuration display—designers show rule source and effective date; legal owns the values.
Outreach campaign UI (administrator)
OutreachCampaign — Settlement SET-992 · Campaign UCF-REMIND-04 · 12,441 UCF-* targets
├── Channel mix: Email · SMS (if consented) · Physical mail batch
├── Template variants by dormancy stage:
│ ├── Stage 1: Payment failed · Update info
│ ├── Stage 2: 60 days dormant · Escheatment warning
│ └── Stage 3: Final notice · 30-day deadline
├── Exclusion rules: Active reissue in progress · Legal hold · Deceased hold · OPT-* excluded
├── Send schedule: Stagger to avoid support spike · Respect quiet hours
├── Metrics: Open rate · Portal click-through · Reissue conversion · Escheat rate
└── Link to [notification preferences](/designing-notification-preferences-and-communication-settings-ui-in-figma/) for non-settlement comms separation
Settlement outreach is transactional/legal—do not merge with marketing preference centers without legal review.
Comparison: unclaimed funds vs adjacent surfaces
| Surface | Focus | This UI adds |
|---|---|---|
| Payment disbursement | Active payout delivery | Post-failure dormancy and escheat |
| Claims dispute | Denial or amount contest | Separate from delivery failure |
| Saved addresses | Profile management | Reissue-specific address attestation |
| Compliance exports | Legal hold and audit | Escheat filing archive |
| Call center | Agent lookup | UCF-* and dormancy status parity |
Handoff checklist (Dev Mode)
- DormancyTracker — ucf_id (UCF-), pay_id (PAY-), claim_id (CLM-*), amount, failure_reason_code, dormancy_start, escheat_date, jurisdiction_code, outreach_history[].
- ReissueWizard — ucf_id, pay_id, new_address_id, new_ach_token_ref, attestation_id, submitted_at.
- ReissueConsole — ucf_id, pay_id, void_status, new_pay_id, approval_operator_id, finance_signoff_ref.
- EscheatDashboard — esc_batch_id (ESC-*), settlement_id, jurisdiction, row_count, total_amount, filing_due_date, export_format, state_confirmation_ref.
- OutreachCampaign — campaign_id, ucf_id_list[], template_id, channel_enum, scheduled_at, exclusion_reasons[].
- EscheatVictimStatus — ucf_id, status_enum (escheated), state_name, state_claimant_portal_url, escheat_date.
Common mistakes
| Mistake | Why it hurts | Fix |
|---|---|---|
| Treat escheat as payment retry only | Miss statutory filing deadlines | UCF-* case with jurisdiction rules |
| Reissue without voiding original | Double payment liability | Void-then-create PAY-* workflow |
| Same dormancy period for all states | Non-compliant filings | Jurisdiction config in admin UI |
| Hide escheatment until last day | No time for claimant action | 30/60/90-day staged outreach |
| Merge UCF outreach with marketing email | CAN-SPAM and consent issues | Transactional template namespace |
| No UCF-* on call center lookup | Agents see “delivered” incorrectly | Shared status with agent scripts |
| Escheat despite active legal hold | Compliance violation | Hold blocks ESC-* queue |
| Show exact escheat date without legal lock | Dates change with rule updates | ”Estimated” until jurisdiction confirmed |
Recommended workflow
- Finance and legal define dormancy rules per jurisdiction before wireframes.
- Extend PAY- failed state* into UCF-* case creation—do not build separate silo.
- Design victim dormancy tracker and admin reissue console as linked variants.
- Build outreach campaign UI before first undeliverable batch—not reactive email blasts.
- Sync UCF- lookup* with call center scripts before dormancy outreach wave.
- Archive ESC- filings* to compliance exports with state confirmation numbers.
FAQ
When does a PAY-* become a UCF-*?
On delivery failure, missed payment method cutoff, or start of statutory dormancy—exact trigger is settlement-specific. Document in handoff enum.
Can claimants recover funds after escheatment?
Through state unclaimed property offices—portal shows state lookup URL, not in-product reissue. Copy must not promise guaranteed recovery.
How do monitoring-only remedies interact with unclaimed funds?
No UCF- for cash*—service remedies use MON-* expiry flows from remediation enrollment instead.
What about international claimants?
Escheat rules vary or may not apply—flag jurisdiction “non-US” and route to manual review queue. Do not auto-queue for US state filing.
Mobile dormancy alerts?
Mobile-first banners on account dashboard—users open failure emails on phones. One-tap reissue wizard entry.
Next steps
- Design breach settlement payment disbursement and payout tracking UI in Figma — PAY-* lifecycle that feeds UCF-* cases
- Design saved addresses and address book UI in Figma — address updates for check reissue
- Design breach call center and agent script UI in Figma — UCF-* lookup for undelivered payment calls
- Design compliance exports and legal hold UI in Figma — escheat filing archive and hold blocks
- Design breach settlement opt-out and class member exclusion UI in Figma — OPT-* members excluded from PAY-* and UCF-* flows
§ Keep reading