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.
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
ACfollowed 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.
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
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.
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: queued → sending → sent → delivered, or a terminal failed/undelivered with a numeric error code you can look up in Twilio's docs.
Sending a test message
- Trial account? First verify the recipient number in Console → Phone Numbers → Verified Caller IDs. Trial accounts can only send to verified numbers
- Upgraded account? Any real mobile in E.164 format works
- On the EziLinks Providers tab, click Send test SMS on the Twilio card
- 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. - Click Send test
- The message should arrive within a few seconds. History status flows
queued→sent→delivered
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