{
  "id": "BRD-247",
  "slug": "brd-247",
  "title": "Check the token has not expired before importing it",
  "statement": "A Campaign Verify token must be checked for expiry before it is imported.",
  "rationale": "Tokens are obtained when the paperwork is ready and imported when the campaign is, and those can be months apart — so an expired token is the normal consequence of an organised team working ahead. The import is refused, and the replacement has to come from Campaign Verify rather than from the provider.",
  "layer": "BRAND",
  "layerSlug": "brand",
  "object": "the token expiry",
  "severity": "BLOCKING",
  "detectability": [
    "DETERMINISTIC"
  ],
  "failureClass": "RETRY_FIELD",
  "authorities": [
    "Twilio"
  ],
  "codes": [
    {
      "provider": "Twilio",
      "code": "21722",
      "remediable": true
    },
    {
      "provider": "Twilio",
      "code": "30713",
      "remediable": true
    }
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Read the expiry date off the token before importing, and request a fresh one if it has passed or is close. Done when the token in hand is current at the moment of import, not at the moment it was issued.",
  "example": "token expiry: 2026-11-30, imported 2026-08-14 — current at the time of import",
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/brand/brd-247/",
  "markdown": "https://ekas.io/rules/10dlc/brand/brd-247.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
