""" Configuration for British Columbia, Canada — BC Business Corporations Act. BC uses a provincial incorporation system (not federal), governed by the BC Business Corporations Act (SBC 2002, c. 57). Entities formed here are BC corporations — LLCs do not exist under Canadian law. Portal stack: - Corporate Online (corporateonline.gov.bc.ca) — filing & annual reports NOTE: No login required for new incorporations — the wizard is anonymous and payment is taken by credit card at the end. Do NOT attempt username/ password auth — the login page is IDIR-only (government employees). - BC Registry Name Request (bcregistrynames.gov.bc.ca) — name reservation - Anytime Mailbox (anytimemailbox.com) — virtual mailbox for registered office - CRTC — Canadian Radio-television and Telecommunications Commission (requires notification letter for telecom carriers) Currency: all fees in CAD (C$). COLIN wizard steps (in order): 1. Initial Information — company name / effective date 2. Incorporator Info — incorporator name + address 3. Completing Party — person completing the filing 4. Translated Name — (skip — not applicable) 5. Director Info — director name(s) + address(es) 6. Office Addresses — registered office + records office 7. Share Structure — share classes (Common shares, no par value) 8. Notification — email for receipt 9. Company Information — confirm name + type 10. Confirm Company Info — review everything 11. Ready to Pay — credit card entry 12. Your Receipt — BC incorporation number """ CONFIG = { "jurisdiction": "British Columbia", "country": "Canada", "abbreviation": "BC", "entity_types": ["corporation"], # No LLCs in Canada # ------------------------------------------------------------------ # # Portal schedule — BC Corporate Online hours + BC holidays # Mon–Sat 6 AM – 10 PM, Sun 1 PM – 10 PM Pacific # ------------------------------------------------------------------ # "portal_schedule": { "timezone": "America/Vancouver", "jurisdiction": "BC", "closed_holidays": True, "hours": { "mon": [6, 22], "tue": [6, 22], "wed": [6, 22], "thu": [6, 22], "fri": [6, 22], "sat": [6, 22], "sun": [13, 22], }, }, # ------------------------------------------------------------------ # # BC Registry — Corporate Online # No authentication required — anonymous public filing portal. # ------------------------------------------------------------------ # "agency": "BC Registry Services", "agency_url": "https://www.bcregistry.gov.bc.ca", "filing_portal": { "name": "Corporate Online", "url": "https://www.corporateonline.gov.bc.ca", # Direct URL to start a new Incorporation Application (anonymous) "icorp_start_url": "https://www.corporateonline.gov.bc.ca/corporateonline/colin/accesstransaction/menu.do?action=startFiling&filingTypeCode=ICORP&from=main", "icorp_overview_url": "https://www.corporateonline.gov.bc.ca/corporateonline/colin/accesstransaction/menu.do?action=overview&filingTypeCode=ICORP&from=main", # Annual report "annual_report_url": "https://www.corporateonline.gov.bc.ca/corporateonline/colin/accesstransaction/menu.do?action=startFiling&filingTypeCode=ANNBC&from=main", # Legacy — kept for compat; IDIR-only now (not used for automation) "login_url": "https://www.corporateonline.gov.bc.ca/corporateonline/colin/login/login.do", }, "name_request_portal": { "name": "BC Registry Name Request", "url": "https://www.bcregistrynames.gov.bc.ca", "search_url": "https://www.bcregistrynames.gov.bc.ca/nrSearch/name-search", }, # ------------------------------------------------------------------ # # Registered & Records Office — Anytime Mailbox (BC locations) # ------------------------------------------------------------------ # "registered_office_default": "victoria-dr", "registered_office_locations": { "victoria-dr": { "id": "victoria-dr", "label": "Vancouver - Victoria Dr (Best Value)", "street": "5307 Victoria Dr", "suite_prefix": "Suite", "city": "Vancouver", "province": "BC", "postal_code": "V5P 3V6", "country": "Canada", "plan": "Basic", "plan_cost_cad": 99.00, "plan_period": "yearly", "default": True, }, "howe-st": { "id": "howe-st", "label": "Vancouver - Howe St (Downtown)", "street": "329 Howe St", "suite_prefix": "Unit", "city": "Vancouver", "province": "BC", "postal_code": "V6C 3N2", "country": "Canada", "plan": "Silver", "plan_cost_cad": 164.99, "plan_period": "yearly", "default": False, }, "broadway": { "id": "broadway", "label": "Vancouver - Broadway", "street": "1275 W Broadway", "suite_prefix": "Suite", "city": "Vancouver", "province": "BC", "postal_code": "V6H 1G2", "country": "Canada", "plan": "Silver", "plan_cost_cad": 149.99, "plan_period": "yearly", "default": False, }, }, # Legacy field — kept for backward compatibility "registered_office": { "provider": "Anytime Mailbox", "provider_url": "https://www.anytimemailbox.com", "location": "Vancouver - Victoria Dr", "street": "5307 Victoria Dr", "city": "Vancouver", "province": "BC", "postal_code": "V5P 3V6", "country": "Canada", "plan": "Basic", "plan_cost_cad": 99.00, "plan_period": "yearly", }, # ------------------------------------------------------------------ # # CRTC # ------------------------------------------------------------------ # "crtc": { "name": "Canadian Radio-television and Telecommunications Commission", "short_name": "CRTC", "secretary_general": "Secretary General, CRTC", "address": "1 Promenade du Portage", "city": "Gatineau", "province": "QC", "postal_code": "J8X 4B1", "country": "Canada", "website": "https://crtc.gc.ca", "notification_required": True, }, # ------------------------------------------------------------------ # # BITS (Basic International Telecommunications Services) # ------------------------------------------------------------------ # "bits": { "name": "BITS Registration", "description": ( "All Canadian telecom carriers must register with the CRTC " "under the Basic International Telecommunications Services (BITS) regime. " "Registration is filed via letter to the CRTC Secretary General." ), "filing_method": "letter", # submitted with the CRTC notification letter "annual_fee_cad": 0.00, # no fee for initial BITS notification "renewal_required": False, # initial registration is a one-time notification }, # ------------------------------------------------------------------ # # CCTS (Commission for Complaints for Telecom-television Services) # ------------------------------------------------------------------ # "ccts": { "name": "Commission for Complaints for Telecom-television Services", "short_name": "CCTS", "website": "https://www.ccts-cprst.ca", "membership_url": "https://www.ccts-cprst.ca/for-service-providers/become-a-member/", "description": ( "All Canadian telecom service providers must participate in the CCTS, " "the national and independent organization dedicated to resolving " "customer complaints about telecom and TV services. " "Membership application is submitted online." ), "filing_method": "online_form", "annual_fee_cad": 0.00, # no fee for small carriers in first year "renewal_required": True, "renewal_period": "Yearly", }, # ------------------------------------------------------------------ # # GCKey — Government of Canada authentication credential # Used to access My CRTC Account for electronic filings. # Each carrier gets its own GCKey. Signup is a 5-step Spring Web Flow # wizard with hCaptcha invisible on the username step. # ------------------------------------------------------------------ # "gckey": { "name": "GCKey", "description": "Government of Canada authentication credential for online services", "homepage": "https://www.gckey.gc.ca", "auth_domain": "clegc-gckey.gc.ca", # SAML entry: go through CRTC SmartForms → GACS → GCKey "saml_entry_url": "https://services.crtc.gc.ca/Pro/SmartForms/?_gc_lang=eng", "signup_path": "/j/eng/rg", # append ?ReqID=... from SAML flow # Signup wizard — 5 steps (Spring Web Flow) "signup_steps": { # Step 1: Terms and Conditions "terms": { "execution": "e1s1", "accept_btn": "input[name=_eventId_accept]", "decline_btn": "input[name=_eventId_cancel]", }, # Step 2: Create Username "username": { "execution": "e1s2", "field": "input[name=uid][id=userID]", "submit_btn": "input[name=_eventId_submit][id=button]", "hcaptcha_sitekey": "99871bd1-7b22-417a-b6cc-7ef645e5147a", }, # Step 3: Create Password (selectors to be verified on first live run) "password": { "execution": "e1s3", # inferred — may be e1s3 or later "field": "input[type=password][name=pwd]", # inferred "confirm_field": "input[type=password][name=confirmPwd]", # inferred "submit_btn": "input[name=_eventId_submit]", }, # Step 4: Recovery Questions "security_questions": { "execution": "e1s4", # inferred "question_selects": "select", # multiple