Objective
If your StatusCallback URL isn’t receiving webhook requests, this guide will walk you through a simple, reliable way to test your integration. Many developers face this issue when building with Programmable Messaging, and it can be difficult to tell whether the problem is with Twilio or your server. Using easy, publicly accessible tools like Webhook.site or Pipedream, this article helps you confirm whether Twilio is sending webhooks and whether your endpoint is able to receive them.
Product
Programmable Messaging
Environment
legacy Twilio Console
User Account Permission/Role(s) Required
- Access to your Twilio Console and API credentials (Account SID + Auth Token)
- Ability to modify and test your application’s
StatusCallbackURL
Procedure
1. Set Up a Temporary Webhook Endpoint
- Go to Webhook.site or Pipedream
- Copy the automatically generated unique URL — this will act as a temporary
StatusCallbackURL so you can test webhook delivery.
2. Update Your Twilio Request
Add the temporary URL to the StatusCallback parameter in your API request or application code. Example (using cURL):
curl -X POST "https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages.json" \
--data-urlencode "Body=Test message" \
--data-urlencode "From=+1234567890" \
--data-urlencode "To=+0987654321" \
--data-urlencode "StatusCallback=https://webhook.site/your-unique-url" \
--u ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token
This forces Twilio to send all message status webhooks to the test endpoint.
3. Send a Test Message
Trigger a message using:
- your application
- API
- SDK
- or a tool like Postman
This ensures a real webhook attempt is generated.
4. Check the Temporary Endpoint
Return to Webhook.site or Pipedream and look for incoming requests.
If you see a POST request:
- Twilio is successfully sending webhooks.
- Your integration is working at Twilio’s side.
If nothing appears:
Twilio may not be able to reach your callback URL. Double-check your request for:
- correct StatusCallback parameter (case-sensitive)
- correct URL
- no typos or incorrect domain
5. Interpret the Results
-
If the webhook appears at the temporary URL:
The issue is likely with your original server (e.g., firewall blocks, authentication errors like 401, server errors like 500, incorrect routing, or SSL issues). Check your server logs to see why your endpoint didn’t accept the request. -
If the webhook does not appear:
This usually indicates a configuration issue—incorrect or missingStatusCallback, wrong casing, an unreachable/invalid URL, or a typo in the callback path. Fix the URL and try sending another test message.
6. Revert Back to Your Original StatusCallback URL
Once you confirm that Twilio is sending webhooks correctly:
- Replace the temporary URL with your real endpoint.
- Trigger another message.
- Monitor your server logs to ensure you are receiving the callback.
Additional Information
- The
StatusCallbackparameter is case-sensitive; always use the correct casing. - The Message SID (e.g., SMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) is a unique identifier for each message and can be used to trace message status in Twilio logs.
-
For more details, see Track the Delivery Status of an Outbound Twilio SMS or MMS Message
and Twilio Message SID documentation - A server response of 500 or 401 means your callback URL was reached, but your server rejected or failed the request. Check your server logs and authentication logic.
- If you have followed all steps and still do not receive callbacks, please contact Support team with: