Products · /v1/brands
The paperwork of telecom, reduced to a POST
10DLC brands and campaigns are first-class API objects with statuses and webhooks — not support tickets and spreadsheets. Register your tenants' businesses programmatically and watch approval arrive as an event.
Brand · Ridge Plumbingvetted
Campaign · appointmentsapproved
EIN **-***6789 · encrypted
Brands as API objects
Register a tenant's legal entity with one call. EINs are encrypted at rest and always returned masked.
Campaigns with status webhooks
brand.status_changed and campaign.status_changed tell you the moment vetting or approval lands.
Send-time gating
Live messaging traffic is gated on an approved campaign, so a tenant can't accidentally send unregistered traffic.
Instant approval in test mode
Test-mode brands vet instantly and campaigns approve immediately, so your onboarding flow is testable end to end.
curl https://api.handset.dev/v1/brands \ -d tenant_id="tnt_01kzv90afex…" \ -d legal_name="Ridge Plumbing LLC" -d ein="12-3456789" { "id": "brd_01kzvc2…", "ein": "**-***6789", "status": "pending_vetting" } # days later, no polling required: → webhook: brand.status_changed { "status": "vetted" }
Endpoints
| POST | /v1/brands | Register a tenant's brand for 10DLC |
| GET | /v1/brands | List brands and their vetting status |
| GET | /v1/brands/{id} | Retrieve one brand (EIN masked) |
| POST | /v1/campaigns | Create a messaging campaign under a vetted brand |
| GET | /v1/campaigns | List campaigns and approval status |
| GET | /v1/campaigns/{id} | Retrieve one campaign |
Ship compliance this sprint.
We're onboarding a small group of vertical SaaS platforms. Tell us what your customers need to say, and to whom.