Have the registration checklist ready. The legal name, tax ID and address must match the entity’s official records exactly.
Brand fields
Send these fields onPOST /10dlc/brands and on PUT /10dlc/brands/{id}. The PUT takes the full body, not a patch.
Registry values
The US 10DLC registry accepts these values. Vobiz passes them through as you send them.vertical
vertical
AGRICULTURE, COMMUNICATION, CONSTRUCTION, EDUCATION, ENERGY, ENTERTAINMENT, FINANCIAL, GAMBLING, GOVERNMENT, HEALTHCARE, HOSPITALITY, HUMAN_RESOURCES, INSURANCE, LEGAL, MANUFACTURING, NGO, POLITICAL, POSTAL, PROFESSIONAL, REAL_ESTATE, RETAIL, TECHNOLOGY, TRANSPORTATIONlegalEntityType
legalEntityType
PRIVATE_COMPANY, PUBLIC_COMPANY, NON_PROFIT, GOVERNMENT, SOLE_PROPRIETORbusinessRegistrationType (non-US entities)
businessRegistrationType (non-US entities)
VAT, CBN, PROVINCIAL_NUMBER, ABN, SIREN, NZBN, CIF, CNPJ, OTHERRegister a brand
1
Create the brand
POST /10dlc/brands creates the brand with stage: DRAFT. It is not submitted for review until you register it in the next step.201 with the brand object. Keep id; every other call uses it.2
Submit it to the registry
POST /10dlc/brands/{id}/register has no body. It returns 200 with the brand refreshed: stage becomes SUBMITTED and registrationStatus starts at PENDING.3
Poll the registrar statuses
GET /10dlc/brands/{id}/registrar-statuses returns one entry per registrar:registrar identifies the registrar that reported the state. brandIdentityStatus, brandAuthenticationStatus and rejectionReason appear only when the registrar has set them. An empty array means no registrar has reported yet. GET /10dlc/brands/{id} also refreshes the brand from the registry before returning it, so either call works for polling. The WebSocket 10dlc.brand.updated event tells you when the brand changes without polling.4
Public companies: complete brand authentication
Brands with
brandType: TENDLC_PUBLIC_COMPANY go through an extra authentication step. POST /10dlc/brands/{id}/brand-auth-verification starts it and returns 202 {"status": "requested"}. If the one-time code did not arrive, POST /10dlc/brands/{id}/resend-2fa sends it again, also 202 {"status": "requested"}. While the code is outstanding, registrationStatus reads PENDING_2FA.Calling either endpoint on another brand type returns 400 {"error": "invalid request: brand authentication is only available for TENDLC_PUBLIC_COMPANY brands"}.5
Optional: request vetting to raise throughput
Registered brands start with a baseline message throughput. Vetting lets the registry assign a higher tier.
POST /10dlc/brands/{id}/vet takes {"type": "STANDARD"}, ENHANCED or POLITICAL (default STANDARD; any other value is 400 {"error": "invalid request: type must be one of STANDARD, ENHANCED, POLITICAL"}). The 200 body is the vetting record as the registry returns it.GET /10dlc/brands/{id}/vets lists past vetting requests as {"results": [...], "paging": {"page", "size", "totalPages", "totalResults"}}. Pass page (0 or more) and size (0 to 100); other values return 400 {"error": "page must be >= 0 and size between 0 and 100"}.Update or delete a brand
PUT /10dlc/brands/{id}replaces the brand with the full body you send, using the same fields as create.referenceIdis ignored. Use it to fix a rejected brand before registering again.DELETE /10dlc/brands/{id}returns204. A brand that still owns campaigns returns409 {"error": "conflict: brand still has 2 campaign(s); delete them first"}.GET /10dlc/brandsreturns every brand on the account as an array, newest first.
The brand object
When a registrar rejects the brand,
rejectionReasons holds an array of {registrar, state, rejectionReason} entries. Fix the fields it names with PUT, then call register again.
Errors
All errors are{"error": "<message>"}. Responses that originate at the registry add providerError, an opaque diagnostic string you can quote to support.
See the error reference for the full list.
Next steps
Create a campaign
Describe your use case and attach numbers to this brand.
Brand endpoints
Full request and response schemas.
Build it with the Messaging API
Brand endpoints
Create, register, verify and vet a brand.
WebSocket events
Get
10dlc.brand.updated as review progresses.Send your first SMS
Send once your campaign is registered.
Errors
Registry errors and
providerError.