figma guide
Designing breach settlement claim document upload and evidence management UI in Figma: DOC-* intake, redaction, and reviewer vault
Design breach settlement claim document upload and evidence management UI in Figma with DOC-* intake, virus scan states, redaction previews, and admin evidence vaults tied to CLM-* records.
- Published
- Updated
- Aug 29, 2026
- Read time
- 8 min
- Level
- Intermediate
Quick answer
Claim document UI collects supporting evidence—government ID, proof of address, tier documentation—without turning the settlement portal into an unmanaged file dump. Design a DOC- intake flow* with purpose-specific upload slots (not one generic attachment field), scan-and-quarantine states claimants understand, and an admin evidence vault reviewers open from CLM-* and AMD-* records. Redact or mask sensitive fields in claimant previews; never show other class members’ documents. Connect to settlement claims, claim amendments, file upload patterns, and legal hold. Start from the Figma guides hub and pair with forms, audit log, and Dev Mode handoff.
Who this is for
- Product designers building evidence intake for class action and breach settlement portals—not generic cloud storage UX.
- Settlement administrators who review thousands of ID scans, utility bills, and tier-supporting documents under court deadlines.
- Privacy and security teams defining retention, redaction, and access rules for claimant-uploaded PII.
Document lifecycle overview
ClaimDocument — DOC-992-0088 · CLM-992-44102 · Type: government_id · Status: Accepted
├── Triggers:
│ ├── Required at [claim filing](/designing-breach-settlement-notice-and-victim-compensation-claims-ui-in-figma/) (tier proof)
│ ├── [Amendment](/designing-breach-settlement-claim-amendment-and-correction-ui-in-figma/) requests name change evidence
│ ├── Admin "request more info" ACT-* on [status portal](/designing-breach-settlement-claim-status-portal-and-claimant-dashboard-ui-in-figma/)
│ └── [Dispute](/designing-breach-settlement-claims-dispute-and-appeals-ui-in-figma/) or appeal supporting materials
├── ID namespace:
│ ├── DOC-* (uploaded file record) · CLM-* (parent claim)
│ ├── AMD-* / REV-* (linked amendment when doc supports correction)
│ └── ACT-* (action item when admin requests specific document)
├── Processing pipeline:
│ ├── Uploaded → Virus scan → Quarantine or Accepted
│ ├── OCR/metadata extraction (internal only)
│ ├── Reviewer assignment when manual QC required
│ └── Retention clock per settlement order + [legal hold](/designing-compliance-exports-and-legal-hold-ui-in-figma/)
└── Claimant-visible states: Uploading · Processing · Accepted · Rejected (with reason) · Expired
| DOC-* state | Claimant sees | Admin sees |
|---|---|---|
| Uploading | Progress bar | — |
| Scanning | ”Processing your document” | Quarantine queue |
| Rejected | Reason + re-upload CTA | Malware/format failure log |
| Needs review | ”Under review” (optional) | Reviewer queue |
| Accepted | Checkmark + filename (masked) | Full viewer + metadata |
| Superseded | ”Replaced Aug 12” | Version chain |
Verdict: Every upload is typed, scoped to a claim purpose, and auditable—not a free-form attachment list.
Purpose-specific upload slots
UploadSlots — CLM-992-44102 · Settlement: Acme · Tier: Documented losses
├── Slot: government_id (required for REV-* name changes)
│ ├── Accept: PDF, JPG, PNG · Max 10 MB · Front + back optional
│ ├── Guidance: "No screenshots of screen photos—use scanner or camera"
│ └── Auto-reject blur detection (internal flag → "Please retake")
├── Slot: proof_of_address (utility bill, lease)
│ ├── Must show name + address matching CLM-* mailing fields
│ └── Date within 90 days (configurable)
├── Slot: tier_documentation (receipts, invoices per schedule)
│ ├── Multiple files allowed · DOC-* batch
│ └── Running total preview vs tier cap
├── Slot: admin_requested (ACT-* driven)
│ ├── Label from admin: "Upload marriage certificate"
│ └── Deadline badge · Links from status portal ACT-* card
└── Blocked:
├── Generic "other documents" without ACT-* (reduces junk)
└── Executable files · ZIP bombs · Password-protected PDFs (reject with help text)
Reuse file upload and drag-drop patterns—settlement slots add purpose labels, settlement-specific copy, and CLM- context*.
Claimant upload wizard
UploadWizard — DOC intake · Step 2 of 3 · Slot: government_id
├── Step 1 — Why we need this:
│ ├── Plain-language reason tied to CLM-* action ("Verify name change")
│ ├── Example thumbnail (blurred sample ID—not real PII)
│ └── Retention notice: "Stored per settlement order until [date]"
├── Step 2 — Upload:
│ ├── Drag-drop + mobile camera capture
│ ├── Real-time format/size validation
│ ├── Optional: Crop guide overlay for ID card
│ └── Progress + retry on network failure
├── Step 3 — Confirm:
│ ├── Thumbnail preview (claimant's file only)
│ ├── Checkbox: "This document is accurate and unaltered"
│ ├── Warning: "Do not upload documents for other people"
│ └── Submit → DOC-* created · Scanning state
├── Post-submit:
│ ├── Accepted → Green badge on status portal timeline
│ ├── Rejected → Specific reason (blurry, wrong type, virus) + re-upload
│ └── Needs review → SLA message · No internal reviewer name
└── Replace flow: New DOC-* supersedes old · Old marked superseded · AUD-* entry
Mobile-first matters—many claimants photograph ID at kitchen tables. Design camera capture, glare hints, and large tap targets.
Virus scan, quarantine, and rejection UX
ScanPipeline — DOC-992-0088 · Internal view
├── Stages:
│ ├── upload_complete → virus_scan → format_validate → pii_detect (optional)
│ ├── Pass → Accepted or Needs review
│ └── Fail → Rejected with claimant-safe reason code
├── Claimant rejection copy (never expose stack traces):
│ ├── VIRUS_DETECTED → "We couldn't accept this file. Try a different format."
│ ├── UNSUPPORTED_TYPE → "Please upload PDF, JPG, or PNG."
│ ├── FILE_TOO_LARGE → "File must be under 10 MB."
│ ├── BLUR_DETECTED → "Photo unclear—retake in good lighting."
│ └── PASSWORD_PROTECTED → "Remove PDF password and re-upload."
├── Quarantine queue (admin only):
│ ├── DOC-* flagged · Scan result · No download until cleared
│ └── Escalation to security if repeat offender CLM-*
└── Audit: doc_id · scan_result · rejected_reason_code · scanned_at
Never show “malware” in alarming language to elderly claimants—neutral, actionable rejection reduces call center volume.
Admin evidence vault and reviewer console
EvidenceVault — CLM-992-44102 · 6 documents · 1 pending review
├── Layout:
│ ├── Left: Document list by slot type + upload date
│ ├── Center: Viewer (PDF/image) with zoom, rotate, download (role-gated)
│ └── Right: CLM-* summary · Linked AMD-* / REV-* · Review actions
├── Reviewer actions:
│ ├── Accept → Unblocks REV-* or tier calculation
│ ├── Reject → Reason to claimant · New ACT-* optional
│ ├── Request clearer copy → ACT-* with deadline
│ └── Flag fraud → Routes to [duplicate/fraud queue](/designing-breach-settlement-duplicate-claim-detection-and-fraud-prevention-ui-in-figma/)
├── Redaction tools (internal):
│ ├── Auto-detect SSN blocks · Manual redact before export
│ └── Export for counsel: redacted PDF only
├── Version history:
│ ├── DOC-992-0088 superseded by DOC-992-0091
│ └── Diff: same slot · different upload date
└── Access log: viewer_id · doc_id · viewed_at · exported (Y/N)
Vault integrates with amendment review—reviewers open evidence without leaving REV-* queue.
Redaction, masking, and claimant-safe previews
RedactionRules — Claimant vs admin visibility
├── Claimant portal:
│ ├── Thumbnail of own upload only · No full SSN display in preview
│ ├── Filename masked: "government_id.pdf" not "john_ssn_scan.jpg"
│ └── Timeline: "Document accepted" not reviewer notes
├── Admin viewer:
│ ├── Full image · OCR overlay optional · Side-by-side CLM-* field compare
│ └── Compare name on ID to CLM-* legal_name field
├── Export / court production:
│ ├── Redacted bundle per [compliance export](/designing-compliance-exports-and-legal-hold-ui-in-figma/)
│ ├── [Legal hold](/designing-compliance-exports-and-legal-hold-ui-in-figma/) blocks delete
│ └── Retention job after hold release
└── Third-party viewers (counsel): Watermarked · Time-limited link · No bulk download
Design two viewer modes in Figma—claimant-safe and admin-full—and annotate which components differ.
Comparison: document UI vs adjacent settlement surfaces
| Surface | Focus | This UI adds |
|---|---|---|
| Settlement claims | CLM-* data entry | Binary evidence for tier/name |
| Amendments | Field corrections | ID proof for REV-* |
| Status portal | Timeline visibility | DOC-* status events |
| Disputes | Eligibility fights | Appeal exhibits |
| File upload (generic) | Reusable control | Settlement slot semantics |
Handoff checklist (Dev Mode)
- UploadSlot — slot_type_enum, clm_id, required, max_files, accepted_mime[], max_bytes, guidance_copy_key.
- UploadWizard — doc_id (DOC-*), slot_type, file_hash, upload_status_enum, certification_at, superseded_by_doc_id.
- ScanPipeline — doc_id, scan_status_enum, rejection_reason_code, quarantine_flag, scanned_at.
- EvidenceVault — clm_id, doc_list[], viewer_role_enum, review_decision_enum, act_id_link.
- RedactionExport — doc_id, redaction_regions[], export_watermark, legal_hold_flag, retention_until.
Common mistakes
| Mistake | Why it hurts | Fix |
|---|---|---|
| One generic “attachments” field | Wrong docs · Review chaos | Purpose-specific slots |
| Show scan failure as “error 500” | Trust loss · call volume | Plain-language reason codes |
| Let claimants see reviewer notes | Privacy · litigation risk | Claimant-safe timeline only |
| No supersede/version chain | Wrong ID on file | DOC-* superseded_by link |
| Download unredacted exports | PII leak | Redaction step before export |
| Skip mobile camera path | Abandonment on phone | Camera capture + crop guide |
| Accept password PDFs | Processing dead-end | Reject with unlock instructions |
| No ACT-* deadline on requests | SLA miss | Badge + email reminder |
| Store docs outside CLM-* scope | Orphan files | Every DOC-* requires clm_id |
| Unlimited re-uploads | Storage + fraud | Rate limit per slot |
Recommended workflow
- Counsel defines required slots per tier and amendment type before wireframes.
- Design upload wizard with purpose copy, certification, and mobile camera path.
- Map scan/reject states to claimant-safe messages—prototype all rejection paths.
- Build evidence vault linked from REV-* and CLM-* admin views.
- Specify redaction and export rules for counsel and court production.
- Add DOC- events* to status portal timeline.
FAQ
Can claimants delete uploaded documents?
Usually no after submit—supersede with new upload · Delete only in draft CLM-* · Legal hold blocks removal.
Third-party upload (attorney submits for client)?
Attorney or authorized representative submits for client · Same DOC-* model · REP-* authorization on file · Link to settlement claims representative fields when built.
Document rejected but payment deadline near?
Urgent ACT- flag* · Expedited review queue · Call center script references DOC-* ID.
HEI-* or GUA-* estate/guardian documents?
Dedicated slots · Link to deceased claimant and minor claimant flows—not generic ID slot.
OCR auto-approve ID?
Risky · Use OCR as reviewer assist only · Manual accept for REV-* unless counsel approves automation.
Next steps
- Design breach settlement claim amendment and correction UI in Figma — Evidence for name and tier changes
- Design breach settlement notice and victim compensation claims UI in Figma — Initial CLM-* tier documentation
- Design file upload and drag-drop UI in Figma — Base upload components
- Design breach settlement duplicate claim detection and fraud prevention UI in Figma — Flag suspicious DOC-* patterns
- Design compliance exports and legal hold UI in Figma — Retention and production
§ Keep reading