# BRD-191 — The two bundle identifiers must not be transposed

> The customer-profile and A2P bundle identifiers must be distinct, belong to the same account, and not be swapped.

- **Rule ID:** BRD-191
- **Layer:** Brand (`BRAND`)
- **Checks:** `the bundle identifiers`
- **Severity:** BLOCKING — Breaking this rule gets the submission rejected outright.
- **When it bites:** Gates approval — get this wrong and registration is refused
- **How it is detected:** Deterministic (settled in code from the submitted values)
- **Fix type:** Fix the field — a better value in the form clears it
- **Required by:** Twilio
- **Applies:** Applies to every 10DLC registration.
- **Canonical URL:** https://ekas.io/rules/10dlc/brand/brd-191/

## Why this rule exists

The two identifiers have the same prefix and the same length, sit next to each other in the request, and describe different objects — so transposing them produces a submission that validates structurally and fails on a message about bundle validation. It is one of the very few brand errors that is genuinely a typo rather than a misunderstanding.

## How to fix it

Read both identifiers back from the account and confirm which is the customer profile and which is the A2P bundle before resubmitting. Fix the upstream profile first if it is the one at fault — updating the brand alone re-fails for the same reason. Done when the two are distinct and each is in its own field.

## Example of a compliant value

```text
customer_profile_bundle_sid: BU1111… · a2p_profile_bundle_sid: BU2222… — two different identifiers, each in its own field
```

## Provider rejection codes

| Provider | Code | Resubmission allowed |
| --- | --- | --- |
| Twilio | `30793` | yes |

## Notes

Absorbs OPS-346, which adds that the upstream profile must be corrected first. Only the shape and the distinctness are checkable here; whether each identifier points at the right object needs the account, which is external.
