# POL-005 — The terms and conditions attestation must be set

> The campaign's terms-and-conditions attestation flag must be set to true, alongside supplying the URL.

- **Rule ID:** POL-005
- **Layer:** Policy pages (`POLICY_PAGE`)
- **Checks:** `campaign.termsAndConditions attestation`
- **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:** TCR, Bird, Bandwidth, Azure ACS
- **Applies:** Applies to every 10DLC registration.
- **Canonical URL:** https://ekas.io/rules/10dlc/policy-page/pol-005/

## Why this rule exists

The flag is a declaration by the registering party, not a pointer to a document: at TCR it attests that the campaign runs no affiliate marketing, and at Bandwidth and Bird that the programme follows the CTIA principles. Its enum permits only true, so an unset flag is rejected before any document is fetched — and because the form shows it next to the URL field, people assume filling one satisfies the other.

## How to fix it

Set the terms-and-conditions attestation to true on the campaign, and make sure the statement it carries is actually true of your programme before you do. Done when both the flag and the URL are set.

## Example of a compliant value

```text
terms_and_conditions: true · terms_and_conditions_url: https://acmecoffee.com/sms-terms
```

## Common mistakes

- At TCR the flag attests that the campaign involves no affiliate marketing. Setting it true on a campaign that does is a false attestation, not a form-filling step — fix the campaign instead.

## Provider rejection codes

| Provider | Code | Resubmission allowed |
| --- | --- | --- |
| TCR | `501` | yes |

## Notes

Absorbs POL-006, which states the same flag together with the reminder that the flag alone is not enough. The URL half is POL-002.
