"""Texas Secretary of State — SOSDirect portal configuration.""" CONFIG = { "state": "Texas", "abbreviation": "TX", "agency": "Secretary of State", "agency_url": "https://sos.state.tx.us", "portal_name": "SOSDirect", "portal_url": "https://direct.sos.state.tx.us", "portal_login_required": True, # Name search — Comptroller Taxable Entity Search (free, no login) "name_search_url": "https://mycpa.cpa.state.tx.us/coa/Index.html", # Alternative: SOSDirect name availability (requires login) "name_search_url_alt": "https://direct.sos.state.tx.us", # Filing status check "filing_status_url": "https://webservices.sos.state.tx.us/filing-status/status.aspx", # NW Registered Agent "registered_agent": { "name": "Northwest Registered Agent", "street": "5900 Balcones Dr Ste 100", "city": "Austin", "state": "TX", "zip": "78731", }, # Fees (in USD, not cents — state portal charges in dollars) "fees": { "llc": 300, "corporation": 300, "nonprofit": 25, "lp": 750, "expedited_24hr": 25, # add-on for 24-hour processing "expedited_same_day": 50, # add-on for same-day "name_reservation": 40, "name_reservation_days": 120, }, # Selectors — verified against live portal on YYYY-MM-DD # TODO: Verify during first live filing session "selectors": { # Comptroller name search page "search_input": 'input[name="entityName"], input#entityName', "search_button": 'input[type="submit"], #searchButton', "results_table": "table.resultsTable, table#searchResults, table", "no_results": ".noResults, .noMatch", # SOSDirect login "login_username": 'input[name="username"], input#txtUserName', "login_password": 'input[name="password"], input#txtPassword', "login_submit": 'input[type="submit"], #btnLogin', # SOSDirect filing form (Form 205 - LLC) "entity_name": 'input[name="entityName"], #txtEntityName', "ra_name": 'input[name="agentName"], #txtAgentName', "ra_street": 'input[name="agentStreet"], #txtAgentStreet', "ra_city": 'input[name="agentCity"], #txtAgentCity', "ra_state": 'select[name="agentState"], #ddlAgentState', "ra_zip": 'input[name="agentZip"], #txtAgentZip', "purpose": 'textarea[name="purpose"], #txtPurpose', "management_type_member": 'input[value="member"], #rbMemberManaged', "management_type_manager": 'input[value="manager"], #rbManagerManaged', "member_name": 'input[name="memberName"], #txtMemberName', "member_address": 'input[name="memberAddress"], #txtMemberAddress', }, "notes": ( "Texas uses 'Certificate of Formation' (not Articles). " "Franchise tax applies only to revenue > $2.47M (most small carriers exempt). " "SOSDirect requires account creation (free). " "No publication requirement." ), }