figma guide
Designing breach settlement bank confirmation and trace matching UI in Figma: CONF-BANK-*, TRACE-ACH-*, and WAVE-EXPORT-* settlement sync
Design breach settlement bank confirmation UI in Figma with CONF-BANK-* uploads, TRACE-ACH-* line matching to WAVE-EXPORT-*, variance flags, and portal paid-state sync.
- Published
- Updated
- Sep 21, 2026
- Read time
- 4 min
- Level
- Intermediate
Quick answer
Bank confirmation UI closes the loop between WAVE-EXPORT-* upload and ledger truth—not a checkbox that says “file sent.” Design CONF-BANK- ingestion panels* (BAI2, NACHA return/notification of change, wire advices) that auto-match TRACE-ACH- / TRACE-WIRE- ids** to LINE-PAY- rows*, surface VAR-MATCH- variances* before fund reconciliation closes, and drive SYNC-PAID-* updates to the status portal and hold release notifications. Unmatched lines must land in a QUEUE-UNMT-* workbench with links to returned payment and post-disbursement QA sampling—not silent spreadsheet edits. Without structured confirm UI, treasury marks batches paid while the bank rejected half the file, counsel approval logs disagree with escrow, and claimants see “processing” forever after settlement. Start from the Figma guides hub and pair with disbursement tracking, audit log, and compliance exports.
Who this is for
- Product designers connecting export jobs to bank-reported settlement states.
- Treasury operators matching trace ids without exporting to Excel for every tranche.
- Engineers implementing idempotent CONF-BANK-* parsers and SYNC-PAID-* fan-out.
CONF-BANK-* confirmation intake model
BankConfirmationBatch — CONF-BANK-772 · Source: ACH settlement · Status: Matching
├── Linked export:
│ ├── WAVE-EXPORT-* id · CHK-SUM-* must match upload record
│ ├── LOG-EXPORT-* uploader · timestamp
│ └── Tranche id from [distribution schedule](/designing-breach-settlement-distribution-schedule-and-tranche-disbursement-planning-ui-in-figma/)
├── ID namespace:
│ ├── CONF-BANK-* (ingested file / API pull)
│ ├── TRACE-ACH-* / TRACE-WIRE-* (bank line id)
│ ├── MATCH-LINE-* (link to LINE-PAY-*)
│ ├── VAR-MATCH-* (amount/date/rail mismatch)
│ ├── QUEUE-UNMT-* (unmatched bank line)
│ └── SYNC-PAID-* (portal + NOTIF job)
├── Parser outcomes:
│ ├── Auto-match ≥95% · review banner only
│ ├── Partial match · block “close batch” until resolved
│ └── Duplicate CONF-BANK-* · reject · LOG-DUP-*
└── Actions:
├── Accept matches · stamp SETTLED-*
├── Route VAR-MATCH-* to reconciliation
└── Trigger [QA sample](/designing-breach-settlement-post-disbursement-qa-and-audit-sampling-ui-in-figma/) for tranche
| Bank event | Internal state | Claimant-facing |
|---|---|---|
| File received | CONF-BANK parsing | No change |
| All lines matched | SETTLED-* on LINE-PAY-* | ETA step → complete |
| Partial reject | VAR-MATCH-* open | NOTIF-PAY-DELAY-* |
| Full return | Route to RET-PAY-* | Timeline rollback |
Verdict: Do not mark WAVE-EXPORT- “Confirmed” on manual ref alone*— require CONF-BANK-* match or documented VAR-MATCH-* waiver with counsel note.
TRACE-ACH-* matching workbench UI
TraceMatchWorkbench — WAVE-EXPORT-441 · 842 lines · 11 unmatched
├── Left pane · LINE-PAY-* grid:
│ ├── CLM-* · FIN-AWD-* net · rail · masked account
│ ├── Expected TRACE placeholder from export addenda
│ └── Status chip · Pending / Matched / Returned
├── Right pane · bank lines:
│ ├── TRACE-ACH-* · amount · effective date · SEC code
│ ├── Suggested MATCH-LINE-* confidence score
│ └── One-click link · or split line UI for partials
├── Filters:
│ ├── VAR-MATCH-* only
│ ├── Amount off by ≤ $0.01 · rounding rules
│ └── [Intl](/designing-breach-settlement-foreign-claimant-and-international-payment-ui-in-figma/) IAT exceptions
└── Bulk actions:
├── Accept high-confidence matches
├── Create RET-PAY-* from return code
└── Export exception pack for [external auditor](/designing-breach-settlement-external-auditor-access-and-read-only-review-portal-ui-in-figma/)
Use tables with frozen CLM-* column, inline alerts for hash totals mismatch, and badges for match confidence.
SYNC-PAID-* portal and notification rules
| Trigger | Portal update | Notification |
|---|---|---|
| MATCH-LINE- accepted* | ETA-PAY-* → complete | NOTIF-PAID-* (if prefs allow) |
| Return before settle | Roll back one step | NOTIF-PAY-ISSUE-* + action link |
| Check cleared | Show check # last-4 | Optional mail only |
| Wire sent | “Sent” vs “Received” copy | Range ETA until CONF-BANK |
Coordinate with notification preferences— payment notices are transactional, not marketing.
Recommended: run SYNC-TML-* (same job family as hold release timeline sync) in the same transaction as MATCH-LINE-* commit.
Comparison: confirmation sources
| Source | Match key | Typical gap |
|---|---|---|
| ACH settlement file | TRACE-ACH-* + amount | Missing addenda trace |
| Check positive pay | Check # + amount | Reissue duplicate # |
| Wire SWIFT MT940 | End-to-end id | FX fee variance |
| Manual bank portal CSV | Weak · last resort | Human error |
Best for: ACH-heavy tranche disbursement programs with structured addenda in RAIL-VAL-* export.
Common mistakes
- CONF-BANK- uploaded before bank actually processes*— false “paid” states.
- Ignoring cent-level VAR-MATCH-*— accumulates in final accounting.
- No QUEUE-UNMT- SLA*— unmatched lines age into clawback confusion.
- SYNC-PAID- before counsel batch lock cleared*— audit failure.
- Duplicate CONF-BANK- files*— double-counting escrow outflows.
Recommended workflow
- Require LOG-EXPORT- bank ref* on upload before CONF-BANK-* import enabled.
- Design TRACE match workbench · map to LINE-PAY-* components in Dev Mode.
- Define VAR-MATCH- waiver roles* · tie to team permissions.
- Wire SYNC-PAID- + NOTIF-PAID-** · idempotent keys per CLM-* + tranche.
- Feed matched sets into fund reconciliation nightly job.
FAQ
Match before or after post-disbursement QA?
Match first for portal truth— QA samples matched population; flag pre-match exports as FIND-*.
NOC (notification of change) handling?
Open ACT- on CLM-**— link to claim amendment bank correction, not full award change.
Partial file rejection?
Split WAVE-EXPORT- status*— matched lines SETTLED-, remainder stays exported pending new CONF-BANK-.
Developer handoff?
Document CONF parser → MATCH-LINE- → SYNC-PAID-** state machine— Dev Mode checklist.
Accessibility?
Match workbench needs keyboard row pairing and non-color status for matched vs unmatched— review with accessibility plugins.
Next steps
- Design breach settlement payment file generation and NACHA preview UI in Figma — export before confirm
- Design breach settlement fund reconciliation and bank matching UI in Figma — ledger tie-out
- Design breach settlement payment disbursement and payout tracking UI in Figma — operational tracking
- Design breach settlement hold release notifications and claimant payment timeline UI in Figma — ETA sync
- Design breach settlement returned payment and reissue UI in Figma — returns from confirm file
§ Keep reading