# MSG-148 — Samples must match what the printed or in-person call to action promised

> Where consent is collected on paper, at a point of sale, by QR code or by keyword, the samples must match the programme the printed call to action described.

- **Rule ID:** MSG-148
- **Layer:** Message content (`MESSAGE_CONTENT`)
- **Checks:** `campaign.sample[] <-> offline CTA artifact`
- **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:** AI judgement over the submitted form
- **Fix type:** Fix the field — a better value in the form clears it
- **Required by:** Twilio, Aerialink
- **Applies:** Applies when consent was collected by paper form, point of sale, QR code and text-to-join keyword.
- **Canonical URL:** https://ekas.io/rules/10dlc/message-content/msg-148/

## Why this rule exists

An offline call to action is the whole of the consent record — the consumer never saw a web page, so the poster, the form or the counter card is the only thing they agreed to. When the samples describe a different programme there is nothing to fall back on, which is why reviewers compare the two directly and why the mismatch is fatal rather than fixable by adding a disclosure. It happens because the print run is long-lived: the card was designed for appointment reminders two years ago and the programme now sends offers, and nobody reprints a counter card to match a campaign registration.

## How to fix it

Read the artifact you uploaded as evidence and register the samples that match it. Where the programme has genuinely moved on, the artifact is the thing that has to change — reprint the card or the poster with the current programme described, collect consent against that, and upload the new version. Done when the content types in the samples all appear in the printed call to action.

## Example of a compliant value

```text
Poster: "Text SHELTER to 55512 for Riverside Shelter capacity updates and volunteer alerts. Msg frequency varies. Msg & data rates may apply." — samples show a capacity update and a volunteer alert, and nothing else.
```

## Common mistakes

- A QR code that has been reprinted but still points at the old landing page fails this on the destination rather than on the print, and the artifact looks correct in the upload.

## Provider rejection codes

| Provider | Code | Resubmission allowed |
| --- | --- | --- |
| Twilio (gen1) | `30893` | yes |
