Twilio

The global gold standard for programmable SMS. Required for USA and Canada, and a strong choice anywhere you need broad coverage from a single provider.

Best regions
πŸ‡ΊπŸ‡Έ πŸ‡¨πŸ‡¦ 🌍 Global
Alphanumeric senders
Yes (not US/CA)
Inbound / STOP
Provider yes Β· EziLinks not yet
A2P 10DLC (US)
Required

Why Twilio

Twilio is the most widely-used SMS API in the world. Its strengths:

  • Universal reach — sends to essentially every mobile network on earth
  • Only serious option for USA and Canada — other providers can send there but Twilio's carrier relationships give the best deliverability
  • Excellent tooling — number lookup, verify, DLR granularity, sub-account isolation
  • Free test credentials to prototype without paying (see below)

Weaknesses to know about:

  • Not the cheapest — expect to pay 20–50% more per part than local specialists (Kudosity in AU, MessageBird in EU)
  • US sending requires A2P 10DLC brand + campaign registration (see below). This can take 1–4 weeks the first time.
  • Every sender must be provisioned in Twilio (a purchased number or a registered alphanumeric ID)

Step 1 — Create your Twilio account

1 Sign up

Go to twilio.com and click Sign up. You get $15 USD trial credit at sign-up.

2 Verify your identity

Twilio does anti-fraud checks — expect to verify by phone and possibly upload ID or business docs for US sending.

3 Upgrade from trial (recommended)

Trial accounts can only send to verified numbers you register in the Twilio Console. To send to anyone, upgrade by adding $20+ credit. This unlocks live production sending.

Step 2 — Get your Account SID and Auth Token

1 Open the Twilio Console

Go to console.twilio.com and sign in.

2 Find your credentials

On the Console home page, look for the Account Info panel. You'll see two values:

  • Account SID — starts with AC followed by 32 hex characters
  • Auth Token — click the "eye" icon to reveal it

3 Copy both

Copy Account SID and Auth Token to a password manager. If you rotate the Auth Token later, remember to update EziLinks.

Live credentials vs Test credentials. Twilio shows both on the Console home page. Test credentials are useful for prototyping but they never actually send SMS and never fire delivery webhooks — your messages will sit stuck at queued in EziLinks forever. Always use LIVE Account SID + Auth Token unless you specifically want the sandbox.

Step 3 — Connect Twilio to EziLinks

1 Open SMS > Providers in EziLinks

Click + Connect provider. Choose Twilio from the Provider dropdown.

2 Paste Account SID and Auth Token

Both fields are required. EziLinks validates the SID format client-side (must start with AC followed by 32 hex chars). The credentials aren't verified against Twilio's API until you send a test SMS in the next step — a bad token here won't error the save, just the send.

3 Set default sender

The default sender is your Twilio-purchased phone number in E.164 format (+61485...) or your registered alphanumeric brand (EZILINKS). You must have already provisioned this in the Twilio Console. Blank is not allowed — Twilio errors TW_21603 on every send if there's no From.

4 Enter rate (optional)

Set the Cost per SMS part and pick a currency from the dropdown (AUD / USD / GBP / NZD / EUR). Twilio's per-part rate varies by destination country — roughly 0.008 USD for US, 0.07 USD for AU. Used only for pre-send cost estimates on the composer — leave blank if you don't want estimates.

5 Click Connect, then Send test SMS

EziLinks encrypts credentials at rest. The card first shows Not verified. Click Send test SMS on the card and enter your own mobile — the pill flips to Verified once Twilio confirms the send.

Sender ID options

Purchased phone number (required for US/CA)

