A2P 10DLC Compliance Made Simple

Register your brand and messaging campaigns with The Campaign Registry (TCR) directly from CloudContactAI — through the dashboard or via SDK.

Get Started Free
🏢
Brand Registration
📋
Campaign Vetting
TCR Verified
📱
Carrier Compliant
SDK Automation

Manage All Your Brands in One Place

The CloudContactAI A2P Registration dashboard gives you a complete view of all brand registrations across your accounts — with real-time TCR status tracking.

  • Track brands from Draft → In Review → Verified
  • Filter by status or provider
  • Search accounts by email or name
  • View TCR Brand IDs once approved
A2P Registration Brands Dashboard

Register Your Brand with TCR

Fill out your company identity, business address, and contact information. CloudContactAI submits your registration directly to The Campaign Registry for verification.

  • Legal company name and DBA
  • Vertical / industry selection
  • Business address verification
  • Tax ID and entity type
Create Brand Registration Form

Register Your Messaging Campaign

Once your brand is verified, register your campaigns to get carrier approval for A2P 10DLC messaging. Define your use case, message flow, and opt-in/opt-out keywords.

  • Select use case (Marketing, Customer Care, Mixed, etc.)
  • Describe your message flow and subscriber opt-in
  • Add sample messages for TCR review
  • Save as draft or submit directly to TCR
Create Campaign Registration Form

How It Works

1

Register Your Brand

Submit your company details to TCR for business identity verification.

2

Get Brand Verified

TCR reviews your brand and assigns a TCR Brand ID upon approval.

3

Register a Campaign

Link your campaign to your verified brand and define your messaging use case.

4

Start Sending

Once your campaign is active, send A2P compliant SMS at scale with full carrier support.

Register via SDK

Prefer to automate? Register brands and campaigns programmatically using the CloudContactAI Node.js SDK. View full SDK docs →

// Install: npm install ccai-node
import { CCAI } from 'ccai-node';

const ccai = new CCAI({
  clientId: process.env.CCAI_CLIENT_ID,
  apiKey: process.env.CCAI_API_KEY
});

const brand = await ccai.compliance.registerBrand({
  legalName: "Your Company LLC",
  taxId: "12-3456789",
  taxIdCountry: "US",
  website: "https://www.yourcompany.com",
  vertical: "TECHNOLOGY",
  entityType: "PRIVATE_PROFIT",
  address: {
    street: "123 Main St",
    city: "San Francisco",
    state: "CA",
    postalCode: "94105",
    country: "US"
  },
  contactEmail: "[email protected]",
  contactPhone: "+14155551234"
});

console.log(`Brand ID: ${brand.brandId}`);
console.log(`Status: ${brand.status}`); // PENDING, APPROVED, REJECTED
// Register a campaign after brand approval
const campaign = await ccai.compliance.registerCampaign({
  brandId: brand.brandId,
  useCase: "MARKETING",
  description: "Promotional messages for opted-in customers",
  messageFlow: "Customers opt-in via web form",
  sampleMessages: [
    "Hi \${firstName}, check out our latest deals!",
    "Your order has shipped. Track it here: https://example.com"
  ],
  helpMessage: "Reply HELP for assistance.",
  optOutMessage: "Reply STOP to unsubscribe."
});

console.log(`Campaign ID: ${campaign.campaignId}`);
console.log(`Status: ${campaign.status}`);
// Poll for brand and campaign approval status
const brandStatus = await ccai.compliance.getBrandStatus(brand.brandId);
console.log(`Brand: ${brandStatus.status}`); // PENDING, APPROVED, REJECTED

const campaignStatus = await ccai.compliance.getCampaignStatus(campaign.campaignId);
console.log(`Campaign: ${campaignStatus.status}`);

// Auto-poll until approved
async function waitForApproval(brandId) {
  let status = 'PENDING';
  while (status === 'PENDING') {
    const result = await ccai.compliance.getBrandStatus(brandId);
    status = result.status;
    if (status === 'PENDING')
      await new Promise(r => setTimeout(r, 30000));
  }
  return status;
}

Ready to Get A2P Compliant?

Register your brand and campaigns today — through the dashboard or automate it with our SDK.

CloudContactAI
Now available on iOS
Get App