figma guide
Designing breach settlement payment file generation and NACHA preview UI in Figma: WAVE-EXPORT-*, RAIL-VAL-*, and dual-control treasury handoff
Design breach settlement payment file UI in Figma with WAVE-EXPORT-* batches, RAIL-VAL-* NACHA preview, checksum gates, and dual-control export before bank upload.
- Published
- Updated
- Sep 20, 2026
- Read time
- 4 min
- Level
- Intermediate
Quick answer
Payment file generation UI is the last human checkpoint before money leaves escrow—not a “download CSV” button. Design WAVE-EXPORT- batch builders* that only include claims passing GATE-PAY-*, RAIL-VAL- NACHA/ACH preview panels* (entry hash, addenda, return account routing), and CHK-SUM- dual-control export* with immutable LOG-EXPORT-* tied to fund reconciliation and counsel payout approval. Preview must surface EXCL-WAVE-* exclusions with top HOLD-DISB-* reasons, VER-AWD- drift* since last BATCH-GUARD-* run, and rail-specific validation for international payments and tax withholding. Without structured export UI, treasury uploads stale files after award restatement, returned payments duplicate, and post-disbursement QA cannot match bank lines to claim ids. Start from the Figma guides hub and pair with distribution schedule, payment disbursement tracking, and status portal ETA updates.
Who this is for
- Product designers connecting WAVE-* planning to bank-ready artifacts.
- Treasury operators who need NACHA preview without opening raw files in a text editor.
- Engineers implementing idempotent export jobs and checksum verification in CI.
WAVE-EXPORT-* batch builder overview
PaymentExportBatch — WAVE-EXPORT-441 · Tranche T3 · Status: Draft
├── Source:
│ ├── [Distribution schedule](/designing-breach-settlement-distribution-schedule-and-tranche-disbursement-planning-ui-in-figma/) · SIM-WAVE-*
│ ├── GATE-PAY-* snapshot id · frozen at export start
│ └── Counsel APP-PAY-* batch lock · required
├── ID namespace:
│ ├── WAVE-EXPORT-* (export job)
│ ├── RAIL-VAL-* (validation result)
│ ├── CHK-SUM-* (file fingerprint)
│ ├── LOG-EXPORT-* (who/when/what)
│ ├── LINE-PAY-* (one row per claim payout)
│ └── EXCL-WAVE-* (skipped claims + reason)
├── Totals panel:
│ ├── Entry count · debit/credit hash
│ ├── Gross vs net after [lien offset](/designing-breach-settlement-lien-and-third-party-creditor-offset-ui-in-figma/)
│ ├── Escrow ALLOC remaining · tie to reconciliation
│ └── Rail mix · ACH / check / wire / intl
└── Actions:
├── Run RAIL-VAL-* · block until pass
├── Request second approver · dual control
├── Generate file · stamp CHK-SUM-*
└── Mark uploaded · bank confirmation ref
| Export state | Claimant portal | Bank |
|---|---|---|
| Draft | No change | No file |
| RAIL-VAL pass | Optional “processing soon” | Not yet |
| Exported (pending upload) | “Payment processing” | Awaiting upload |
| Uploaded | ETA from rail SLA | In flight |
| Confirmed | Paid / check mailed | Settled |
Verdict: Never regenerate WAVE-EXPORT- without a new GATE-PAY snapshot*— partial reruns after restatement cause double pay.
RAIL-VAL-* NACHA preview UI
| Validation | UI surface | Failure UX |
|---|---|---|
| Routing number | Inline on LINE-PAY-* | Block + link saved addresses |
| Account tokenization | Masked last-4 only | Fraud queue if duplicate token |
| Addenda / remittance | Preview pane | Truncate with LOG if over limit |
| Entry hash | Summary banner | Hard block until fixed |
| SEC code / IAT | Rail picker | Foreign claimant wizard |
| 1099 / W-8 flags | Tax column | Block if tax reporting incomplete |
Show a split view: left = claim list with FIN-AWD-* and net pay; right = rendered NACHA lines (read-only) with line numbers mapping to CLM-* ids.
Use tables for LINE-PAY-* grids and inline alerts for RAIL-VAL-* blockers.
Dual-control and checksum handoff
ExportApproval — APP-EXPORT-992 · WAVE-EXPORT-441
├── Approver 1 · treasury · timestamp
├── Approver 2 · counsel or admin · timestamp
├── CHK-SUM-SHA256 · attached to LOG-EXPORT-*
├── Download link · expires · audit logged
└── Upload confirmation:
├── Bank ref id · required
├── Optional file re-upload match CHK-SUM-*
└── Triggers [status portal](/designing-breach-settlement-claim-status-portal-and-claimant-dashboard-ui-in-figma/) bulk update
Pair with active sessions policy for export download roles and audit log entries for every preview and download.
Comparison: export formats by rail
| Rail | Preview complexity | Typical failure |
|---|---|---|
| ACH (NACHA) | High · hash + addenda | Invalid routing |
| Check print file | Medium · address block | Returned mail |
| Wire | Medium · SWIFT/BIC | Intl tax |
| Digital wallet | Low · token | Provider limit |
Recommended: one WAVE-EXPORT-* job per rail per tranche— do not mix ACH and wire in a single NACHA file.
Common mistakes
- Exporting without fresh BATCH-GUARD-* after hold release— stale inclusions.
- No CHK-SUM- on downloaded file*— treasury uploads wrong attachment from email.
- Preview shows gross FIN-AWD- but bank debits net*— claimant confusion and clawback risk.
- Skipping LOG-EXPORT- on “test” files*— auditors treat test as production.
- Portal “paid” before bank confirm— align with export state table above.
Recommended workflow
- Finalize tranche in distribution schedule · counsel APP-PAY-*.
- Run BATCH-GUARD-* · resolve EXCL-WAVE-* · freeze GATE-PAY snapshot.
- Build WAVE-EXPORT-* · run RAIL-VAL-* until clean.
- Dual APP-EXPORT-* · download · upload to bank · record confirmation.
- Feed lines to reconciliation and QA sampling.
FAQ
Can counsel approve export without viewing NACHA preview?
Require RAIL-VAL pass badge on APP-EXPORT screen— preview link opens read-only RAIL-VAL-*.
Partial tranche rerun after one return?
New WAVE-EXPORT- job* for affected LINE-PAY-* only— never append to uploaded batch.
International claim in ACH file?
Block in RAIL-VAL-*— route to foreign payment rail.
Developer handoff?
Ship LINE-PAY- → NACHA line mapping table* in specs— Dev Mode checklist.
Monitor reporting?
Attach CHK-SUM- and entry count* to court monitor tranche exhibits.
Next steps
- Design breach settlement disbursement hold release and payment gate UI in Figma — GATE-PAY before export
- Design breach settlement payment disbursement and payout tracking UI in Figma — lifecycle after upload
- Design breach settlement fund reconciliation and bank matching UI in Figma — match bank lines
- Design breach settlement returned payment and reissue UI in Figma — post-export exceptions
- Design breach settlement claim status portal and claimant dashboard UI in Figma — claimant-facing states
§ Keep reading