Example: +15551234567. Rent a number from Twilio Console.

  • Twilio Console → Phone Numbers → Buy a Number. US local numbers are ~$1 USD/mo, toll-free ~$2/mo, other countries vary
  • Required for US and Canada — alphanumeric isn't allowed there
  • Enables inbound replies — STOP replies land in your Twilio console (EziLinks doesn't consume inbound yet, so opt-outs need to be applied manually in SMS → Contacts)
  • Must be in E.164 format including the +

Alphanumeric sender (Australia, UK, EU, others)

Example: EZILINKS. Up to 11 characters, letters and numbers only.

  • Works in AU, UK, EU, NZ and dozens of other markets
  • Pre-registration is recommended in Twilio Console → Messaging → Sender IDs for better deliverability
  • NOT valid for US or Canada — those markets require a real number
  • No inbound replies possible — recipients cannot text back an alphanumeric
Blank sender IDs are rejected. Unlike some providers, Twilio requires an explicit From on every send. Leaving the sender ID blank in EziLinks will error every message. Always set a default.

A2P 10DLC (US-only, but critical)

If you send to any US mobile number, Twilio requires you to register your brand and campaign under A2P 10DLC (Application-to-Person, 10-Digit Long Code). This is a US-carrier requirement, not a Twilio choice.

What you'll need to register

  • Business name, EIN (US) or DUNS number (international)
  • Business address and website
  • A description of your messaging use case (transactional, marketing, mixed)
  • Sample messages representative of what you'll send
  • Estimated monthly message volume

Registration steps

1 Register your brand

Twilio Console → Messaging → Regulatory Compliance → A2P 10DLC → Register brand. Standard brands cost $4 USD one-time; sole proprietor brands are free but capped at low throughput.

2 Create a campaign

After the brand is approved (usually 1–5 business days), create a Campaign for each messaging use case. Campaign vetting takes another 1–3 weeks. Each active campaign has a small monthly fee (~$1.50 USD).

3 Attach a phone number

Once approved, attach your Twilio phone number(s) to the campaign. Only then will US sends deliver.

Timeline: plan for 2–4 weeks total from starting registration to sending your first US message. Every day you send to US numbers without an approved 10DLC campaign, the sends are more likely to be filtered or fail.

Delivery report webhook

EziLinks configures the Twilio StatusCallback URL per message automatically — nothing to configure in the Twilio Console. Twilio POSTs status updates to https://app.ezilinks.com/api/sms/webhook/dlr/twilio?t=<tracking-token> as the message progresses.

Twilio provides granular statuses: queuedsendingsentdelivered, or a terminal failed/undelivered with a numeric error code you can look up in Twilio's docs.

Sending a test message

  1. Trial account? First verify the recipient number in Console → Phone Numbers → Verified Caller IDs. Trial accounts can only send to verified numbers
  2. Upgraded account? Any real mobile in E.164 format works
  3. On the EziLinks Providers tab, click Send test SMS on the Twilio card
  4. Pick the country and enter your own mobile in local format, or type it with a leading +. The line under the box shows the international number that will actually be sent.
  5. Click Send test
  6. The message should arrive within a few seconds. History status flows queuedsentdelivered
Test credentials never deliver. If you're using the "Test" Account SID + Auth Token from the Twilio Console (they start the same way but are for the sandbox), no message will ever leave Twilio's simulator. History rows stay stuck at queued because Twilio doesn't fire real DLRs for test sends. Always use live credentials for real testing.

Common errors and fixes

Error What it means How to fix
TW_20003 Authentication failed Your Account SID and Auth Token don't match. This usually happens when they're copied from different rows in the Console. Rotate the Auth Token and copy fresh from the same account panel.
TW_21603 From phone number required No sender ID configured. Set your Twilio-purchased number (or registered alphanumeric) as the default sender on the provider card.
TW_21610 Recipient has opted out of your account Twilio blocked the send because the recipient previously replied STOP. Respect the opt-out. If they truly want back in, they must reply START themselves.
TW_21211 Invalid recipient number Number is malformed or not a mobile. Ensure E.164 format.
TW_21614 Number is not a mobile Trying to send SMS to a landline or VoIP number Twilio can't route to. Check the recipient number.
TW_30007 Message filtered by carrier US carriers filtered your send. Almost always due to A2P 10DLC registration not being complete or approved. Register / expedite in Console.
Stuck at queued Message never reaches carrier or no DLR Two common causes: (1) test credentials — switch to live. (2) US A2P 10DLC not registered — register or send to non-US destinations first.

Pricing notes

Twilio bills per part in the destination currency (usually USD). Sample rates:

  • USA (long code, 10DLC): ~$0.008 USD per part — cheapest US option anywhere
  • Canada: ~$0.0075 USD per part
  • Australia: ~$0.07 USD per part — more expensive than Kudosity
  • UK: ~$0.04 USD per part
  • India: ~$0.005 USD per part (with DLT registration)

Plus phone number rental (~$1/mo per US local number). Alphanumeric senders have no rental fee but per-part costs still apply.

Volume discounts available via Twilio's committed-use programs at 100k+ messages / month.

When to pick Twilio (vs alternatives)

  • Sending to US or Canada? Twilio is basically the only serious answer. Bear the 10DLC pain, it's worth it.
  • Global mixed traffic? Twilio is convenient because one account covers everywhere — simpler ops, one bill
  • AU or NZ only? Use Kudosity instead — cheaper and faster
  • Europe / India / SE Asia only? MessageBird Legacy or Bird Platform is typically cheaper
© 2026 EziLinks. All rights reserved.