TRAI SMS Compliance TRAI-Compliant URL Shortener for Indian SMS Campaigns — Custom Domain and 2s.ms
In India, a short link in an SMS is not just a marketing decision.
It is a regulatory one.
TRAI requires every commercial SMS link to carry a registered sender header and be whitelisted on the DLT platform. Non-compliant links are blocked by carriers before the message arrives. The audience never sees them.
Cuttly supports two methods for creating TRAI-compliant short links — both trackable, both integrated into your existing Cuttly dashboard, both available on the Single plan and above.
What TRAI Requires — The Essentials
TRAI's SMS regulations, which took full effect on October 1, 2024, apply to all commercial SMS messages sent over Indian telecom networks. The core requirement for any URL included in a commercial SMS:
- Registered Principal Entity (PE). The business sending the SMS must be registered on the DLT (Distributed Ledger Technology) platform operated by telecom providers in India.
- Registered Header ID. A 6-character sender identifier (HEADER) assigned to the PE. This HEADER must appear as a path segment in any URL included in the SMS.
- Whitelisted static URL. The static portion of every URL in the SMS must be registered and whitelisted on the DLT platform. The dynamic part (unique per message or recipient) does not require separate whitelisting.
- Compliant URL structure. The URL must follow the format: domain/HEADER/dynamicPart — where the static part domain/HEADER/ is what gets whitelisted.
Generic short link domains on shared infrastructure cannot be whitelisted for individual senders — the static portion is shared across all users. TRAI compliance requires either a dedicated custom domain or Cuttly's dedicated 2s.ms domain, both of which allow each sender's HEADER to create a unique, whitelistable static URL structure.
Two Compliance Methods in Cuttly
| Method | URL Format | Own Domain Required | Best For |
|---|---|---|---|
| Custom Domain + Header | yourbrnd.link/HEADER/slug | Yes | Branded SMS campaigns, full domain control |
| 2s.ms Domain + Header | 2s.ms/HEADER/slug | No | Fast setup, no domain purchase needed |
Both methods produce TRAI-compliant short links. Both are trackable with full Cuttly analytics. The choice depends on whether you want full branded domain control (Method 1) or faster setup without owning a short domain (Method 2).
Method 1 — Custom Domain with TRAI Tracking Header
Connect your own branded domain to Cuttly and configure a TRAI tracking header for that domain. Short links are generated in the compliant format:
Compliant URL structure:
https://yourbrnd.link/HEADER/{dynamicShortLinkID}
Example:
https://yourbrnd.link/ABCDEF/x7k2m9
Static portion (whitelisted on DLT): https://yourbrnd.link/ABCDEF/
Dynamic portion (unique per link): x7k2m9
Only the static portion needs to be submitted for DLT whitelisting. The dynamic part varies per link or recipient and does not affect compliance status.
How to Set Up — Custom Domain Method
Step 1 — Connect your domain to Cuttly
Go to Link Management → Branded Domains in your Cuttly dashboard. Click Add New Domain, enter your domain and configure the DNS A record and DNS TXT record at your registrar. One domain is included on the Single plan; multiple domains on Team plans.
Step 2 — Add a Tracking Header to the domain
Once your domain is approved, go to its settings in Branded Domains and configure a Tracking Header — enter your registered TRAI HEADER ID (6 characters). This creates the domain/HEADER/ static prefix for all links on this domain. Full guide: How to Add Tracking Header for custom domain in Cuttly.
Step 3 — Create compliant short links
Shorten any URL using your custom domain. The resulting link automatically includes your HEADER in the path — yourbrnd.link/HEADER/slug.
Step 4 — Whitelist the static URL on DLT
Submit the static portion (https://yourbrnd.link/HEADER/) for whitelisting on the DLT platform. This is the client's responsibility — Cuttly provides the correct URL structure, registration on DLT must be completed by the sending business.
For Team plan users managing TRAI compliance across multiple team members: How to Set Tracking Headers in Team Dashboard.
Method 2 — 2s.ms Domain with TRAI Header
The 2s.ms domain is a dedicated Cuttly domain for TRAI-compliant SMS link shortening. It eliminates the need to purchase and configure your own branded domain while still producing a correctly structured compliant URL.
Compliant URL structure:
https://2s.ms/HEADER/{dynamicShortLinkID}
Example:
https://2s.ms/ABCDEF/x7k2m9
Static portion (whitelisted on DLT): https://2s.ms/ABCDEF/
Dynamic portion (unique per link): x7k2m9
The same whitelisting rule applies: only the static portion https://2s.ms/HEADER/ needs to be submitted to the DLT platform. The dynamic slug varies per link without affecting compliance.
How to Set Up — 2s.ms Method
Step 1 — Add the 2s.ms domain with your HEADER in Cuttly
In your Cuttly dashboard, go to Link Management → Branded Domains. Add 2s.ms as your domain and configure your TRAI HEADER ID. Full guide: How to Add the 2s.ms Domain for TRAI Compliance in Cuttly.
Step 2 — Create compliant short links
Shorten any URL using the 2s.ms domain. The resulting link automatically uses the structure 2s.ms/HEADER/slug.
Step 3 — Whitelist the static URL on DLT
Submit https://2s.ms/HEADER/ (with your specific HEADER ID) for whitelisting on the DLT platform. As with Method 1, DLT registration is the sending business's responsibility.
For Team plan users: Adding and Using 2s.ms in Cuttly's Team Dashboard.
Understanding the URL Structure
The distinction between static and dynamic portions of a TRAI-compliant URL is the key to understanding why compliance works the way it does.
| URL Portion | Example (Custom Domain) | Example (2s.ms) | DLT Action Required |
|---|---|---|---|
| Domain | yourbrnd.link | 2s.ms | Part of static URL submitted for whitelisting |
| HEADER | ABCDEF | ABCDEF | Registered PE Header — part of static URL |
| Static portion (whitelisted) | yourbrnd.link/ABCDEF/ | 2s.ms/ABCDEF/ | Submit this exact string to DLT for whitelisting |
| Dynamic slug | x7k2m9 | x7k2m9 | No DLT action needed — varies per link |
| Full compliant link | yourbrnd.link/ABCDEF/x7k2m9 | 2s.ms/ABCDEF/x7k2m9 | — |
The dynamic slug portion — the unique identifier at the end of each short link — is generated by Cuttly for each link created. It can be different for every link in a campaign, every recipient in a personalised SMS, or any other variation you require. Because it is not part of the whitelisted static string, changing it does not require re-registration on DLT.
Analytics on TRAI-Compliant Links
Every TRAI-compliant short link created in Cuttly — via custom domain or 2s.ms — is tracked identically to any standard Cuttly short link. Compliance does not reduce analytics capability.
| Analytics Data | Available on Compliant Links |
|---|---|
| Total clicks | Yes |
| Unique clicks | Yes |
| Click timeline | Yes |
| Device type (Mobile, Desktop) | Yes |
| OS (Android, iOS, Windows) | Yes |
| Browser | Yes |
| Country (geo — country level) | Yes |
| Referrer source | Yes |
| Hourly heat map | Yes — Single plan+ |
| Bot click filtering | Yes — Single plan+ |
For SMS campaigns specifically: click spikes arrive fast. Most SMS link clicks happen within the first 30 minutes of delivery. Open your Cuttly dashboard promptly after a send to monitor click velocity, device breakdown (almost entirely mobile for SMS) and country distribution.
Client Responsibility vs Cuttly's Role
Understanding exactly what Cuttly provides and what the sending business is responsible for prevents compliance gaps.
| Responsibility | Cuttly | Client (Sending Business) |
|---|---|---|
| Custom domain infrastructure | ✓ Provides hosting and redirect | Purchases domain, configures DNS |
| 2s.ms domain availability | ✓ Maintains the domain | Adds to Cuttly dashboard with HEADER |
| HEADER configuration in dashboard | ✓ Provides the interface | Enters their registered HEADER ID |
| Compliant URL generation | ✓ Generates domain/HEADER/slug automatically | — |
| Click analytics | ✓ Full tracking on all compliant links | — |
| PE registration on DLT | — | ✓ Client registers as Principal Entity |
| HEADER ID registration on DLT | — | ✓ Client registers their HEADER on DLT |
| DLT whitelisting of static URL | — | ✓ Client submits domain/HEADER/ for whitelisting |
| Telecom operator approval | — | ✓ Client ensures operator-level approval |
Method Comparison — Which to Choose
| Consideration | Custom Domain + Header | 2s.ms + Header |
|---|---|---|
| Setup time | 30–60 minutes (domain + DNS) | Under 10 minutes |
| Own domain required | Yes — purchase separately | No |
| Brand in URL | Yes — yourbrnd.link visible | No — 2s.ms is the domain |
| Domain reputation control | Full — your domain only | Shared (Cuttly manages 2s.ms reputation) |
| DLT whitelisting | yourbrnd.link/HEADER/ | 2s.ms/HEADER/ |
| Analytics | Full — identical to standard links | Full — identical to standard links |
| Available on plan | Single+ (domain: free plan+) | Single+ |
| Team dashboard support | Yes — Team plans | Yes — Team plans |
For businesses that run ongoing SMS campaigns and want full brand consistency in their links, the custom domain method is the better long-term investment. For businesses that need to achieve compliance quickly, or that run SMS campaigns infrequently, the 2s.ms method offers a faster path to compliance without additional domain costs.
Support Documentation
Step-by-step setup guides are available in the Cuttly Knowledge Base:
FAQ: TRAI SMS Compliance
What are TRAI SMS regulations for links?
TRAI requires all commercial SMS messages sent over Indian telecom networks to include a registered 6-character HEADER ID as part of any URL in the message. The static portion of every URL must be whitelisted on the DLT platform. Non-compliant links are blocked by carriers before delivery. These regulations took full effect from October 1, 2024.
How does Cuttly support TRAI compliance?
Two methods: Method 1 — connect your own branded domain and configure a TRAI tracking header. Links are generated as yourbrnd.link/HEADER/slug. Method 2 — use Cuttly's dedicated 2s.ms domain with your registered header. Links are generated as 2s.ms/HEADER/slug. Both methods produce trackable compliant links. Available on the Single plan and above.
What is the 2s.ms domain?
2s.ms is a dedicated Cuttly domain for TRAI-compliant SMS link shortening. It allows businesses to create compliant short links in the format 2s.ms/HEADER/slug without purchasing or configuring their own branded domain. The 2s.ms domain combined with a registered HEADER produces a URL structure that can be whitelisted on the DLT platform.
What is a TRAI Header ID?
A TRAI Header ID is a 6-character code identifying the SMS sender, linked to a registered Principal Entity (PE) on the DLT platform. In a compliant Cuttly short link it appears as the path segment after the domain: yourbrnd.link/HEADER/slug or 2s.ms/HEADER/slug. The static portion including the HEADER is what gets whitelisted on DLT.
Who is responsible for DLT whitelisting?
DLT registration and whitelisting is the responsibility of the sending business. Cuttly provides the technical infrastructure — custom domain support, header configuration, 2s.ms domain — to generate correctly structured compliant URLs. The client must register their HEADER ID and domain on the DLT platform and ensure whitelisting with their telecom operator.
Can I track clicks on TRAI-compliant short links?
Yes. Every TRAI-compliant short link in Cuttly is tracked identically to any standard short link — total clicks, unique clicks, device type, OS, country, referrer and timing. Hourly heat map and bot filtering are available on the Single plan and above.
Cuttly - Consistently Rated
Among Top URL Shorteners
Cuttly isn’t just another URL shortener. Our platform is trusted and recognized by top industry players like G2 and SaaSworthy. We're proud to be consistently rated as a High Performer in URL Shortening and Link Management, ensuring that our users get reliable, innovative, and high-performing tools.