{
  "id": "POL-001",
  "slug": "pol-001",
  "title": "A privacy policy URL is required on the campaign",
  "statement": "Every campaign registration must carry a non-empty privacy policy URL.",
  "rationale": "The policy is the document a consumer is entitled to read before handing over a number, so a registration without one is asking carriers to approve a programme nobody can inspect. Twilio codes the missing field separately from a failed policy review precisely because the usual cause is mechanical — integration code written before the field became mandatory simply never sends it, and every campaign that integration creates fails the same way.",
  "layer": "POLICY_PAGE",
  "layerSlug": "policy-page",
  "object": "campaign.privacyPolicyUrl",
  "severity": "BLOCKING",
  "detectability": [
    "DETERMINISTIC"
  ],
  "failureClass": "RETRY_FIELD",
  "authorities": [
    "TCR",
    "Twilio",
    "Bandwidth",
    "AWS",
    "Telnyx",
    "Sinch",
    "Plivo",
    "Bird"
  ],
  "codes": [
    {
      "provider": "Twilio",
      "code": "30933",
      "remediable": true,
      "generation": "gen2"
    },
    {
      "provider": "Twilio",
      "code": "30908",
      "remediable": true,
      "generation": "gen1"
    }
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Set the privacy policy URL on the campaign to the https address of the published policy page. Done when the field holds a URL you can open in a private window and read.",
  "example": "privacy_policy_url: https://acmecoffee.com/privacy",
  "pitfalls": [
    "If campaigns are created through an API integration, the empty field is in your code rather than on the form — check the request body before re-filing, or the next campaign fails identically."
  ],
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/policy-page/pol-001/",
  "markdown": "https://ekas.io/rules/10dlc/policy-page/pol-001.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
