A2P 10DLC Registration for Roofing Companies (2026 Guide)
A hailstorm rolls through, your canvassers pull 400 doors in two days, and your office texts every homeowner who took a card. A week later you notice almost none of them ever wrote back. Check your logs: if you were texting from an unregistered business number, most of those messages were blocked or filtered before they reached a single roof.
This is the A2P 10DLC registration guide written for roofing contractors: what registration is, exactly what to submit, what it costs, and the roofing-specific traps, because roofing carries baggage that other trades do not. Carriers have seen a decade of storm-chaser spam, and the states have written actual solicitation laws about it.
Bottom line up front: Register your brand ($4 one-time) and a campaign (~$15 vetting plus $1.50 to $12/month) before your next storm season, not during it. Vetting takes days to weeks, and a hailstorm will not wait for your campaign approval. And remember: 10DLC gets your texts delivered; it does not make storm-lead solicitation legal in states that restrict it.
What A2P 10DLC is, in plain words
A2P means application-to-person: any text sent by software rather than a person tapping on a phone. 10DLC is the 10-digit local number the text comes from. Since the early 2020s, AT&T, T-Mobile, and Verizon require every business sending A2P texts on local numbers to register with The Campaign Registry (TCR), the industry's central who-is-texting-what database.
You register a Brand (your company: legal name, EIN, address, website) and a Campaign (what you text about, with real sample messages and a description of how homeowners opted in). In return, the carriers deliver your traffic instead of treating it like spam.
Why roofing texting gets filtered harder than most
Carrier spam filters learn from complaint reports, and post-storm roofing blasts generate complaints at industrial scale. "Your roof may qualify for a FREE replacement through your insurance" is one of the most-reported message patterns in the country. The result: roofing vocabulary (storm, hail, claim, free inspection, insurance) gets extra scrutiny from carrier ML models even on registered numbers. A legitimate roofing sales operation has to both register and write like a contractor, not a claim-farming operation.
There is also a legal layer 10DLC does not touch: several states restrict contractor solicitation tied to insurance claims and disasters. Before texting a storm-hit zip code, read our guide to roofing storm-solicitation laws in Florida, Texas, and Louisiana, and the state SMS rules hub for the rest.
Step 1: Register your brand ($4 one-time)
Registration goes through your messaging provider (Twilio, Telnyx, Bandwidth), which files with TCR. Have ready:
- Legal entity name matching your IRS records exactly. "Apex Roofing & Restoration LLC," not the yard-sign version. EIN/name mismatch is the top brand failure.
- EIN. If you run crews under multiple LLCs, each entity that sends texts needs its own brand.
- Business address and a real website. A roofing company with no website, or a site with no phone number and no privacy policy, scores poorly.
- Company-domain email. Not a Gmail.
The fee is $4 once. Solo operators without an EIN can register as Sole Proprietor, but that tier is capped around 1,000 messages a day and filtered hardest, so if you sell under an entity, register the entity.
Step 2: Register your campaign (~$15 vetting + $1.50 to $12/month)
This is where roofers get rejected. Vetting costs approximately $15 one-time; the monthly fee runs from roughly $1.50 to $2 for Low Volume Mixed up to about $10 to $12 for Marketing or Mixed. Most roofing companies under about 2,000 messages a day fit Low Volume Mixed.
Campaign description that passes
Apex Roofing sends inspection scheduling confirmations, estimate
delivery, follow-ups after in-person visits, and job-status updates
(materials delivery, crew arrival, completion walkthrough) to
homeowners who requested an inspection via our website or from a
company representative in person. Recipients opt in at the time of
the request. All messages identify Apex Roofing and include opt-out
instructions.
Notice what that description is not: it is not "we contact homeowners in storm-affected areas about insurance claim opportunities." That sentence is a rejection, and in some states it is also a confession.
Sample messages that pass vetting
Hi [FirstName], it's Mike with Apex Roofing. Confirming your roof
inspection [Date] at [Time]. I'll text when I'm 20 min out.
Reply STOP to opt out.
Apex Roofing: [FirstName], your estimate is ready: [link]. It covers
the full tear-off and the decking repair we talked about. Questions?
Just reply. Reply STOP to opt out.
Hi [FirstName], materials land Thursday and the crew starts Friday
7am. I'll be on site. - Mike, Apex Roofing
And the kind that gets rejected (and reported):
URGENT: Hail damage detected in your area! Your insurance may owe
you a FREE ROOF. Claim your free inspection now: bit.ly/xyz
Roofing-specific gotchas
- Insurance-claim language. Samples that promise or imply insurance outcomes ("your claim may cover full replacement," "we waive your deductible") fail vetting. Deductible-waiver offers are also illegal in several states.
- "Free roof" and "free inspection" claims. "Free" plus urgency is the classic spam signature. "No-obligation inspection" reads cleaner to both vetters and homeowners.
- Storm-chasing volume spikes. A registered number that jumps from 50 texts a day to 2,000 the morning after a storm looks like every spam operation the filters were trained on. Ramp over several days and spread sends out.
- Solicitation laws are separate. Florida 489.147, Texas 4102.163, and Louisiana 45:844.11 restrict claim-related solicitation regardless of your 10DLC status. Registered spam is still spam, and in those states it can be an actionable violation.
- Door-knock lists are not opt-in lists. A homeowner who answered the door did not consent to texts. Your opt-in description must be real: "homeowner requested inspection and provided their number to a rep" is opt-in; "we canvassed the neighborhood" is not.
What your trust score buys: throughput by tier
TCR scores your brand 0 to 100, which sets your sending capacity. T-Mobile enforces published daily caps toward its subscribers; AT&T rate-limits per minute by campaign class; Verizon filters on reputation without published caps.
| Trust score (approx.) | Tier | T-Mobile daily cap | Roofing reality check |
|---|---|---|---|
| 75 to 100 | Top | ~200,000/day | National storm-response outfits |
| 50 to 74 | Upper-mid | ~40,000/day | Multi-market restoration companies |
| 25 to 49 | Lower-mid | ~10,000/day | Where most regional roofers land; plenty |
| 0 to 24 | Low | ~2,000/day | New brands; enough until a big storm week |
| Sole Proprietor | Bottom | ~1,000/day, heavy filtering | Avoid if you have an EIN |
If a storm week will realistically push you past your cap, external vetting (roughly $40 one-time) can raise a low score, or spread sends across additional registered numbers instead of spiking one.
Opt-in and opt-out: what to actually put in messages
- Opt-in: capture consent when the homeowner gives you their number. Web form checkbox text that works: "I agree to receive texts from Apex Roofing about my inspection and estimate. Msg & data rates may apply. Reply STOP to opt out."
- Opt-out: STOP, CANCEL, QUIT must suppress the number immediately and permanently. Your provider catches the keyword; your CRM must never queue that number again.
Compliance footer for the first message of any thread or blast:
Apex Roofing. Msg & data rates may apply. Msg frequency varies.
Reply HELP for help, STOP to opt out.
What happens if you skip it
Nothing dramatic, which is the problem. On Twilio, unregistered US-bound traffic dies at the API with error 30034 ("message from an unregistered number"). On providers that let it through, carriers filter it silently, delivery receipts say undelivered or nothing at all, and every filtered message drags the number's reputation lower. By the time you register, you may be ramping a burned number back from zero. Our Twilio deliverability guide walks through diagnosing exactly this spiral.
Registration is roughly $20 up front and a few dollars a month. One storm's worth of blocked follow-ups costs more than a decade of that.
The mechanics here are identical across the trades: if you also sell solar or run a pest control route, same brand-then-campaign process, different sample messages.
Or let the number come pre-registered
FollowUp handles this for roofing teams out of the box. The Autopilot tier includes a dedicated 10DLC-registered business number, so inspection confirmations, estimates, and post-storm follow-up go out on carrier-trusted infrastructure with opt-outs handled automatically. No TCR paperwork, no vetting wait, no 30034.
Be registered before the next storm, not after
FollowUp Autopilot ships with a dedicated A2P 10DLC-registered number plus automatic opt-out handling and quiet-hours enforcement, so your crew texts homeowners and the messages actually land.
Get Started →Frequently asked questions
Do roofing companies need A2P 10DLC registration to text customers?
Yes. Any roofing contractor sending business SMS to US numbers from a 10-digit local number through software must register a brand and campaign with The Campaign Registry. In 2026, unregistered roofing traffic is blocked by Twilio with error 30034 and filtered by AT&T, T-Mobile, and Verizon.
How much does 10DLC cost for a roofing contractor?
Brand registration is $4 one-time. Campaign registration costs approximately $15 in one-time vetting plus roughly $1.50 to $12 per month depending on use case. Most roofing companies fit Low Volume Mixed (about $1.50 to $2 per month) or Mixed (about $10 per month). Carriers add small per-segment A2P surcharges on top.
Can roofers text storm leads after a hurricane?
10DLC registration gets your texts delivered, but state storm-solicitation laws control whether you may solicit at all. Florida (489.147), Texas (4102.163/4102.151), and Louisiana (45:844.11) restrict contractor solicitation tied to insurance claims and disasters. Registration is not permission; check the state rules before texting storm-damaged zip codes.
Why do roofing SMS campaigns get rejected in vetting?
Common triggers: "free roof" or "free inspection" claims in sample messages, insurance-claim language that reads like claim solicitation, campaign descriptions that sound like storm-chasing lead generation, missing opt-out language in samples, and no described opt-in flow. Rewrite the samples as inspection scheduling and job-status updates and resubmit.
Will a volume spike after a storm get my number flagged?
It can. Carrier reputation models watch for sudden spikes, and a number that goes from 50 texts a day to 2,000 the day after a hailstorm looks like a spam operation even when registered. Ramp volume over days, spread sends across the day, and stay within the daily cap for your trust tier.
This is a general summary, not legal advice.