From e473953fef90a269d5887a705fd10b531b4febf8 Mon Sep 17 00:00:00 2001 From: justin Date: Fri, 29 May 2026 13:00:31 -0500 Subject: [PATCH] Update BOC-3 handler: Process Agent LLC (Registered Agents Inc) ProcessAgent.com is subsidiary of Registered Agents Inc. $25/yr blanket BOC-3, no API, will automate via Playwright. Updated partner details, admin todo steps, removed dead API stub. Co-Authored-By: Claude Opus 4.6 (1M context) --- scripts/workers/services/boc3_filing.py | 40 ++++++++++--------------- 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/scripts/workers/services/boc3_filing.py b/scripts/workers/services/boc3_filing.py index 99942d3..bf486a3 100644 --- a/scripts/workers/services/boc3_filing.py +++ b/scripts/workers/services/boc3_filing.py @@ -42,14 +42,17 @@ from datetime import datetime LOG = logging.getLogger("workers.services.boc3_filing") -# Process agent partner details -# NWRA (Northwest Registered Agent) confirmed they no longer offer BOC-3. -# Registered Agents Inc is the replacement vendor (contract pending). -# Wholesale cost: ~$25 or less. Manual fulfillment until API is available. +# Process agent partner: Registered Agents Inc / Process Agent LLC +# ProcessAgent.com is a subsidiary of Registered Agents Inc. +# They own commercial offices in every US state (blanket agent). +# Cost: $25/year per carrier. No API — file via Playwright on their site. +# Phone: (406) 300-4044 PROCESS_AGENT_PARTNER = { - "name": "Registered Agents Inc", - "contact_email": "", # Update when contract is executed - "api_endpoint": None, # Will be set when RAI API is available + "name": "Process Agent LLC (Registered Agents Inc)", + "website": "https://www.processagent.com", + "phone": "(406) 300-4044", + "cost_cents": 2500, # $25/year + "automation": "playwright", # No API — automate via browser } @@ -108,25 +111,20 @@ class BOC3FilingHandler: "requested_at": datetime.utcnow().isoformat(), } - # If we have a process agent API, submit directly - if PROCESS_AGENT_PARTNER.get("api_endpoint"): - success = self._submit_to_process_agent(designation) - if success: - self._send_confirmation_email(order_number, entity_name, dot_number, customer_email) - return [] + # TODO: Automate via Playwright on processagent.com/order + # For now, create admin todo for manual filing - # Otherwise create admin todo + # Create admin todo todo_data = { "order_number": order_number, "service": self.SERVICE_NAME, "designation": designation, "current_boc3_status": boc3_status, "steps": [ - "1. Submit BOC-3 designation request to process agent partner", + "1. Go to https://www.processagent.com/order", + "2. Submit BOC-3 order ($25) with carrier's DOT#, MC#, legal name, address", f" Partner: {PROCESS_AGENT_PARTNER['name']}", - f" Email: {PROCESS_AGENT_PARTNER.get('contact_email', 'TBD')}", - "2. Include: DOT#, MC#, legal name, address for all 48 states + DC", - "3. Process agent files BOC-3 electronically with FMCSA", + "3. Process Agent LLC files BOC-3 electronically with FMCSA (1-5 business days)", "4. Verify filing at https://li-public.fmcsa.dot.gov/LIVIEW/pkg_carrquery.prc_carrlist", "5. Send confirmation to client", ], @@ -196,12 +194,6 @@ class BOC3FilingHandler: except Exception as exc: return f"Could not check: {exc}" - def _submit_to_process_agent(self, designation: dict) -> bool: - """Submit designation to process agent partner via API.""" - # TODO: Implement when partner API is available - LOG.warning("Process agent API not configured — falling back to admin todo") - return False - def _send_status_email(self, order_number, entity_name, dot_number, customer_email): """Send client an email that we're working on their BOC-3.""" if not customer_email: