Callbacks

TeXML Recording Completed

Webhook sent when a recording is completed during a TeXML call (triggered by recordingStatusCallbackEvent). This webhook uses Telnyx headers (telnyx-timestamp, telnyx-signature-ed25519) that are compatible with Standard Webhooks specification for SDK generation. Custom validation logic can map these to standard webhook-timestamp and webhook-signature equivalents. See https://github.com/standard-webhooks/standard-webhooks for details.

postWebhookTexmlRecordingCompletedWebhook

Headers

telnyx-timestampinteger required

Unix timestamp for replay attack prevention

Unix timestamp (seconds since epoch) of when the webhook was sent - compatible with webhook-timestamp

telnyx-signature-ed25519string required

Ed25519 signature of timestamp|payload for verification

Base64 encoded Ed25519 signature for webhook verification - compatible with webhook-signature

Payload application/x-www-form-urlencoded

AccountSidstring required

The unique identifier of the account (user_id).

CallSidstring required

The unique identifier of the call (call_control_id).

CallSidLegacystring required

Legacy call identifier, same as CallSid.

ConnectionIdstring required

The unique identifier of the connection.

RecordingChannels1 | 2 required

The number of channels in the recording (1 for mono, 2 for dual-channel).

RecordingDurationstring required

The duration of the recording in seconds.

RecordingSidstring required

A unique identifier for the recording, generated by Telnyx.

RecordingSourcestring required

The source of the recording.

RecordingStatus'completed' required

The status of the recording.

RecordingUrlstring

The URL where the recording can be accessed (conditional, only present if recording URL is available).

Example payload

{
  "AccountSid": "cb6cfbbc-eb00-41af-a3f3-0d7b32009e4b",
  "CallSid": "v2:qiaymU9Ij90xJRRkYGWHOIx_41EVJPrzlny2zC67hwL1wVIUnnMrqQ",
  "CallSidLegacy": "v2:qiaymU9Ij90xJRRkYGWHOIx_41EVJPrzlny2zC67hwL1wVIUnnMrqQ",
  "ConnectionId": "1234567890",
  "RecordingChannels": 1,
  "RecordingDuration": "5",
  "RecordingSid": "35094891-3290-4142-b2c2-b2eda57534cf",
  "RecordingSource": "DialVerb",
  "RecordingStatus": "completed",
  "RecordingUrl": "https://recording.com/your-recording-url"
}

Response

The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL.

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.