TL;DR
- California requires anyone doing roofing work over $500 (labor + material) to hold an active C-39 roofing contractor license through the CSLB.
- The full verification takes 8 minutes and runs through 4 documents: CSLB license page, bond, workers comp, and general liability COI.
- The most common San Diego scam pattern is an unlicensed door-knocker after a Santa Ana wind event offering “insurance claim help.” 9 of 10 times the license number on the truck is real, but it belongs to a different person — a real fraud red flag.
- Hiring an unlicensed roofer in California exposes you to personal liability for any injury on your property (no workers comp coverage), no Contractor’s Bond recourse if the contractor disappears, and possible insurance claim denial on any future roof claim.
- The Contractor’s State Recovery Fund can recover up to $15,000 per project from a licensed contractor — zero from an unlicensed one.
If you are hiring a roofer in San Diego County, the single highest-leverage thing you can do is verify the license yourself through the California Contractors State License Board (CSLB). It takes under 10 minutes and it eliminates roughly 90 percent of the contractor-related risk in roofing work.
This guide is the full verification workflow, exactly what to check, what the legitimate documents look like, what the most common San Diego license-fraud patterns are, and what your recourse is if something goes wrong. We are a San Diego County roofing marketplace, and the patterns below come from contractors we have vetted into our network and the ones we have rejected.
What “licensed roofing contractor” actually means in California
A “licensed roofing contractor” in California means a person or company holding a current, active C-39 Roofing Contractor classification through the California Contractors State License Board. The C-39 is one of about 40 specialty classifications under California Business and Professions Code section 7058.
A few important nuances:
- B General Building license also allows roofing work as long as roofing is one of two or more unrelated trades on the project. A standalone reroof typically requires C-39.
- A General Engineering license does not allow residential roofing on its own.
- Salesperson registration (HIS). Door-to-door roofing sales reps must hold a separate Home Improvement Salesperson registration. CSLB also lets you look this up.
- The $500 threshold. California Business and Professions Code 7048 lets unlicensed people do work under $500 (labor + material combined). No real reroof falls under that.
A licensed C-39 contractor must also carry:
- A $25,000 California Contractor’s Bond (or $200,000 for some classifications)
- Workers comp insurance (if they have employees, and almost all roofers do)
- Bond and workers comp are both visible on the CSLB license page
The 8-minute CSLB verification (do this before signing anything)
This is the workflow every San Diego homeowner should run before signing a roofing contract.
Step 1 — pull up the CSLB license check
Open the CSLB license check tool. You can search by:
- License number (fastest)
- Business name
- Personnel name
- HIS (salesperson) number
Search by business name, not just license number. Some scam crews put a real license number on their truck that belongs to a different person — searching by business name catches the mismatch.
Step 2 — check the license details
The license page will show:
- Status: “ACTIVE” — not “EXPIRED,” not “SUSPENDED,” not “REVOKED.” Status is the single most important field. An expired license means no work can be legally performed.
- Classification: “C-39 Roofing Contractor” — if you see only “B General Building,” that is OK for some jobs but ask why the contractor does not also hold C-39.
- License issue date — newer than 24 months is not disqualifying but warrants closer reference checking.
- Personnel — confirm the names listed on the license match who you are talking to.
- Bond information — should show a $25,000 contractor’s bond with a current effective date.
- Workers comp — should show a current policy carrier and policy number (or an exemption certificate if the business has no employees, which is rare for roofers).
Step 3 — check the disciplinary actions
Scroll down to the “Disciplinary Actions” section. A clean license shows “No actions reported.” A flagged license shows past suspensions, revocations, or pending hearings. Any flag warrants a deeper conversation before hiring.
Step 4 — request the certificate of insurance (COI)
This is the step that catches the most fraud. Text or email the contractor:
“Please have your insurance carrier issue a certificate of insurance (COI) listing my project address as additional insured. Email is fine.”
A legitimate contractor’s insurance carrier will issue this within 24 hours, free of charge. The COI will show:
- General liability policy number, carrier name, policy limits ($1M / $2M is typical)
- Workers comp policy number and carrier
- Effective dates (must cover your project window)
- Your name and project address listed as additional insured
If the contractor stalls, sends a screenshot of a policy declaration page instead of an insurer-issued COI, or claims insurance is “too expensive to add you to,” walk away. Real carriers issue COIs as a routine, free service.
What the most common San Diego license-fraud patterns look like
We have seen these patterns repeatedly in San Diego County, especially after Santa Ana wind events and after big news cycles about insurance.
| Pattern | What it looks like | How to spot it |
|---|---|---|
| Borrowed license number | Door-knocker says they work for “ABC Roofing, license #XXXXXX” but the CSLB page lists different personnel | Search CSLB by business name, not just license number. Confirm the personnel match. |
| Expired license still in use | License number is real but expired 2+ years ago | Status field on CSLB will show “EXPIRED” — homeowners often skip that field. |
| Salesperson without HIS registration | Door-to-door rep cannot produce an HIS card | California requires HIS registration for door-to-door home improvement sales. Look it up at CSLB. |
| Storm-chaser shell company | Out-of-state company filed a new CSLB license within the last 90 days | License issue date on CSLB. New companies are not automatically bad but should be vetted more carefully. |
| ”We use a master license” | Contractor claims to work under a friend’s or family member’s license | This is illegal and a leading cause of CSLB enforcement actions. Walk away. |
| No workers comp | ”We are all 1099 subs so no workers comp needed” | If anyone falls on your roof and is treated as your employee under California law, you pay. Confirm payroll-based workers comp on the CSLB page. |
Why hiring an unlicensed roofer is more dangerous than people realize
The conventional wisdom is “unlicensed contractors are cheaper but riskier.” The actual exposure is bigger than most homeowners think:
1. Personal liability for on-site injury. If an unlicensed roofer or their crew is injured on your property and has no workers comp coverage, California courts can treat them as your employee for purposes of injury liability. Your homeowner’s policy will usually not cover this. Roofing has one of the highest injury rates of any trade — falls are common.
2. No Contractor’s Bond recourse. Licensed C-39 contractors carry a $25,000 bond. If they fail to perform or abandon the job, you can file a claim against the bond. An unlicensed contractor has nothing to file against.
3. No CSLB enforcement option. If a licensed contractor does shoddy work, you can file a complaint with CSLB and trigger an investigation. With an unlicensed contractor, your only recourse is small claims court or civil litigation — both slow and expensive.
4. Contractors State Recovery Fund unavailable. The Recovery Fund will pay up to $15,000 per project in cases of fraud or willful misconduct by a licensed contractor. Zero available against an unlicensed one.
5. Insurance claim denial. If you ever file a future homeowner’s claim involving roof damage, the carrier can check the permit history. A roof installed by an unlicensed contractor without a permit can trigger claim denial.
6. Permit denial. San Diego County jurisdictions will not issue or sign off on a reroof permit without a licensed contractor on the application (or proof of owner-builder status with the homeowner doing the work themselves).
7. Tax exposure. California Labor Code 3357 plus IRS guidance can treat homeowners as employers for tax purposes when paying unlicensed contractors for substantial work. This is rarely enforced but is technically on the books.
The $1,500 to $3,000 you save going with an unlicensed roofer in San Diego is small money against any one of these exposures.
When you might see a “B General Building” license on a roofing quote
Some legitimate roofing contractors in San Diego hold a B General Building license without C-39. This is acceptable for roofing work under California Business and Professions Code section 7057 if the project involves two or more unrelated trades (for example, a roof replacement that also includes structural framing, gutter replacement, and skylight installation).
For a pure tear-and-replace roofing job, C-39 is the appropriate license. A B-only contractor on a pure reroof is technically working outside their classification. It is not necessarily a scam — many established general contractors do roofing under B — but it is worth asking why they do not also carry C-39.
The safest combination on any roofing project: C-39 specifically, or C-39 plus B.
What the California Contractor’s Bond actually covers
The $25,000 California Contractor’s Bond is one of the most misunderstood pieces of contractor licensing. What it does:
- Covers losses from a contractor’s failure to perform (abandonment, non-completion)
- Covers losses from willful misconduct or fraud
- Pays out to consumers through a claim filed with the surety company
What it does not do:
- Cover ordinary workmanship disputes (“the shingles don’t look right”)
- Replace the contractor’s general liability or workers comp
- Reimburse you for emotional damages or lost time
The bond is per-contractor, not per-project, meaning multiple claimants in a year can deplete the bond. The Contractors State Recovery Fund (separate from the bond) can pay up to $15,000 per project on top of bond recovery for licensed contractors only.
For more on the broader vetting process, see our how to choose a roofing contractor and roofing contractor red flags guides.
What about workers comp specifically?
Workers comp is the single most-skipped verification step. Here is what to actually check:
- The CSLB license page lists a current workers comp policy carrier and policy number (or an exemption certificate).
- The exemption certificate is only valid if the contractor has zero employees and is doing the work personally. Almost no roofer fits this — a crew on your roof means they need workers comp.
- The workers comp premium should be payroll-based, not minimum-premium. A real roofing crew of 4 generates a workers comp premium of roughly $8,000 to $15,000 per year. A “minimum premium” $400 policy means the contractor is classifying workers as 1099s — illegal under California’s ABC test for most roofing work.
The COI you request from the carrier will show the policy detail. Compare it against the CSLB page. If anything looks off, ask.
Frequently asked questions
Can I look up a San Diego roofer’s license by phone number? No. CSLB only allows searches by license number, business name, personnel name, or HIS number. Get the contractor’s business name or license number first.
What if the CSLB site shows “License has been bonded but workers comp not on file”? That means the contractor claims an employee exemption. Verify by asking who will be on your roof. If there is a crew, workers comp is required and the exemption is invalid.
Is a license alone enough to hire? No. A license is the necessary minimum but not sufficient. You also need active insurance, recent verifiable references, and a clear written contract. See top rated roofers in San Diego for the broader checklist.
Do CSLB licenses transfer between states? No. A Texas roofer working in California needs a California C-39 license. Out-of-state-only licenses are not valid for work in California.
What if I already paid an unlicensed contractor and they did bad work? File a complaint with CSLB at cslb.ca.gov — they investigate unlicensed activity. Document everything in writing. Consider small claims court (limit $12,500 in California) for amounts in that range, or civil litigation for larger.
What is the CSLB SWIFT unit? Statewide Investigative Fraud Team. They run undercover stings on unlicensed contractors and prosecute. Reports to SWIFT are confidential and can trigger investigations of repeat offenders.
Does a C-39 license cover roof inspection or repair, too? Yes. C-39 covers any roof-related work over the $500 threshold, including inspections billed as standalone services and repairs of any size. Some independent inspectors hold a B General Building license or are licensed home inspectors instead.
Get matched with a fully verified licensed San Diego roofer
We connect San Diego County homeowners with roofers we have already verified against every step above: active C-39 license, current $25K bond, payroll-based workers comp, $1M+ general liability with the ability to issue COIs same-day, and clean disciplinary records. We re-verify our network every 90 days.
Verify our recommendations yourself at the CSLB license check — that is the entire point. Call (858) 925-5546 or request a free estimate and we will match you with vetted local roofers same-day.