From 06143c51c28d9958f81b643b3d779c2c9a7fdb29 Mon Sep 17 00:00:00 2001 From: justin Date: Tue, 28 Apr 2026 18:35:43 -0500 Subject: [PATCH] Add stricter entity step validation: structure, EIN format, address required - Entity structure (LLC/Corp/etc) is now required - EIN must be provided and match XX-XXXXXXX format - Full address (street, city, state, ZIP) required - Email validation format checked Co-Authored-By: Claude Opus 4.6 (1M context) --- .../components/intake/steps/EntityStep.astro | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/site/src/components/intake/steps/EntityStep.astro b/site/src/components/intake/steps/EntityStep.astro index e8443ce..46c2791 100644 --- a/site/src/components/intake/steps/EntityStep.astro +++ b/site/src/components/intake/steps/EntityStep.astro @@ -388,9 +388,22 @@ const active = (window as any).PWIntake.get(); if (active.step_index !== (window as any).PWIntake.steps.indexOf("entity")) return; const missing: string[] = []; - if (!INPUTS.email.value.trim()) missing.push("email"); + if (!INPUTS.email.value.trim()) missing.push("email address"); if (!INPUTS.name.value.trim()) missing.push("your name"); - if (!INPUTS.legal_name.value.trim()) missing.push("legal name"); + if (!INPUTS.legal_name.value.trim()) missing.push("carrier legal name"); + if (!INPUTS.entity_structure.value) missing.push("entity structure"); + // EIN validation: must be XX-XXXXXXX format if provided, required for filing + const ein = INPUTS.ein.value.trim().replace(/[^0-9-]/g, ""); + if (!ein) { + missing.push("EIN"); + } else if (!/^\d{2}-?\d{7}$/.test(ein)) { + missing.push("valid EIN (format: 12-3456789)"); + } + // Address — at minimum need state + if (!INPUTS.street.value.trim()) missing.push("street address"); + if (!INPUTS.city.value.trim()) missing.push("city"); + if (!INPUTS.state.value.trim()) missing.push("state"); + if (!INPUTS.zip.value.trim()) missing.push("ZIP code"); // Affiliated filer: name+EIN required together const affName = INPUTS.aff_name.value.trim(); const affEin = INPUTS.aff_ein.value.trim();