# POL-010 — Both policy URLs must resolve and return content anonymously

> The privacy policy and terms URLs must resolve in DNS and return a successful response to an anonymous fetch — no session, no cookie, no member wall.

- **Rule ID:** POL-010
- **Layer:** Policy pages (`POLICY_PAGE`)
- **Checks:** `privacy policy URL + terms URL fetch`
- **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 privacy policy or SMS terms
- **Required by:** TCR, Twilio, Bandwidth, AT&T, T-Mobile, AWS, Sinch
- **Applies:** Applies to every 10DLC registration.
- **Canonical URL:** https://ekas.io/rules/10dlc/policy-page/pol-010/

## Why this rule exists

The reviewer's fetcher has no account and no cookies, so a policy behind a member area or a consent wall is indistinguishable from a policy that does not exist — and the rejection says the policy failed review rather than that it was never read. The common causes are all invisible from the inside: a page that requires the site's own cookie banner to be accepted, a URL that 404s after a redesign, a host that resolves only on the office network.

## How to fix it

Open both URLs in a private browser window with no session, from a network that is not yours, and fix whatever stops the page rendering. Done when both return the policy text to a plain fetch with no login and no interstitial.

## Common mistakes

- A page that renders only after the cookie banner is accepted returns an empty body to a fetcher. Serve the policy text before the banner, not behind it.

## Provider rejection codes

| Provider | Code | Resubmission allowed |
| --- | --- | --- |
| Twilio (gen1) | `30908` | yes |
| Bandwidth/DCA | `7101` | yes |

## Notes

Absorbs POL-011 (HTTP status), POL-012 (liveness) and POL-013 (anonymous access): DNS, status and an access wall are three ways one anonymous fetch fails, on either document, with one fix.
