New to VisionScaper?
Start here
Help Center › Get your API keys › Telnyx webhook address and secret
Telnyx webhook address and secret
Where to put VisionScaper's Telnyx address, and an important note about how VisionScaper checks the secret.
Telnyx tells your site about delivery and replies through a webhook. VisionScaper shows the address to use. It also has a Telnyx webhook secret field.
Warning: Read the “Known gap” section before you rely on this. From reading the plugin code, the secret check may not match how Telnyx signs its messages.
Before you start
- The Telnyx key, sending number and messaging profile are saved (see the two earlier Telnyx articles).
Steps
- In WordPress open Settings → VisionScaper Messaging, section Texts.
- Find the read-only box Webhook address. It ends in
/wp-json/dreamscaper/v1/msg/webhook/telnyx. Copy it. - In the Mission Control Portal open your messaging profile and paste the address in the profile’s webhook URL field. Telnyx says the profile is where the URL is set; the exact field label is not verified.
- Choose or create a secret string. Enter the same value in Telnyx webhook secret and save.
- Send a test text and reply to it. Check that the reply appears.
What VisionScaper does with Telnyx events
| Telnyx event | Result |
|---|---|
message.received |
Treated as an incoming text. |
message.finalized or message.sent with status delivered |
Marks the message delivered. |
Status delivery_failed, sending_failed or delivery_unconfirmed |
Marks it failed. |
Each event is handled only once, even if Telnyx sends it again.
Known gap: how the secret is checked
- VisionScaper reads a header named
X-Telnyx-Signature. It expects the lowercase hexadecimal HMAC-SHA256 of the raw body, using your Telnyx webhook secret. Without a matching header the answer is “Bad signature” (403). - Telnyx’s documentation says its webhooks carry
telnyx-signature-ed25519andtelnyx-timestampheaders, signed with an Ed25519 key. Its public key is under Keys & Credentials in the portal. - These two schemes are different. Whether Telnyx can be made to send the header VisionScaper expects is not verified. If Telnyx’s own webhooks are rejected, delivery status and incoming replies on Telnyx will not reach VisionScaper. Sending still works.
- Ask the VisionScaper team to confirm before you rely on Telnyx for replies and STOP handling.
Tips
- Telnyx wants a
2xxanswer within 2 seconds. It retries up to 3 times. - Use Twilio for incoming replies until the gap is resolved.
If something goes wrong
- 403 “Bad signature” in Telnyx’s logs. See the known gap above.
- Nothing arrives. No webhook address on the profile.
Sources
- Telnyx, inbound message webhooks: https://developers.telnyx.com/docs/messaging/messages/receiving-webhooks (read 2026-10-15)
- Plugin code: includes/messaging-providers.php (dreamscaper_msg_verify, dreamscaper_rest_msg_webhook).
- Telnyx’s separate “messaging webhooks” page could not be fetched.