{
  "id": "BRD-204",
  "slug": "brd-204",
  "title": "Test against mock brands, not real ones",
  "statement": "Non-production submissions should use mock brands so fees are not charged and duplicate detection is not polluted.",
  "rationale": "A test registration is a real registration: it charges the fee, it consumes the identity fields, and it lands in the duplicate index — so the real submission that follows collides with the rehearsal. Mock brands exist precisely for this and cost nothing, but they are opt-in and easy to miss during an integration.",
  "layer": "BRAND",
  "layerSlug": "brand",
  "object": "brand.mock",
  "severity": "LOW",
  "detectability": [
    "DETERMINISTIC"
  ],
  "failureClass": "RETRY_FIELD",
  "authorities": [
    "Twilio",
    "Telnyx"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Set the mock flag on every non-production submission, and use test rather than real identity values inside it. Done when no fee is charged and the real EIN, website and email have not been consumed by a rehearsal.",
  "example": "mock: true on every integration and staging submission",
  "notes": "Absorbs OPS-350, which states the same testing practice and the constraints mock records carry — a mock brand does not verify and cannot carry live campaigns, so it proves the integration rather than the registration. Nothing in a submission says whether it is a rehearsal, so a real brand with no mock flag passes: the check reports only the shape it can see.",
  "catalogIds": [
    "OPS-350"
  ],
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/brand/brd-204/",
  "markdown": "https://ekas.io/rules/10dlc/brand/brd-204.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
