Licenses & state restrictions
How California, Florida, Texas, and other state-specific requirements affect preparation and activation.
Start with the vertical and locations
Requirements depend on the trade and the selected states together. A plumber in California and a smart-home installer in Texas do not use the same set of fields.
The live vertical catalog shows the complete current rule sheet. Common configured cases include:
| Trade / activity | States | Configured information |
|---|---|---|
| Contractor trades such as plumbing, electrical, and HVAC | CA, FL | licenseNumber |
| Smart-home camera or alarm installation | TX, FL, CA | securityLicense |
| Tree services | MD, CT | licenseNumber |
| Auto repair | CA | barRegistration |
| Chiropractor / dentist free or discounted first visits | FL | flFreeExamNotice |
| Lawn chemical treatments | Applicable locations | pesticideLicense |
These are distinct requirements. securityLicense, for example, is not an alias for the contractor license-number verification endpoint.
Check the workspace before advertising
curl https://api.benjiads.com/v1/workspace/requirements \
-H "Authorization: Bearer $BENJIADS_API_KEY"MCP: get_workspace_requirements with site:read.
The response includes the workspace's vertical, selected states, applicable fields, current license blockers in missing, the accepted license line, disclosures, and the dashboard address for managing the business.
An empty missing list means the license-number gate has no current blocker. It does not mean billing, budget, creatives, or campaign preparation are ready.
License-number verification
The current validation flow normalizes the number, validates its format, and stores a status for a state.
| State | Accepted input format | Current check |
|---|---|---|
| CA — California | 5–8 digits | CSLB registry lookup; an available registry must report an active license |
| FL — Florida | 2–4 letters followed by 5–8 digits | Format check; a valid number remains unverified |
| TX and other states | 3–24 letters, digits, or hyphens | Generic format check; no state registry is connected in this flow |
For states without a connected registry, a format-valid unverified record can satisfy the existing acceptance check. It must match the selected state. If the California registry is unavailable, the existing flow accepts a format-valid number as supplied and flags it for manual review; unverified does not mean registry-verified.
The workspace currently stores one license record with one state. Do not assume that a California record covers Florida as well. Mixed-state targeting can leave requirements unmet; inspect missing before proceeding.
License holds and redeployment
Onboarding can prepare an ad pack in pause when a license is missing or rejected. A license hold does not authorize delivery.
- Complete license verification in the workspace's Ads screen.
- Redeploy the held pack through that screen so the creative carries the current license information.
- Wait for the complete pack.
- Complete any remaining payment and funding requirements before activation.
Payment or a wallet top-up does not remove a license hold. launch_campaign returns license_redeploy_required for a held pack even if a license was supplied afterward.
What the public API supports
| Action | Public interface |
|---|---|
| Discover trade/state rules | list_verticals, get_vertical |
| Inspect current license blockers | get_workspace_requirements |
| Inspect a preparation hold | get_job |
| Submit or verify a license number | Workspace dashboard |
| Replace a pack prepared under a license hold | Workspace dashboard |
| Launch after the rules are satisfied | launch_campaign |
There is no public v1 license-write tool. Agents should hand the owner back to the dashboard for verification instead of claiming a license was accepted.