# MSG-088 — Public URL shorteners are prohibited in every registration field

> No public URL shortener may appear in the description, message flow, samples, HELP reply, or either confirmation message.

- **Rule ID:** MSG-088
- **Layer:** Message content (`MESSAGE_CONTENT`)
- **Checks:** `campaign.* (every text field)`
- **Severity:** BLOCKING — Breaking this rule gets the submission rejected outright.
- **When it bites:** Gates approval — get this wrong and registration is refused
- **How it is detected:** Deterministic (settled in code from the submitted values)
- **Fix type:** Fix the field — a better value in the form clears it
- **Required by:** CTIA, TCR, Twilio, Bandwidth, AWS
- **Applies:** Applies to every 10DLC registration.
- **Canonical URL:** https://ekas.io/rules/10dlc/message-content/msg-088/

## Why this rule exists

Shorteners hide the destination, so carriers cannot assess where a message leads and block them categorically. Tools typically check only the sample messages, but the prohibition covers every field — a shortener in the HELP reply or the opt-in confirmation is rejected exactly the same way.

## How to fix it

Replace every shortened link with the full URL on your own domain. Note the two Twilio generations disagree on whether this is fixable — assume the strict reading, where it is not resubmittable.

## Example of a compliant value

```text
https://acmecoffee.com/sale rather than https://bit.ly/3xY2z
```

## Provider rejection codes

| Provider | Code | Resubmission allowed |
| --- | --- | --- |
| Twilio (gen1) | `30892` | yes |
| Twilio (gen2) | `30963` | no |
| Bandwidth | `8201` | yes |
