Skip to main content

Prerequisites

Setup

1

Get your Twilio credentials

In Twilio, open the console and copy your Account SID and Auth Token. The Messaging Service SID is on the Messaging Services page.
2

Configure in Courier

Open the in Courier, enter your Account SID, Auth Token, and Messaging Service SID, then click “Save.”
Addressing a recipient and sending are the same on every SMS provider, so they are documented once: and .

Trial accounts

Twilio trial accounts may only send to verified numbers. See the Twilio trial account guide.

Overrides

covers the two levels and which one wins. Overrides change the request body Courier sends to Twilio. You can override any field on Twilio’s Messages.json endpoint, listed in the Twilio message resource reference.
Courier polls Twilio’s API for delivery status using the credentials you configured. Swapping those credentials with a config override stops delivery status events.
The Twilio API uses PascalCase field names (Body, To, From). Courier auto-capitalizes body override keys for backwards compatibility, so both "to" and "To" work.

Troubleshooting

The destination handset was unreachable.
  • Send another test message via the Twilio API Explorer
  • Check device status, signal strength, and carrier network
  • Use the “Fallback to Long Code” feature if needed
  • Open a Twilio support request if the issue persists
Carrier issue, signal loss, or inactive number.
  • Verify the number is active and formatted correctly (E.164)
  • Check device status and signal
  • Test with other devices on the same carrier
The message went to a landline or an unreachable carrier.
  • Use the Lookup API to check if the number is a landline
  • Try an alternative phone number
Twilio or the carrier filtered the message for a policy violation.
  • Ensure compliance with Twilio’s Messaging and Acceptable Use Policies
  • Secure account credentials
  • Open a support request if you suspect a mistake
The message failed for unknown reasons.
  • Test with a simpler message and a different sender ID
  • Check device roaming status
  • Contact Twilio support with recent message SIDs if the issue persists
No permission to access the requested resource.
  • Verify the correct Auth Token and Account SID combination
  • Check account type (sub-account vs master, test vs live)
  • Confirm API Key and Auth Token are valid
The resource doesn’t exist or isn’t available.
  • Check that the resource exists and verify API case-sensitivity
  • Verify Account SID and base URL
The recipient number is invalid or formatted incorrectly.
  • Ensure E.164 format with the correct country code
  • Avoid calling or messaging a Twilio number from itself
The recipient unsubscribed with the “STOP” keyword.
  • Request the recipient text “START” to resubscribe
  • Ensure you have consent for messaging
Twilio could not retrieve content from the given URL.
  • Verify web server status and accessibility
  • Check for network issues
  • Ensure proper server configuration for static resources
Twilio could not process the URL’s Content-Type.
  • Verify the correct Content-Type is returned by the server
  • Ensure the URL refers to a valid, acceptable resource

Provider details

Courier recommends routing to the channel. Naming this key in routing.channels instead is supported, and sends through just this provider.

Send to a specific provider

When that is worth doing, and what you give up: failover, channel priority, and providers you add later.