# Opt-in flow: developer traffic on +1 833 240 8240

Maintained in messaging-service/docs. This is the document submitted with the toll-free verification for +1 833 240 8240 on 2026-11-04 and the description of record for how consent is collected on that number. It is kept true by the compliance-master rule in Projects/CLAUDE.md: any change to the verified-destination flow, the code text, the STOP and HELP handling, or the caps updates this file in the same session, and the PDF beside it is regenerated from it. Code of record: VerifyDestinationUseCase, HandleInboundSmsUseCase, and the P6-10 anti-pumping limits in messaging-service.

Number: +1 833 240 8240, toll-free, two-way SMS, held by the messaging tenant `developer` (name "Aric Communication Service") and used only for developer traffic: one-time verification codes, and test or notification messages a developer sends to numbers they have verified as their own. Government alerting stays on +1 844 219 8901.

## 1. The developer requests verification of a number they control

An authenticated account calls the API for the number it wants to use. Only US and Canadian numbers are accepted. Requests are rate-capped per account per day and per destination number per day; a free account may hold at most three verified numbers.

```
POST /v1/verified-destinations
X-Api-Key: ak_live_...

{ "tenantId": "<account>", "phone": "+1XXXXXXXXXX" }

HTTP 200 OK
{ "tenantId": "<account>", "status": "code-sent", "expiresAt": "2026-11-03T18:22:41Z" }
```

## 2. The phone receives a one-time code, the only message sent before consent

```
Aric Communication Service: your verification code is 482913. It expires in 10 minutes. Reply STOP to cancel, HELP for help.
```

The code expires in 10 minutes and allows five attempts. If no correct code is entered, nothing further is ever sent to the number.

## 3. The developer confirms with the code; consent is recorded

```
POST /v1/verified-destinations/confirm
X-Api-Key: ak_live_...

{ "tenantId": "<account>", "phone": "+1XXXXXXXXXX", "code": "482913" }

HTTP 200 OK
{ "tenantId": "<account>", "phone": "+1XXXXXXXXXX", "verifiedAt": "2026-11-03T18:12:41Z" }
```

The confirmation writes an opt-in record to the consent ledger (campaign marker `self-verified`) with the timestamp. The account is locked to verified destinations: a send to any number that has not completed this flow is refused by the API with `destination_not_verified` and nothing is transmitted. A send to the key holder's own verified number is never held by quiet hours; the opt-out below always wins.

## 4. Messages after opt-in

```
Aric Communication Service test: Pothole crew dispatched to Main St. Reply STOP to opt out, HELP for help.
```

## 5. Opt-out and help, handled on every message

| Resident texts | What happens |
|---|---|
| STOP, UNSUBSCRIBE, CANCEL, END, QUIT | The number is suppressed immediately for this sender; the opt-out is recorded in the consent ledger; a confirmation of the opt-out is sent. |
| START | Sending is re-enabled for this sender and recorded. |
| HELP | Reply: "Aric Communication Service: alerts and notifications by Aric Software (aricsoftware.com). Msg&data rates may apply. Reply STOP to cancel, HELP for help." |
| Anything else | Logged; the tenant's inbound policy applies (log only on this tenant). |

## 6. Record keeping

Every verification request, code delivery, confirmation, send, opt-out, and help reply is written to an append-only audit log, and every message carries the carrier's own delivery receipt. Consent records are retained and exportable. Expected volume on this number: under 10,000 messages per month.

## Verification record

- Submitted 2026-11-04 (Azure portal, aric-communication, Regulatory Documents), with this document as the supporting documentation.
- Status: pending carrier review. The playground and free live texting open when it clears (BACKLOG P6-15 and P6-18).
