shield-checkToll-Free Verification

Submit and track Toll-Free Verification for US/CA toll-free phone numbers to enable SMS messaging.

Toll-Free Verification (TFV) is required by US and Canadian carriers before a toll-free phone number can send SMS. Each toll-free phone number can have one active verification at a time.

TFV is a separate compliance workflow from other trust and regulatory processes. It has its own submission process, review lifecycle, and status tracking.

Verification Lifecycle

  1. Submit - POST creates a verification in pending-review status.

  2. Review - The carrier reviews the submission. Status moves to in-review.

  3. Decision - The carrier approves (twilio-approved, terminal) or rejects (twilio-rejected).

  4. Resubmit (if rejected) - POST again with corrected information. The system handles whether to update the existing submission or replace it based on the edit window.

  5. Expiry (if rejected and edit window closes) - The expired record is cleaned up automatically so the next POST starts fresh.

Statuses

Status
Description
Can Resubmit?
Can Delete Phone Number?

pending-review

Submitted, awaiting carrier review

No (409)

Yes

in-review

Carrier is actively reviewing

No (409)

No (409)

twilio-approved

Approved (terminal)

No (409)

Yes

twilio-rejected

Rejected by carrier

Yes

Yes

Endpoints

Submit Toll-Free Verification

Creates a new verification or resubmits after rejection. Returns 422 if the phone number is not a US or CA toll-free number.

Path parameters:

Parameter
Type
Description

setup_id

UUID

Twilio setup identifier

phone_number_id

UUID

Phone number identifier

Request body:

Field
Type
Required
Description

business_name

string

Yes

Legal business name (max 256 chars)

business_website

string (URL)

Yes

Public business website

use_case_categories

array of strings

Yes

Traffic categories, 1-10 items. See Use Case Categories.

use_case_summary

string

Yes

How messaging is used (max 4096 chars)

production_message_sample

string

Yes

Example message (max 2048 chars)

opt_in_image_urls

array of strings (URLs)

Yes

URLs to opt-in workflow images, 1-10 items

opt_in_type

string

Yes

Opt-in method: VERBAL, WEB_FORM, PAPER_FORM, VIA_TEXT, MOBILE_QR_CODE

message_volume

string

Yes

Monthly volume bucket. See Message Volumes.

business_street_address

string

Yes

Street address (max 256 chars)

business_street_address2

string

No

Address line 2 (max 256 chars)

business_city

string

Yes

City (max 128 chars)

business_state_province_region

string

Yes

State/province/region (max 128 chars)

business_postal_code

string

Yes

Postal code (max 32 chars)

business_country

string

Yes

ISO 3166-1 alpha-2 country code (e.g., US)

business_contact_first_name

string

Yes

Contact first name (max 128 chars)

business_contact_last_name

string

Yes

Contact last name (max 128 chars)

business_contact_email

string (email)

Yes

Contact email

business_contact_phone

string (E.164)

Yes

Contact phone (e.g., +14155551234)

additional_information

string

No

Context for reviewers (max 4096 chars)

Response: TollfreeVerificationResponse (see below)

Error responses:

Status
Description

404

Setup or phone number not found

409

Verification exists and is not in rejected state

422

Phone number is not US or CA toll-free

Get Toll-Free Verification

Returns the current verification state. 404 if no verification exists.

Path parameters:

Parameter
Type
Description

setup_id

UUID

Twilio setup identifier

phone_number_id

UUID

Phone number identifier

Response: TollfreeVerificationResponse

Error responses:

Status
Description

404

Setup, phone number, or verification not found

Response Model

TollfreeVerificationResponse

Field
Type
Description

phone_number_id

string (UUID)

Phone number this verification is attached to

verification_sid

string

Verification identifier

status

string

pending-review, in-review, twilio-approved, or twilio-rejected

business_name

string

Submitted business name

business_website

string

Submitted business website

use_case_categories

array of strings

Submitted use case categories

use_case_summary

string

Submitted use case summary

production_message_sample

string

Submitted message sample

opt_in_image_urls

array of strings

Submitted opt-in image URLs

opt_in_type

string

Submitted opt-in type

message_volume

string

Submitted message volume

business_street_address

string

Submitted street address

business_street_address2

string or null

Submitted address line 2

business_city

string

Submitted city

business_state_province_region

string

Submitted state/province/region

business_postal_code

string

Submitted postal code

business_country

string

Submitted country code

business_contact_first_name

string

Submitted contact first name

business_contact_last_name

string

Submitted contact last name

business_contact_email

string

Submitted contact email

business_contact_phone

string

Submitted contact phone

additional_information

string or null

Submitted additional information

rejection_reasons

array of objects or null

When rejected: array of {code, description} entries from the carrier

edit_allowed

boolean or null

When rejected: whether the submission can be updated in place vs. replaced

created_at

string (datetime)

Creation timestamp

updated_at

string (datetime)

Last update timestamp

Use Case Categories

The following traffic categories are accepted:

2FA, App Notifications, Appointments, Auctions, Auto Repair Services, Bank Transfers, Billing, Booking Confirmations, Business Updates, Career Training, Chatbot, Conversational / Alerts, Courier Services & Deliveries, COVID-19 Alerts, Emergency Alerts, Events & Planning, Financial Services, Fraud Alerts, Fundraising, General Marketing, General School Updates, HR / Staffing, Healthcare Alerts, Housing Community Updates, Insurance Services, Job Dispatch, Legal Services, Mixed, Motivational Reminders, Notary Notifications, Order Notifications, Political, Public Works, Real Estate Services, Religious Services, Repair and Diagnostics Alerts, Rewards Program, Surveys, System Alerts, Voting Reminders, Waitlist Alerts, Webinar Reminders, Workshop Alerts

Message Volumes

Accepted monthly volume buckets:

10, 100, 1,000, 10,000, 100,000, 250,000, 500,000, 750,000, 1,000,000, 5,000,000+

Phone Number Deletion Behavior

When deleting a phone number that has an associated toll-free verification:

  • In-review - Deletion is blocked (409). Wait for the review to complete.

  • Any other status - The phone number and its verification are deleted together.

Last updated

Was this helpful?