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 eventInternal stateClaimant-facing
File receivedCONF-BANK parsingNo change
All lines matchedSETTLED-* on LINE-PAY-*ETA step → complete
Partial rejectVAR-MATCH-* openNOTIF-PAY-DELAY-*
Full returnRoute 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

TriggerPortal updateNotification
MATCH-LINE- accepted*ETA-PAY-* → completeNOTIF-PAID-* (if prefs allow)
Return before settleRoll back one stepNOTIF-PAY-ISSUE-* + action link
Check clearedShow check # last-4Optional mail only
Wire sent“Sent” vs “Received” copyRange 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

SourceMatch keyTypical gap
ACH settlement fileTRACE-ACH-* + amountMissing addenda trace
Check positive payCheck # + amountReissue duplicate #
Wire SWIFT MT940End-to-end idFX fee variance
Manual bank portal CSVWeak · last resortHuman error

Best for: ACH-heavy tranche disbursement programs with structured addenda in RAIL-VAL-* export.


Common mistakes

  1. CONF-BANK- uploaded before bank actually processes*— false “paid” states.
  2. Ignoring cent-level VAR-MATCH-*— accumulates in final accounting.
  3. No QUEUE-UNMT- SLA*— unmatched lines age into clawback confusion.
  4. SYNC-PAID- before counsel batch lock cleared*— audit failure.
  5. Duplicate CONF-BANK- files*— double-counting escrow outflows.

  1. Require LOG-EXPORT- bank ref* on upload before CONF-BANK-* import enabled.
  2. Design TRACE match workbench · map to LINE-PAY-* components in Dev Mode.
  3. Define VAR-MATCH- waiver roles* · tie to team permissions.
  4. Wire SYNC-PAID- + NOTIF-PAID-** · idempotent keys per CLM-* + tranche.
  5. 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

Share on X

§ Keep reading

Related guides.