Skip to main content
This page tracks API and SDK features that are deprecated and will be removed in a future version.

surge-signature webhook header

Status: Deprecated. Use webhook-signature. What changed: The webhook request signature header was renamed from surge-signature to webhook-signature to align with the Standard Webhooks specification. The old surge-signature header used the format t=<timestamp>,v1=<hex> with its own signed-payload composition, while webhook-signature signs {webhook-id}.{webhook-timestamp}.{raw-body} and uses the v1,<signature> format. If you compute the signature yourself, you need to update both which header you read and how you compute the signature — not just the header name. How to migrate: Update your webhook handler to read webhook-signature instead of surge-signature and to read the webhook-id and webhook-timestamp headers and compute the new signed-payload string.
See Signature Verification for the full algorithm and per-language examples. If you’re using the standardwebhooks library, no code change is needed. It reads the correct headers and computes the new signature format automatically. Timeline: Both headers are currently sent on all webhook requests. The surge-signature header will be removed in a future release. Migrate before then to avoid broken signature verification.
Status: Deprecated. Use data.message.id. What changed: The link.followed webhook event originally included a top-level message_id field. This has been replaced by a nested message object that contains id and additional message metadata. How to migrate:
Timeline: The top-level message_id field is still included in link.followed events for backward compatibility. It will be removed in a future release.

Publishable tokens for embedded components

Status: Deprecated. Use signed JWT authentication. What changed: Embedded UI components (Inbox, Conversation, Unread Count) previously supported a “publishable token” authentication method. This has been replaced by signed JWT authentication, which provides stronger security and token expiration control. How to migrate: Generate a JWT using the token endpoint:
Use the returned token value when mounting embedded components. See Embeddable UI Components for the full authentication documentation. Timeline: Publishable tokens will stop working in a future release. Migrate all embedded component mounts to JWT authentication.