> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Toll-free vs short code: choosing your US SMS sender

> Decide between toll-free verification and a short-code lease for US/Canada SMS — the registration election, the two filing paths with cURL examples, wait expectations, and when to run both.

# Toll-free vs short code: choosing your US SMS sender

For US and Canada destinations, Orbit supports three sender classes for A2P SMS: 10DLC long codes, toll-free numbers (8XX), and short codes. Long codes are the baseline — see [10DLC registration](/guides/10dlc-registration). This guide covers the election most teams actually weigh: **toll-free vs short code** — which one to file, how to file it, and how long each wait runs.

The two registrations are different instruments. A toll-free number is yours — you purchase or port it, and the verification form registers a program on it. A short code is a registry lease — you apply for a 3–6 digit code, carriers vet the program, and the lease runs 3, 6, or 12 months. Getting the election wrong costs weeks: a marketing blast filed on toll-free caps out on carrier filtering, and a support line on a short code pays lease fees it never needed.

***

## 1. The election that decides what you can send

Pick by traffic style first, budget second:

| Dimension           | Toll-free (TFV)                                                  | Short code                                                  |
| ------------------- | ---------------------------------------------------------------- | ----------------------------------------------------------- |
| Best fit            | Transactional programs, support lines, alerts at moderate volume | National marketing reach, high-throughput programs          |
| Throughput          | Moderate                                                         | Highest carriers grant                                      |
| Sender memorability | Standard 8XX number                                              | 3–6 digits — the most memorable sender you can put in a CTA |
| Approval time       | Days                                                             | Weeks per carrier                                           |
| Cost                | Low (number cost + free verification)                            | Lease billed per 3/6/12-month term                          |
| Ownership           | Portable — it is your number                                     | Registry lease — the code is not portable                   |

### Registration vs portability

A toll-free filing has two independent parts that teams conflate:

* **The number** — you own it. Bought in Orbit, or ported in by changing the number's Responsible Organization (RespOrg) — the SMS/800 (Somos) analogue of a geographic port. Port-in/port-out is a routing change, not a messaging approval.
* **The program (TFV)** — the carrier review that lifts messaging restrictions. Verification registers content on the number; without it, US carriers treat the traffic as high-risk and throttle or drop it.

A short code has no "your number" at all. The application asks the registry for a code, carriers vet the program brief, and the lease opens on approval. You are renting the sender for the lease term.

***

## 2. Q\&A on the two scenarios

**When does toll-free win?**
Transactional traffic — order confirmations, delivery updates, appointment reminders, support threads — runs fine on toll-free at moderate volume. The TFV form takes minutes to file and clears in days. If your program is mostly notifications and your recipients opt in at checkout or in-product, toll-free is the cheapest live sender you can run.

**When does a short code win?**
Marketing programs with partnerships — affiliate campaigns, franchise promos, partner-branded offers — need throughput and a sender recipients can text back from memory. A nationwide promotional program that outgrows 10DLC vetting tiers, or a CTA printed on packaging and broadcast media, needs the short digit string. Carriers also cut promotional traffic far more slack on an approved short code than on any long or toll-free number.

**Can I run both?**
Yes, and many programs should — see section 6. There is no roster constraint between the two registrations; they are independent filings on different senders.

**What about the rest of the world?**
This election applies to US/CA destinations. Other countries regulate senders differently — see [sender identity by country](/guides/sender-id-country-matrix) for the per-destination map.

***

## 3. Filing the toll-free path

The [toll-free verification guide](/guides/toll-free-verification) is the full walkthrough — lint samples, submit, track, resubmit. The submission call itself:

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/numbers/num_8xJ2mQp1.../tfv-submit \
  -H "X-API-Key: dv_live_sk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "useCase": "Customer Care",
    "useCaseSummary": "Beesknees Care texts members appointment confirmations and a reply-based support line. Members opt in on the member portal before first visit.",
    "businessName": "Beesknees Care",
    "businessWebsite": "https://beesknees.example.com",
    "ein": "12-3456789",
    "contactEmail": "compliance@beesknees.example.com",
    "contactPhone": "+14155551234",
    "optInType": "WEB_FORM",
    "optInImageUrls": ["https://beesknees.example.com/consent/portal-opt-in.png"],
    "messageVolume": "10,000",
    "sampleMessages": [
      "Beesknees Care: your appointment is confirmed for Thursday 2:15 PM. Reply HELP for help or STOP to opt out.",
      "Beesknees Care: your lab results are ready in the portal. Reply STOP to opt out."
    ]
  }'
```

Run the free `POST /numbers/tfv-lint` on your samples first — it catches the two most-cited rejection classes (disallowed verticals, missing brand/opt-out language) before you burn a submission. Field constraints, use-case categories, and the resubmit flow are in the [full TFV guide](/guides/toll-free-verification).

### The RespOrg decision

If the toll-free number lives at another provider today, `POST /numbers/{id}/tfv-submit` refuses — verification requires the number's administration on this platform. Port the number first, then verify it:

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/numbers/porting/toll-free/resporg \
  -H "X-API-Key: dv_live_sk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "direction": "in",
    "numbers": ["+18551234567"],
    "currentRespOrgId": "AB12C",
    "authorizedSigner": "Jamie Rivera",
    "loaFileUrl": "<Devotel-issued GCS signed URL from POST /files/upload>"
  }'
```

