{
  "id": "OPS-344",
  "slug": "ops-344",
  "title": "A brand carrying live work cannot have its identity edited at all",
  "statement": "Legal name, entity type, tax ID and tax ID issuing country cannot be edited while the brand has an active campaign or a vet in progress.",
  "rationale": "On a bare brand these four fields are expensive to change; on a brand with a campaign or a vet behind it they are not changeable at all, and the API refuses rather than queues. The reason is that both the campaign and the vet were granted against the identity as it stood, so changing it would leave live traffic authorised by a record that no longer exists. Teams meet this while correcting a typo that has been in the legal name since day one, and the refusal does not say which of the two blockers is in the way.",
  "layer": "OPERATIONAL",
  "layerSlug": "operational",
  "object": "brand.brand_changes + brand.active_campaign_count + brand.vetting",
  "severity": "BLOCKING",
  "detectability": [
    "DETERMINISTIC"
  ],
  "failureClass": "RETRY_FIELD",
  "authorities": [
    "TCR",
    "Twilio"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Clear the blocker before the edit: deactivate the campaigns on the brand, or wait for the vet to reach a final state, then make the identity change and expect the brand to re-verify. Where the campaigns must stay live, register the corrected identity as a new brand and migrate rather than editing this one. Done when the brand has no active campaign and no vet in flight at the moment the edit is sent.",
  "example": "Correcting the legal name: deactivate the one live campaign first, edit, re-verify, then re-register the campaign.",
  "notes": "BRD-044 reports what an identity edit costs on any brand — the fee, the reset, the expired vet. This rule reports the case where it is refused outright, which is a different answer and a different fix, so it fires only when a campaign or a vet is actually in the way.",
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/operational/ops-344/",
  "markdown": "https://ekas.io/rules/10dlc/operational/ops-344.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
