{
  "id": "OPS-074",
  "slug": "ops-074",
  "title": "Toll-free opt-out language is appended for you, and billed",
  "statement": "On toll-free traffic, expect the carrier to append opt-out language to outbound messages — it is billable, cannot be removed and can only be shortened.",
  "rationale": "The append lands on messages that were already at the segment boundary, so a body sized to 160 characters becomes two segments and the bill doubles with no change on your side. Teams discover it as an unexplained cost increase and go looking for a fault in their own templates, because nothing in the sending API mentions it.",
  "layer": "OPERATIONAL",
  "layerSlug": "operational",
  "object": "outbound toll-free message bodies",
  "severity": "MEDIUM",
  "detectability": [
    "UNDETECTABLE_PRE_SUBMISSION"
  ],
  "failureClass": "TERMINAL_EXTERNAL",
  "authorities": [
    "AT&T"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Size toll-free message bodies leaving room for the appended text, and include your own short opt-out line so the appended version is shortened rather than added in full. Done when a representative message still fits one segment after the append.",
  "example": "Body written to ~120 characters on toll-free, with \"Reply STOP to end\" already present.",
  "notes": "Applies to the toll-free path and happens in the network. What the user has to do is measure a real delivered message rather than the one they submitted — the append is only visible on the handset and on the invoice.",
  "phase": "post",
  "automated": false,
  "attestation": {
    "question": "Does a representative message still fit one segment after the carrier appends its opt-out language?",
    "howToCheck": [
      "Measure a real delivered message on a handset, not the body you submitted — the append is only visible there and on the invoice.",
      "Include your own short opt-out line so the appended version is shortened rather than added in full.",
      "Size bodies leaving room for it."
    ],
    "failureLooksLike": "A body sized to 160 characters becomes two segments and the bill doubles with no change on your side. Nothing in the sending API mentions it, so the search for the fault starts in your own templates."
  },
  "url": "https://ekas.io/rules/10dlc/operational/ops-074/",
  "markdown": "https://ekas.io/rules/10dlc/operational/ops-074.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