The request moves `submitted` → `loa_signed` → `foc` (Somos scheduled activation) → `completed`. Sign the Letter of Agency in-platform with `POST /numbers/porting/toll-free/resporg/:id/loa/sign`, then track it with the GET endpoints on the same path. Once the change completes, the number is administration-yours and the TFV form can file.

The reverse — `direction: "out"` with a `newRespOrgId` — releases the number to another provider. A RespOrg request is cancellable while it is `submitted` or `loa_signed`; once Somos schedules the change, cancellation goes through the losing/gaining RespOrg.

<Note>
  A RespOrg switch changes **routing ownership** only. It does not substitute for TFV — an unverified ported toll-free number still carries the messaging restrictions until its verification form approves.
</Note>

***

## 4. Filing the short-code application

The [short-code application guide](/guides/short-code-application) walks the lifecycle end-to-end. The filing call:

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/numbers/short-codes \
  -H "X-API-Key: dv_live_sk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "countryCode": "US",
    "leaseType": "dedicated",
    "selection": "vanity",
    "requestedCode": "25735",
    "leaseTermMonths": 12,
    "businessName": "Franchise Group",
    "programBrief": {
      "useCase": "Weekly promo alerts",
      "description": "Franchise Group sends weekly promotional offers to customers who opt in at the point of sale or on the website. Recurring marketing messages, up to 4 msgs/week.",
      "sampleMessages": [
        "Franchise Group: 2-for-1 combos this weekend only at participating locations. Reply STOP to opt out.",
        "Franchise Group: your free dessert is waiting — show this text. Reply HELP for help or STOP to opt out."
      ],
      "messageFrequency": "Up to 4 msgs/week",
      "optInDescription": "Customers text JOIN to 25735, or enter their mobile number on the website signup form and check the SMS consent box. Recurring messages, up to 4 msgs/week. Message and data rates may apply. Reply STOP to cancel. Reply HELP for help.",
      "supportContact": "support@franchise.example.com",
      "privacyPolicyUrl": "https://franchise.example.com/privacy",
      "termsUrl": "https://franchise.example.com/sms-terms"
    }
  }'
```

Run the pre-flight linter (`POST /numbers/short-codes/preflight`) before you submit — carriers reject roughly a third of first-round briefs on deterministic grounds (SHAFT-C content, public URL shorteners, missing opt-out language), and every rejection restarts the queue.

### The unavailability trail

A `vanity` application asks the registry for a specific 3–6 digit code. If the aggregator comes back with that code unavailable, the vetting outcome is recorded as a rejection with an unavailability reason — the rejection reason tells you whether the problem is the code itself (taken, or not in the CSCA pool) or the brief's content. Open a new application with a different `requestedCode` (or switch `selection` to `random` and let the registry assign), fix the brief against the linter, and resubmit.

`GET /numbers/short-codes/:id` keeps the `rejectionReason` on the application record, and the audit log records `short_code.application_rejected` — the paper trail for why a code did not land. A registry rejection never removes the old application; it stays queryable so the team can see which codes were tried.

***

## 5. Wait expectations

Both filings flare on the [onboarding-status timeline](/guides/onboarding-status-timeline) — a toll-free phone-number step and a short-code application step each report their current reviewer and ETA. Index your go-live plan to the same page the dashboard is reading:

| Program                      | Typical wait                  | What the wait is                                                                                                           |
| ---------------------------- | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| Toll-free verification (TFV) | Days                          | Carrier review of the submitted form; Orbit polls the carrier and flips the verdict                                        |
| Short-code carrier vetting   | Weeks                         | Independent review by each carrier (AT\&T, T-Mobile, Verizon, US Cellular); Verizon and AT\&T are typically the long poles |
| RespOrg port (toll-free)     | A scheduled activation window | Somos processes the routing change out-of-band; `foc` is the scheduled activation date, not the live date                  |

Plan the blend accordingly: file the toll-free TFV now for the transactional line, open the short-code application the same week, and ride the toll-free sender while the short-code vetting runs.

***

## 6. When to blend

The election is not exclusive. Two worked examples:

### Franchise: marketing on a short code, support on toll-free

A restaurant franchise runs national promo blasts to opted-in members and a reply-based support line. The marketing program files a `vanity` short code — the 5-digit sender is on table tents and receipts, and four messages a week at national scale wants short-code throughput. The support line files TFV on the existing toll-free number — customers call or text the 8XX number, and the moderate volume fits toll-free fine. Two registrations, two senders, each on its own track.

### Healthcare: one program, one election

A healthcare provider weighs one messaging program, not two. If outbound volume is transactional — appointment reminders, portal alerts, support replies — and moderate, toll-free TFV clears in days at nearly no cost and the verdict sticks. If the program is a patient-engagement marketing push at national scale, the short-code lease is the right spend. The wrong move is splitting the decision: file on the traffic style you actually run, and re-elect only if the program materially changes.

<Note>
  Both elections are tenant-owned filings. Orbit supplies the submission, linter, and tracking surfaces; what you send, and how your recipients opted in, stays your program's responsibility.
</Note>

***

## Related

* [Toll-free verification](/guides/toll-free-verification) — the full TFV loop: lint, submit, track, resubmit.
* [Short-code application](/guides/short-code-application) — the lifecycle from draft to provisioned lease.
* [10DLC registration](/guides/10dlc-registration) — the long-code path for US A2P.
* [Onboarding status timeline](/guides/onboarding-status-timeline) — watch both filings in one view.
* [Sender identity by country](/guides/sender-id-country-matrix) — the per-destination election map beyond US/CA.
