For the complete documentation index, see llms.txt. This page is also available as Markdown.

10DLC Brands

Register and manage 10DLC brands through TNID: API keys, draft and submit flows, statuses, listing and sharing brands with partner companies.

10DLC is the US carrier registration system for application-to-person messaging on local numbers. A brand is the registered business that sends messages; campaigns (next page) describe what it sends. TNID submits brands and campaigns to The Campaign Registry (TCR) for you and tracks their status.

All 10DLC operations are on the /company GraphQL server with a company token. Every operation is documented with request, variables and response in the API Reference.

1. Register a 10DLC API key

Brands and campaigns are submitted under a 10DLC (TCR) API key. Register the key with TNID once; it must be a key provisioned for this purpose only, not shared with another integration.

mutation ($name: String!, $apiKey: String!, $apiKeySecret: String!) {
  addTenDlcApiKey(name: $name, apiKey: $apiKey, apiKeySecret: $apiKeySecret) {
    apiKeyId
    companyId
    name
  }
}

Related: tenDlcApiKeys lists your keys, updateTenDlcApiKey renames one, deleteTenDlcApiKey removes one.

Sharing a key with a partner. A company that owns a key can let another company register brands and campaigns under it with authorizeTenDlcApiKey(apiKeyId, authorizedCompanyId), see the authorizations with tenDlcApiKeyAuthorizations, and withdraw with revokeTenDlcApiKeyAuthorization. The authorized company then sees those brands and campaigns with ownershipType other than DIRECT.

2. Brand lifecycle

Status
Meaning

DRAFT

Saved in TNID, not sent to TCR. Edit freely.

PENDING_REVIEW

Submitted to TCR, awaiting verification.

ACTIVE

Verified. Campaigns can be submitted against it.

REJECTED

TCR rejected the brand. Fix the data and resubmit with updateAndSubmitTenDlcBrand.

EXPIRED

Registration lapsed.

Two ways in:

  • Draft first (recommended when data arrives in pieces): registerTenDlcBrandAsDraft(input) creates a DRAFT; updateTenDlcBrandAsDraft(id, input) edits it; updateAndSubmitTenDlcBrand(id, input) submits it.

  • One shot: registerAndSubmitTenDlcBrand(input) creates and submits in a single call.

The response status is PENDING_REVIEW; brandId is the TCR identifier (for example BAXKPHB). Poll tenDlcBrand(id) or list with tenDlcBrands until status is ACTIVE, then submit campaigns. workflowStatus (for example VERIFIED) reflects TCR's own verification workflow.

Allowed values for entityType, brandRelationship, vertical and the status enums are listed under Enums in the API Reference.

3. Find and inspect brands

10DLC lists use page-number pagination (page, pageSize, totalRecords) rather than the cursor style used elsewhere; see Pagination. tenDlcBrand(id) returns one brand with its full address and contact fields. deleteTenDlcBrand(id) removes a brand from TNID.

Last updated